gpt4 book ai didi

java - PDFBox - 如何创建目录

转载 作者:搜寻专家 更新时间:2023-11-01 03:52:04 26 4
gpt4 key购买 nike

有没有办法使用 Java PDFBox 库创建目录?

目录应该是可点击的(跳转到右边的页面)

谢谢。

最佳答案

没有简单的方法可以做到这一点,但这里有一种方法。我还没有弄清楚如何将链接直接附加到文本,所以我的方法意味着您必须分别将注释绘制为矩形和文本。它的边缘有点粗糙,但它确实有效。

// there are other types of destinations, choose what is appropriate
PDPageXYZDestination dest = new PDPageXYZDestination();
// the indexing is odd here. if you are doing this on the first page of the pdf
// that page is -1, the next is 0, the next is 1 and so on. odd.
dest.setPageNumber(3);
dest.setLeft(0);
dest.setTop(0); // link to top of page, this is the XYZ part

PDActionGoTo action = new PDActionGoTo();
action.setDestination(dest);

PDAnnotationLink link = new PDAnnotationLink();
link.setAction(action);
link.setDestination(dest);

PDRectangle rect = new PDRectangle();
// just making these x,y coords up for sample
rect.setLowerLeftX(72);
rect.setLowerLeftY(600);
rect.setUpperRightX(144);
rect.setUpperRightY(620);

PDPage page = // however you are getting your table of contents page, eg new PDPage() or doc.getDocumentCatalog().getAllPages().get(0)

page.getAnnotations().add(link);

PDPageContentStream stream = new PDPageContentStream(doc, page, true, true);
stream.beginText();
stream.setTextTranslation(85, 600); // made these up, have to test to see if padding is correct
stream.drawString("Page 1");
stream.endText();
stream.close();

呸!那是一个洛塔代码。那应该让你上路。如果您希望矩形看起来像是在单击链接,则可以将矩形设置为与文档背景相同的颜色,但这需要更多实验。

关于java - PDFBox - 如何创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com