python-3.x 如何获取xml格式的PDF结构

tkclm6bt  于 2022-12-24  发布在  Python
关注(0)|答案(1)|浏览(174)

下面是我的代码,我在这里转换pdf到xml格式。但这给我xml格式的文件,只有当我使用XFA-PDF(pdf格式)格式的pdf。我需要转换任何类型的pdf到xml格式和xml包含有关文本值,表格,图像,对象/图纸及其x,y坐标的信息。有没有办法从pdf得到这种类型的xml?
谢谢大家!

import PyPDF2
import re
def findInDict(needle, haystack):
    for key in haystack.keys():
        try:
            value=haystack[key]
        except:
            continue
        if key==needle:
            return value
        if isinstance(value,dict):          
            x=findInDict(needle,value)            
            if x is not None:
                return x

 

def create_xml_PDFform(xfa):
    for i in range(0,len(xfa)):
        try:
            xml = xfa[i].getObject().getData()
            f = open('C:\\Users\\tanvi_karekar\\'+str(pdf_file)+'.xml', 'ab')
            f.write(xml)
            f.close()
        except:
            continue

 

if __name__ == '__main__':
    pdf_file = 'sampleDoc3'
    pdf_file_path = 'C:\\Users\\tanvi_karekar\\'+str(pdf_file)+'.pdf'
    pdfobject = open(pdf_file_path,'rb')
    pdf = PyPDF2.PdfFileReader(pdfobject)
    xfa = findInDict('/XFA',pdf.resolved_objects) 
    create_xml_PDFform(xfa)

有没有办法从PDF中获取这种类型的XML?或者任何库来获取PDF结构?

lrl1mhuk

lrl1mhuk1#

你可以给予pdfminer.six。你可以转储XML,如果这对命令行工具有帮助的话:第一个月
比较页面上的手册,以下是一个示例:

from pdfminer.high_level import extract_pages
from pdfminer.layout import LTTextContainer
for page_layout in extract_pages("example.pdf"):
    for element in page_layout:
        if isinstance(element, LTTextContainer):
            print(element.get_text())

相关问题