Python pdf2image如何使用“启用所有功能”读取PDF文件-windows

Python pdf2image如何使用“启用所有功能”读取PDF文件-windows,python,pdf,Python,Pdf,我有一个pdf,我想用Python阅读它。当我使用acrobat在我的机器上打开它时,我会看到下面的消息,当我单击“启用所有功能”时,该文件会显示它的实际内容。 当我尝试用python阅读它时,如何实现相同的操作,使python读取实际文本而不读取下面的文本 请稍候。。。如果此消息最终未被文档的正确内容替换,则PDF查看器可能无法显示此类型的文档。您可以通过访问升级到最新版本的Adobe Reader for Windows®、Mac或Linux®。有关Adobe Reader的更多帮助,请访

我有一个pdf,我想用Python阅读它。当我使用acrobat在我的机器上打开它时,我会看到下面的消息,当我单击“启用所有功能”时,该文件会显示它的实际内容。

当我尝试用python阅读它时,如何实现相同的操作,使python读取实际文本而不读取下面的文本

请稍候。。。如果此消息最终未被文档的正确内容替换,则PDF查看器可能无法显示此类型的文档。您可以通过访问升级到最新版本的Adobe Reader for Windows®、Mac或Linux®。有关Adobe Reader的更多帮助,请访问。Windows是Microsoft Corporation在美国和/或其他国家/地区的注册商标或商标。Mac是苹果公司的商标,在美国和其他国家注册。Linux是Linus Torvalds在美国和其他国家/地区的注册商标

我的代码如下

from PIL import Image
import pytesseract

homepath = r'C:\Users\xxxx\\'


files = "bbbb.pdf"
PDFfilename = homepath  + files

from pdf2image import convert_from_path
pages = convert_from_path(PDFfilename, 500)

i=1
for page in pages:
    page.save(homepath +'out'+str(i)+'.jpg', 'JPEG')
    text = pytesseract.image_to_string(Image.open(homepath +'out'+str(i)+'.jpg'))
    print(text)
    i=i+1

我对pdf2image不是很熟悉,但我对pikepdf很熟悉。您所要做的就是将该文件保存为另一个文件。以下是一个片段:

导入pikepdf pdf=pikepdf.open'mypdf.pdf' 保存“我的好”pdf.pdf
这应该可以解决它;当你打开my_good_pdf.pdf时,一切都会好起来。

我对pdf2image不是很熟悉,但我对pikepdf很熟悉。您所要做的就是将该文件保存为另一个文件。以下是一个片段:

导入pikepdf pdf=pikepdf.open'mypdf.pdf' 保存“我的好”pdf.pdf
这应该可以解决它;当您打开my_good_pdf.pdf时,一切都会好起来。

请稍候。。。您看到的页面是pdf中唯一实际的pdf样式内容,即包含内容流和资源等的pdf页面对象

启用所有功能后,您将看到pdf中包含的XFA表单的内容

XFA也称为XFA表单,代表XML表单体系结构,这是一系列专有的XML规范,由JetForm提出并开发,用于增强web表单的处理。它也可以用于PDF文件,从PDF 1.5规范开始。XFA规范作为全面应用ISO 32000-1规范PDF 1.7所需的外部规范引用。XML表单体系结构没有作为ISO标准进行标准化,在PDF 2.0中已被弃用

尤其是大多数免费或开放的pdf库都没有

不过,只要您的pdf库允许直接访问低级pdf对象,您就可以检索XFA XML并将其作为XML流进行分析

它位于目录->AcroForm->XFA对象中:

XFA条目应为包含整个XFA资源的流或指定共同构成整个XFA资源的各个数据包的数组。[……]

数据包是一对字符串和流。字符串包含XML元素的名称,流包含XML元素的完整文本


ISO 32000-1第12.7.8节XFA表格请稍候。。。您看到的页面是pdf中唯一实际的pdf样式内容,即包含内容流和资源等的pdf页面对象

启用所有功能后,您将看到pdf中包含的XFA表单的内容

XFA也称为XFA表单,代表XML表单体系结构,这是一系列专有的XML规范,由JetForm提出并开发,用于增强web表单的处理。它也可以用于PDF文件,从PDF 1.5规范开始。XFA规范作为全面应用ISO 32000-1规范PDF 1.7所需的外部规范引用。XML表单体系结构没有作为ISO标准进行标准化,在PDF 2.0中已被弃用

尤其是大多数免费或开放的pdf库都没有

不过,只要您的pdf库允许直接访问低级pdf对象,您就可以检索XFA XML并将其作为XML流进行分析

它位于目录->AcroForm->XFA对象中:

XFA条目应为包含整个XFA资源的流或指定共同构成整个XFA资源的各个数据包的数组。[……]

数据包是一对字符串和流。字符串包含XML元素的名称,流包含XML元素的完整文本

ISO 32000-1第12.7.8节XFA表单

试用pdfminer

对于Python 3,按如下方式安装:

pip install pdfminer-six
pip install chardet

然后:

试试pdfminer

对于Python 3,按如下方式安装:

pip install pdfminer-six
pip install chardet

然后:


同样的问题:Pikepdf没有展平xfa表单,而xfa表单似乎是手头上的问题所必需的。同样的问题:Pikepdf没有展平xfa表单,而xfa表单似乎是手头上的问题所必需的。事实上,pdf2image使用了具有ope的poppler
这是一个很难解决的问题。事实上,pdf2image使用了poppler,这有一个公开的问题,几乎可以说它不会被修复。同样的问题:上面写着请稍候。。。如果此消息最终不存在…..PDF Miner不支持xfa表单,这似乎是手头问题所必需的。相同的问题:它的内容为“请稍候…”。。。如果此消息最终不被接受……PDF Miner不支持xfa表单,这对于手头的问题似乎是必要的。