我需要创建一个小工具,在PDF文件的第一页上添加一个超链接。我正在使用Apache PDFBox来阅读pdf文件。
任何想法如何使用此库在页面上添加超链接?
我发现了这个问题:如何使用pdfbox在内容中设置超链接,但这不起作用。
我只想在pdf文件的第一页上添加一个超链接。
File file = new File(filename);
PDDocument doc = PDDocument.load(file);
PDPage page = doc.getPage(0);
...
我在这个问题上找到的解决方案至少有 2 个问题:
PDPageContentStream 类型中的方法 drawString(String( 不适用于参数 (PDAnnotationLink(
颜色蓝色未初始化
我更愿意在页面底部添加超链接,并将 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(..., ...)
方法用于将文本定位到所需位置。
附言很抱歉缩进不好,但在手机上写字很困难。如果您需要任何进一步的帮助,您甚至可以用罗马尼亚语给我写私信。