У меня есть PDF-файл с большой таблицей, разбитой на страницы, поэтому мне нужно объединить постраничные таблицы в большую таблицу на большой странице.
Возможно ли это с PyPDF2 или другой библиотекой?
Ваше здоровье
У меня есть PDF-файл с большой таблицей, разбитой на страницы, поэтому мне нужно объединить постраничные таблицы в большую таблицу на большой странице.
Возможно ли это с PyPDF2 или другой библиотекой?
Ваше здоровье
Просто работая над чем-то подобным, он берет входной PDF-файл, и через файл конфигурации вы можете установить окончательный шаблон отдельных страниц. Реализация с PyPDF2, но все еще есть проблемы с некоторыми pdf-файлами (придется копать глубже). https://github.com/Lageos/pdf-stitcher
В принципе, добавление страницы прямо к другой работает так:
import PyPDF2
with open('input.pdf', 'rb') as input_file:
# load input pdf
input_pdf = PyPDF2.PdfFileReader(input_file)
# start new PyPDF2 PageObject
output_pdf = input_pdf.getPage(page_number)
# get second page PyPDF2 PageObject
second_pdf = input_pdf.getPage(second_page_number)
# dimensions for offset from loaded page (adding it to the right)
offset_x = output_pdf.mediaBox[2]
offset_y = 0
# add second page to first one
output_pdf.mergeTranslatedPage(second_pdf, offset_x, offset_y, expand=True)
# write finished pdf
with open('output.pdf', 'wb') as out_file:
write_pdf = PyPDF2.PdfFileWriter()
write_pdf.addPage(output_pdf)
write_pdf.write(out_file)
Для добавления страницы ниже требуется offset_y
. Вы можете получить сумму от offset_y = first_pdf.mediaBox[3]
.
Я понимаю, что это довольно сложно. См. здесь и здесь.
Проблема, похоже, в том, что таблицы не очень хорошо представлены в pdf, а просто состоят из абсолютно позиционированных строк (см. первую ссылку выше).
Вот два возможных обходных пути (не уверен, что они сделают это за вас):
ИЗМЕНИТЬ
Взгляните на libre office draw, еще один векторный пакет. Я только что открыл в нем PDF-файл, и он, кажется, сохранил часть структуры PDF-файла и отредактировал отдельные элементы.
EDIT 2 Посмотрите pdftables, это может помочь.
PDFTables помогает извлекать таблицы из файлов PDF.
Я не пробовал, хотя ... может быть, немного позже, чтобы посмотреть, смогу ли я заставить его работать.