誰かが何らかの作業コードを探している場合にのみ。 ここに私が使用するスクリプトがあります。
import poppler
import sys
import urllib
import os
def main():
input_filename = sys.argv[1]
# http://blog.hartwork.org/?p=612
document = poppler.document_new_from_file('file://%s' % \
urllib.pathname2url(os.path.abspath(input_filename)), None)
n_pages = document.get_n_pages()
all_annots = 0
for i in range(n_pages):
page = document.get_page(i)
annot_mappings = page.get_annot_mapping()
num_annots = len(annot_mappings)
if num_annots > 0:
for annot_mapping in annot_mappings:
if annot_mapping.annot.get_annot_type().value_name != 'POPPLER_ANNOT_LINK':
all_annots += 1
print 'page: {0:3}, {1:10}, type: {2:10}, content: {3}'.format(i+1, annot_mapping.annot.get_modified(), annot_mapping.annot.get_annot_type().value_nick, annot_mapping.annot.get_contents())
if all_annots > 0:
print str(all_annots) + " annotation(s) found"
else:
print "no annotations found"
if __name__ == "__main__":
main()
これはPDFからすべてのテキストを抽出する場合に便利ですが、注釈を抽出したいだけです。 私がポップラーに言及したのは、この能力をかなり簡単に提供しているからです(http://cgit.freedesktop.org/poppler/poppler/tree/glib/poppler-annot.h)。 しかし、私はpythonを使いたいと思っていました。私はpython-popplerバインディングプロジェクトを見つけましたが、注釈への完全なアクセスを提供していないようです。私の質問は、「私はそれを間違っているのか、図書館は不完全なのか? 「同じ機能を提供する他のものはありますか?」 – davidb