繁体   English   中英

如何在PDF IText 5中为文本添加书签?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM