gpt4 book ai didi

java - iTextPDF 超链接未链接到正确的位置

转载 作者:行者123 更新时间:2023-11-30 03:25:19 26 4
gpt4 key购买 nike

我有一堆 PDF,此时我已将它们合并到代码中。在合并的 PDF 的开头,我有一个内容页面,分别链接到所述 PDF。这些 pdfAction.gotoLocalPage 链接有时无法正常工作,而是跳转到页面底部和下一页之间,但 PDF 书签超链接始终工作正常。

书签代码:

int pageToLinkTo=prevSectionPageCount+sectionPageCount+numberOfIndexPages+currentIndexPage+1;

document.put("Title", documentName);
document.put("Action", "GoTo");
document.put("Page",String.format("%d Fit", pageToLinkTo));

内容页面链接的代码:

PdfAction action = PdfAction.gotoLocalPage(pageToLinkTo, new PdfDestination(PdfDestination.FIT,-1,-1,0), stamper.getWriter());                              
chunk.setAction(action);

这两个值都计算到同一页面。源 PDF 文件是否有问题?有效的链接和跳转到错误位置的链接之间唯一显着的区别是源 PDF 的页面大小略有不同(相差 0.1 英寸)。

如有任何帮助,我们将不胜感激!

谢谢

最佳答案

我看到您创建的目的地是这样的:

new PdfDestination(PdfDestination.FIT,-1,-1,0)

这是一种奇怪的创建目标的方式,以便页面显示适合查看器窗口。请查看The ABC of PDF with iText 。这本书尚未完成,但它是免费的,在表 3.7 中,您可以看到哪些目的地采用了多少个参数。

如果您希望页面适合查看器窗口,则不需要任何额外参数:

new PdfDestination(PdfDestination.FIT)

有一个目的地需要三个额外参数:

new PdfDestination(PdfDestination.XYZ, x, y, z)

在本例中,xy 是坐标,z 是缩放系数。我认为当您希望 PDF 查看器适合查看器中的页面时,您通过添加 xyz 参数来混淆 PDF 查看器窗口。

关于java - iTextPDF 超链接未链接到正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30378537/

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