我知道这听起来很简单...但是我一直在寻找添加书签的代码,当单击书签时,应该转到pdf中的文本内容。<<<<<<<<<<<<<</p>
可以说,我有书签访问XYZ,在PDF中,我添加了doc.add(new短语("应该指向我"))
)这是我的代码
PdfOutline root = writer.getRootOutline();
PdfOutline gotoXyz= new PdfOutline(root,
new PdfDestination(PdfDestination.FITH, writer.getVerticalPosition(true)), "GO TO XYZ", true);
我在Itext 7中找到了我们使用Pagenumber进行explacitDestination ...我都不能使用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");