Apache PDFBox 2.0.18 - Comments/Annotations 状态链接

Apache PDFBox 2.0.18 - Comments/Annotations status linking

我需要将从同一 pdf 文件的多个版本中提取的评论合并到一个包含所有评论的 PDF 文件中。

我从页面中获取所有评论并创建它们的数组列表,然后我简单地在新的 pdf 文件上设置这个评论数组并且效果很好。

问题是我还需要创建一个 Excel,其中包含找到的所有评论以及它们的 "status"(已接受、已取消、已拒绝、ecc...)。

状态似乎与 PDFBox 分开 annotation/comment 进行管理,我找不到评论与其状态之间的任何关系。

示例:

我有一个 PDAnnotation 对象,内容为 "COMMENT 1"。

我还有另一个 PDAnnotation 对象,内容为 "Accepted by user XX"(评论 1 的状态)。

在 Acrobat Reader 上,我看到评论 "COMMENT 1" 的状态设置为 "Accepted",所以这两个对象之间一定存在关系,但我找不到它.

有什么想法吗?

使用 PDFDebugger 是一个很好的建议,它应该让您大致了解对象(包括 PDAnnotations)如何link彼此

无论如何,请检查 COSDictionary 中的子 PDAnnotation 中是否有 COSBase{IRT} 键,该键应包含父 COSObject

作为值

所以如果你做某事 link 这个:

COSDictionary parentDict = (COSDictionary) childDict.getDictionaryObject("IRT");

你应该得到父 PDAnnotation 字典,你可以获取你需要的所有数据

请注意转换是必要的,因为 getDictionaryObject returns a COSBase,但为 IRT 密钥返回的对象实际上是 COSDictionary