[英]How to give a bookmark for a text in PDF IText 5?
我知道这听起来很简单...但是我一直在寻找添加书签的代码,单击书签时应转到PDF中的文本内容。
可以说我有书签GO XYZ,并且在PDF中我添加了doc.add(new Phrase(“ Should Point Me”))
这是我的代码
PdfOutline root = writer.getRootOutline();
PdfOutline gotoXyz= new PdfOutline(root,
new PdfDestination(PdfDestination.FITH, writer.getVerticalPosition(true)), "GO TO XYZ", true);
我在Itext 7中发现我们给ExplicitDestination提供了pageNumber ...我既不能使用Itext7也不能使用pageNumber我需要使用书签指向PDF中的文本内容...
请帮助我。
第1部分
你有:
doc.add(new Phrase("Should Point Me"));
替换为:
Paragraph p = new Paragraph("This is the ");
Chunk chunk = new Chunk("destination");
chunk.setLocalDestination("XYZ");
p.add(chunk);
doc.add(p);
现在,您已经创建了一个名称为XYZ
的本地目的地。 这类似于在HTML中具有<a name="XYZ">
。
第2部分
您现在需要类似<a href="#XYZ">
东西。 那将是一个动作:
PdfAction action = PdfAction.gotoLocalPage("XYZ", false);
您可以从您的内容中使用此操作,如下所示:
Paragraph p = new Paragraph("Go to ");
Chunk destination = new Chunk("destination");
destination.setAction(PdfAction.gotoLocalPage("XYZ", false));
p.add(destination);
document.add(p);
您还可以在PdfOutline
的上下文中使用此操作。
你有:
PdfOutline root = writer.getRootOutline();
PdfOutline gotoXyz= new PdfOutline(root,
new PdfDestination(PdfDestination.FITH, writer.getVerticalPosition(true)), "GO TO XYZ", true);
这大概可以工作,但这也应该工作:
PdfOutline root = writer.getRootOutline();
PdfOutline gotoXyz= new PdfOutline(root,
new PdfDestination("XYZ"), "GO TO XYZ");
您甚至可以使用以下命令:
PdfOutline root = writer.getRootOutline();
PdfOutline gotoXyz= new PdfOutline(root,
PdfAction.gotoLocalPage("XYZ", false), "GO TO XYZ");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.