我有一个pdf文件,我想用Python阅读。当我使用acrobat在计算机上打开它时,出现以下消息,当我单击“启用所有功能”时,该文件将显示其实际内容。

当我尝试在python中读取它时,如何实现相同的操作,以便python读取实际文本,而不读取以下文本
“请稍候...如果此消息最终没有被文档的正确内容取代,则您的PDF查看器可能无法显示这种类型的文档。您可以升级到适用于Windows®,Mac的Adobe Reader的最新版本,或通过访问http://www.adobe.com/go/reader_download_cn或Linux®来获得Adobe Reader的更多帮助,请访问http://www.adobe.com/go/acrreader_cn Windows是注册商标或商标Microsoft是位于美国和/或其他国家/地区的Microsoft Corporation的商标。Mac是Apple Inc.在美国和其他国家/地区的注册商标。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
Run Code Online (Sandbox Code Playgroud)
您看到的“请稍候...”页面是pdf中唯一实际的pdf样式的内容(即具有内容流和资源等的pdf页面对象)。
启用所有功能后,您会看到的是pdf中包含的XFA表单的内容。
XFA(也称为XFA表单)代表XML Forms Architecture(XML表单体系结构),这是一系列专有的XML规范,由JetForm提出和开发以增强Web表单的处理能力。从PDF 1.5规范开始,它也可以用在PDF文件中。XFA规范是完整应用ISO 32000-1规范(PDF 1.7)所必需的外部规范。XML表单体系结构尚未标准化为ISO标准,并且在PDF 2.0中已弃用。
大多数PDF处理器不处理XFA内容。特别是大多数免费或开放的pdf库都没有。
但是,只要您的pdf库允许直接访问低级pdf对象,您可以做的就是检索XFA XML并将其分析为XML流。
它位于目录 -> AcroForm- > XFA对象中:
所述XFA条目应包含整个XFA资源或任一个流的阵列指定各个数据包一起构成了整个XFA资源。[...]
甲包是一对串并流的。字符串包含XML元素的名称,流包含XML元素的完整文本。
(ISO 32000-1第12.7.8节XFA表格)
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |