使用 Python xmptools 从 PDF 文件中检索 XMP 元数据

问题描述 投票:0回答:1

我想使用 Python 检索 PDF 文件中存储的元数据。我正在尝试使用Python

xmptools
,但发现我无法提取所有元数据。例如,此paper有PDF格式。我有以下脚本尝试提取元数据

from xmptools import XMPMetadata, DC
xmp = XMPMetadata.fromFile("Leonard_2015_Comment_on_‘Dimensionless_units_in_the_SI’.pdf")[0]
print( xmp.getContainerItems(DC.publisher) )

这个效果很好。结果是

[rdflib.term.Literal('IOP Publishing')]
。但是,如果我将最后一行更改为

print( xmp.getContainerItems(DC.identifier) )

然后我得到

None
结果。

我认为这可能是由于 PDF 文件中的 XML 造成的。这两个查询涉及的数据是

        <dc:publisher>
            <rdf:Bag>
               <rdf:li>IOP Publishing</rdf:li>
            </rdf:Bag>
         </dc:publisher>
     <dc:identifier>doi:10.1088/0026-1394/52/4/613</dc:identifier>

publisher
的情况下,信息被包装在 RDF 标签中,但
identifier
的情况并非如此。

有没有办法让

xmptools
读取未使用RDF标签的简单条目?

python xml pdf xmp
1个回答
0
投票

我不知道 xmptools,但也许 pdfminer-6 可以提供帮助?

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage

fp = open('example.pdf', 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)

print(doc.info)
© www.soinside.com 2019 - 2024. All rights reserved.