在PDFBox中链接注释COSObjects和页面内容(pdf标记)

时间:2018-08-17 18:14:31

标签: java pdf pdfbox

这个问题与我以前的问题有关: Text associated to PDF paragraph in document content object wit PDFBox

在这种情况下,我已使用以下方法阅读了PDF文档中的注释:

PDDocument document;
Iterator<PDPage> it = document.getPages().iterator();
annotations = pg.getAnnotations();
//some parsing and I get:
List<PDPageXYZDestination> linksOfType1;
List<PDActionGoTo> linksOfType2;
List<PDActionURI> linksOfType3;

要将它们链接到目录树,我需要在上面的链接对象和从document.getDocumentCatalog()。getStructureTreeRoot()中读取的PDStructureElement之间建立连接。 但是我真的不能解决这个问题。我曾尝试寻找基础对象的编号,但唯一的属性是COSDictionary,其内容如下:

  

{COSName {A} = COSObject {111,0},   COSName {BS} = COSDictionary {COSName {S}:COSName {S}; COSName {Type}:COSName {Border}; COSName {W}:COSInt {0};},   COSName {Border} = COSArray {[COSInt {0},COSInt {0},COSInt {0}]},   COSName {H} = COSName {N},COSName {Rect} = COSArray {[COSFloat {70.8661}],   COSFloat {709.017},COSFloat {558.425},COSFloat {694.214}]},   COSName {StructParent} = COSInt {4},COSName {Subtype} = COSName {Link},   COSName {Type} = COSName {Annot}}

我希望从PDF规范中获取obj编号,但不知道如何。来自以下PDF参考的示例:

enter image description here

PDStructure元素也会发生同样的情况,我可以手动链接到此元素,但是它没有任何索引,并且其基础COSDictionary不匹配。

到目前为止,我唯一能想到的就是通过读取页面中的索引来进行匹配,因为这可以做到,但似乎不够健壮。

0 个答案:

没有答案