如何在pdf itext 5中提供文本的书签



我知道这听起来很简单...但是我一直在寻找添加书签的代码,当单击书签时,应该转到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");

最新更新