提取PDF注释/评论

4

我们有一个非常复杂的打印工作流程,其中控制者使用Adobe Reader或Adobe Acrobat为生成的PDF文件的草稿版本添加注释和批注。作为工作流程的一部分,带有注释和批注的导入PDF文档应该被解析,注释应该被导入到CMS系统中(连同PDF文件一起)。

问:是否有任何可靠的工具(首选Python或Java)可以以干净、可靠的方式提取PDF文件中的数据?


你能否提供一个包含注释和评论的样例PDF文件的链接,以便我们可以进行相关工作。 - Marwan Alsabbagh
1个回答

4
这段代码应该可以完成任务。问题从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

这正是我所需要的,但我在安装poppler时遇到了很大的麻烦。任何帮助都将不胜感激 - 我刚刚在这里发布了一个问题:https://dev59.com/gVwY5IYBdhLWcg3w0KnL - simmons
1
@simmons 我已经放置了Ubuntu的安装说明。我无法通过pip进行安装。 - Marwan Alsabbagh
1
在Ubuntu上运行pip install python-poppler之前,您需要安装libpoppler-cpp-dev - Martin Thoma
3
安装了 python-poppler 后,出现了 AttributeError: module 'poppler' has no attribute 'document_new_from_file' 错误。 - Martin Thoma
当我运行apt-get命令时,出现“E:无法定位软件包python-poppler”的错误。 - Homero Esmeraldo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接