我正在尝试使用 Python 从 PDF 中提取评论。这是我测试过的两段代码:
一个使用PyPDF2
:
import PyPDF2
src = 'xxxx.pdf'
input1 = PyPDF2.PdfFileReader(open(src, "rb"))
nPages = input1.getNumPages()
df_comments = pd.DataFrame()
for i in range(nPages) :
annotation = []
page = []
page0 = input1.getPage(i)
try :
for annot in page0['/Annots'] :
annotation.append(annot.getObject())
page = [i+1] * len(annotation)
page = pd.DataFrame(page)
annotation = pd.DataFrame(annotation)
df_temp = pd.concat([page, annotation], axis=1)
df_comments = pd.concat([df_comments, df_temp], ignore_index=True)
except :
# there are no annotations on this page
pass
另一个使用fitz
:
import fitz
doc = fitz.open(src)
for i in range(doc.pageCount):
page = doc[i]
for annot in page.annots():
print(annot.info)
评论正在被提取,但是当我检查 PDF 时,我发现评论没有按顺序提取。我试图检查其他参数,如创建日期、修改日期,但这对我没有帮助。
当它们出现在 PDF 中时,它们是我可以连续提取它们的一种方式吗?或者我是否也可以从已标记评论的 PDF 中提取文本?