使用 pdfbox 添加指向 pdf 文件的超链接



我需要创建一个小工具,在PDF文件的第一页上添加一个超链接。我正在使用Apache PDFBox来阅读pdf文件。

任何想法如何使用此库在页面上添加超链接?

我发现了这个问题:如何使用pdfbox在内容中设置超链接,但这不起作用。

我只想在pdf文件的第一页上添加一个超链接。

File file = new File(filename);
PDDocument doc = PDDocument.load(file);
PDPage page = doc.getPage(0);
...

我在这个问题上找到的解决方案至少有 2 个问题:

  1. PDPageContentStream 类型中的方法 drawString(String( 不适用于参数 (PDAnnotationLink(

  2. 颜色蓝色未初始化

我更愿意在页面底部添加超链接,并将 URL 居中。但就目前而言,任何建议都会有所帮助

首先,你需要创建一个这样的PDAnnotationLink

PDAnnotationLink link = new PDAnnotationLink(); 

link应具有操作:

PDActionURI actionURI = new PDActionURI();
actionUri.setURI("http://www.Google.com"); 
link.setAction(action);

最后,您需要在所需位置定义一个矩形,最后将link添加到页面的注释中。

PDRectangle pdRectangle = new PDRectangle();
pdRectangle.setLowerLeftX(...);
pdRectangle.setLowerLeftY(...);
pdRectangle.setUpperRightX(...);
pdRectangle.setUpperRightY(...);
link.setRectangle(pdRectangle);
page.getAnnotations().add(link);

如果需要,还可以通过调用setBorderStyle(...)甲基来为link添加下划线。

希望这对你有用!

如果要添加一些文本,则需要创建如下所示的PDPageContentStream

PDPageContentStream contentStream = new PDPageContentStream(doc,  page);
contentStream.beginText();
contentStream.newLineAtOffset(..., ...);
contentStream.showText(...);
contentStream.endText();
contentStream.close();

newLineAtOffset(..., ...)方法用于将文本定位到所需位置。

附言很抱歉缩进不好,但在手机上写字很困难。如果您需要任何进一步的帮助,您甚至可以用罗马尼亚语给我写私信。

最新更新