我们有一个非常复杂的打印工作流程,其中控制者使用Adobe Reader或Adobe Acrobat为生成的PDF文件的草稿版本添加注释和批注。作为工作流程的一部分,带有注释和批注的导入PDF文档应该被解析,注释应该被导入到CMS系统中(连同PDF文件一起)。
问:是否有任何可靠的工具(首选Python或Java)可以以干净、可靠的方式提取PDF文件中的数据?
代码
import poppler, os.path
path = 'file://%s' % os.path.realpath('annotations.pdf')
doc = poppler.document_new_from_file(path, None)
pages = [doc.get_page(i) for i in range(doc.get_n_pages())]
for page_no, page in enumerate(pages):
items = [i.annot.get_contents() for i in page.get_annot_mapping()]
items = [i for i in items if i]
print "page: %s comments: %s " % (page_no + 1, items)
输出
page: 1 comments: ['This is an annotation']
page: 2 comments: [' Please note ', ' Please note ', 'This is a comment in the text']
安装
在Ubuntu上的安装方法如下。
apt-get install python-poppler
pip install python-poppler
之前,您需要安装libpoppler-cpp-dev
。 - Martin ThomaAttributeError: module 'poppler' has no attribute 'document_new_from_file'
错误。 - Martin Thoma