Python 不使用 pyPDF2 打印 PDF

Posted

技术标签:

【中文标题】Python 不使用 pyPDF2 打印 PDF【英文标题】:Python does not print PDF with pyPDF2 【发布时间】:2020-04-21 19:58:11 【问题描述】:

我尝试打印 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())

但我只得到很多空白,没有错误消息。难道PyPDF2不支持这个pdf版本(my.pdf)?

这解决了它(打印文档的所有页面)。谢谢

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)

【问题讨论】:

您可以使用 Acrobat Reader 将文本复制出来吗? 【参考方案1】:

试试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)

【讨论】:

【参考方案2】:

如果它是空白的,要么是 PDF 正在被读取,而且它的格式不能被 pypdf 读取,所以它只是输出空白。也许放入绝对文件路径而不是相对文件路径。如果所有其他方法都失败了,请尝试使用不同的 PDF,如果有一个版本可以工作而您的版本不行,您可能需要将您的版本转换为该工作类型。

【讨论】:

你发现你的和工作的有区别吗?寻找模式 我发现的唯一一件事是,如果我打开 pdf-1.5 版本的 pdf 文件,它们可以工作,而 1.3 和 1.6 似乎不起作用。虽然这对我来说似乎很奇怪,因为我认为如果 1.5 工作 1.3 或 1.6 也必须工作 阅读 pypdf 文档以查看更多详细信息。并进一步挖掘您尝试阅读的 PDF。

以上是关于Python 不使用 pyPDF2 打印 PDF的主要内容,如果未能解决你的问题,请参考以下文章

PDF分割?有了这把魔法剪,PDF任你裁剪(PyPDF2)-

PDF分割?有了这把魔法剪,PDF任你裁剪(PyPDF2)-

Python之PyPDF2模块的使用

Python应用PDF处理-pypdf2

我在我的解释器上安装了pyPDF2,它有venv并使用python 3.6.6但是我无法导入它。我究竟做错了什么?

一个用于合并pdf的简单Python脚本