Python не печатает PDF с помощью pyPDF2

Я пробовал распечатать страницы документа pdf:

import PyPDF2
FILE_PATH = 'my.pdf'
with open(FILE_PATH, mode='rb') as f:
    reader = PyPDF2.PdfFileReader(f)
    page = reader.getPage(0) # I tried also other pages e.g 1,2,..
    print(page.extractText())

Но я получаю только много пустого места и никаких сообщений об ошибках. Может быть, эта версия pdf (my.pdf) не поддерживается PyPDF2?

Это решило это (печатает все страницы документа). Благодарность

from pdfreader import SimplePDFViewer
fd = open("my.pdf", "rb")
viewer = SimplePDFViewer(fd)
for i in range(1,16): # need range from 1 - max number of pages +1
    viewer.navigate(i)
    viewer.render()
    page_1_content=viewer.canvas.text_content
    page_1_text = "".join(viewer.canvas.strings)
    print (page_1_text)

2 ответа

Решение

Попробуйте pdfreader

from pdfreader import SimplePDFViewer

fd = open("my.pdf", "rb")
viewer = SimplePDFViewer(fd)
viewer.render()

page_0_content=viewer.canvas.text_content
page_0_text = "".join(viewer.canvas.strings)

Если он пуст, либо PDF-файл читается, и его формат не может быть прочитан pypdf, поэтому он просто выводит пустой. Может быть, указать абсолютный путь к файлу вместо относительного пути к файлу. Если ничего не помогает, попробуйте использовать другие PDF-файлы, и если есть версия, которая работает, а ваша - нет, вам может потребоваться преобразовать вашу версию в этот рабочий тип.

Другие вопросы по тегам