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-файлы, и если есть версия, которая работает, а ваша - нет, вам может потребоваться преобразовать вашу версию в этот рабочий тип.