![](/img/trans.png)
[英]Copy the header from one page to another page in PDF using IText
[英]How to Navigate from one page to another page in same PDF file using links in IText?
我有2个PDF文件,其中一个PDF文件是使用Apache FOP创建的,另一个是通过转换Word文档创建的。 我需要使用IText将这两个PDF合并到单个PDF文件中,这已经完成了。 除此之外,我需要在我的第一个PDF中创建一个链接,该链接必须将我带到已合并的第二个PDF的第一页。
问题是我需要通过查找“ Go To Page”这样的字符串/文本来从第一个PDF创建链接,如果我在第一个PDF中找到了该字符串,则需要替换该字符串作为链接,然后在单击该链接需要将我带到所需页面。
下面的代码实际上为我完成了页面导航工作,但是我无法通过按我的要求创建链接来做到这一点。
是否可以找到字符串/文本的矩形坐标,以便我可以传递这些坐标来创建链接? 还是有任何方法可以使用itext将我的字符串替换为链接?
我正在使用IText 5.x
public void pdfNavigation(String src, String dest) throws IOException, DocumentException
{
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
PdfDestination d1 = new PdfDestination(PdfDestination.FIT);
Rectangle rect = new Rectangle(0, 806, 595, 842);
PdfAnnotation annotation1= PdfAnnotation.createLink(stamper.getWriter(),
rect,
PdfAnnotation.HIGHLIGHT_INVERT, 10, d1);
stamper.addAnnotation(annotation1, 1);
PdfDestination d2 = new PdfDestination(PdfDestination.FIT);
PdfAnnotation annotation2= PdfAnnotation.createLink(stamper.getWriter(),
rect,
PdfAnnotation.HIGHLIGHT_PUSH, 1, d2);
stamper.addAnnotation(annotation2, 4);
stamper.close();
}
预先感谢您的帮助!
您可以为此使用Chunk
类。 我想您将从此链接中得到答案。
您也可以为此使用命名操作,例如可以在iTEXT文档中找到以下代码(链接在下面给出)。
Paragraph p = new Paragraph()
.add("Go to last page")
.setAction(PdfAction.createNamed(PdfName.LastPage));
document.add(p);
p = new Paragraph()
.add("Go to first page")
.setAction(PdfAction.createNamed(PdfName.FirstPage));
document.add(p);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.