我们有一个相当复杂的打印工作流程,其中控制是使用 Adobe Reader 或 Adobe Acrobat 为生成的 PDF 文档的草稿版本添加注释和注释。作为工作流程的一部分,应解析带有注释和注释的导入 PDF 文档,并且应将注释导入 CMS 系统(与 PDF 一起)。
问:是否有任何可靠的工具(首选 Python 或 Java)可以以干净可靠的方式将此类数据提取为 PDF 文件?
这段代码应该可以完成这项工作。Parse annotations from a pdf问题的答案之一对让我编写下面的代码非常有帮助。它使用 poppler 库来解析注释。这是annotations.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