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