iTextPDF 超链接未链接到正确的位置
iTextPDF hyperlink not linking to the right place
我有一堆 PDF,我已经在代码中合并了这些文件。在合并的 PDF 的开头,我有一个内容页面,分别 links 到所述 PDF。这些 pdfAction.gotoLocalPage
links 有时 无法正常工作,而是跳转到页面底部和下一页之间,但是 PDF 书签 hyperlink总是工作正常。
书签代码:
int pageToLinkTo=prevSectionPageCount+sectionPageCount+numberOfIndexPages+currentIndexPage+1;
document.put("Title", documentName);
document.put("Action", "GoTo");
document.put("Page",String.format("%d Fit", pageToLinkTo));
内容页面的代码link:
PdfAction action = PdfAction.gotoLocalPage(pageToLinkTo, new PdfDestination(PdfDestination.FIT,-1,-1,0), stamper.getWriter());
chunk.setAction(action);
这两个评估到同一页。源 PDF 文件可能有问题吗?有效的 links 和跳转到错误位置的 links 之间唯一显着的区别是源 PDF 的页面大小略有不同(0.1 英寸不同)。
如有任何帮助,我们将不胜感激!
谢谢
我看到您是这样创建目的地的:
new PdfDestination(PdfDestination.FIT,-1,-1,0)
这是一种奇怪的创建目标的方式,以便页面显示适合查看者 window。请看一下The ABC of PDF with iText。这本书还没有完成,但它是免费的,在 table 3.7 中,您可以看到哪些目标采用多少参数。
如果您希望页面适合查看者 window,则不需要任何额外参数:
new PdfDestination(PdfDestination.FIT)
有一个目的地需要三个额外的参数:
new PdfDestination(PdfDestination.XYZ, x, y, z)
在这种情况下,x
和 y
是坐标,z
是缩放因子。我认为您在添加 x
、y
和 z
参数时混淆了 PDF 查看器,而您只是希望它适合查看器中的页面 window.
我有一堆 PDF,我已经在代码中合并了这些文件。在合并的 PDF 的开头,我有一个内容页面,分别 links 到所述 PDF。这些 pdfAction.gotoLocalPage
links 有时 无法正常工作,而是跳转到页面底部和下一页之间,但是 PDF 书签 hyperlink总是工作正常。
书签代码:
int pageToLinkTo=prevSectionPageCount+sectionPageCount+numberOfIndexPages+currentIndexPage+1;
document.put("Title", documentName);
document.put("Action", "GoTo");
document.put("Page",String.format("%d Fit", pageToLinkTo));
内容页面的代码link:
PdfAction action = PdfAction.gotoLocalPage(pageToLinkTo, new PdfDestination(PdfDestination.FIT,-1,-1,0), stamper.getWriter());
chunk.setAction(action);
这两个评估到同一页。源 PDF 文件可能有问题吗?有效的 links 和跳转到错误位置的 links 之间唯一显着的区别是源 PDF 的页面大小略有不同(0.1 英寸不同)。
如有任何帮助,我们将不胜感激!
谢谢
我看到您是这样创建目的地的:
new PdfDestination(PdfDestination.FIT,-1,-1,0)
这是一种奇怪的创建目标的方式,以便页面显示适合查看者 window。请看一下The ABC of PDF with iText。这本书还没有完成,但它是免费的,在 table 3.7 中,您可以看到哪些目标采用多少参数。
如果您希望页面适合查看者 window,则不需要任何额外参数:
new PdfDestination(PdfDestination.FIT)
有一个目的地需要三个额外的参数:
new PdfDestination(PdfDestination.XYZ, x, y, z)
在这种情况下,x
和 y
是坐标,z
是缩放因子。我认为您在添加 x
、y
和 z
参数时混淆了 PDF 查看器,而您只是希望它适合查看器中的页面 window.