java – 使用PDFBox 2.X在所有页面上特定位置的所有页面上叠加PDF图章
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用PDFBox 2.X在所有页面上特定位置的所有页面上叠加PDF图章,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2009字,纯文字阅读大概需要3分钟。
内容图文
![java – 使用PDFBox 2.X在所有页面上特定位置的所有页面上叠加PDF图章](/upload/InfoBanner/zyjiaocheng/782/655a4f00683042febe842f091f3a0b63.jpg)
我正试图在每页左上角的PDF中覆盖所有页面顶部的图章(PDF).将被“盖章”的PDF具有不同的尺寸. PDF标记是一个常量大小,小于PDF的所有页面.
我似乎只能让PDFBox将标记放在PDF的中间.
我已经尝试了很多我不会在这里列出的东西.我宁愿不将PDF标记转换为位图(PDImageXObject)并将其插入到页面上.这是我正在玩的一些粗略的代码: –
public static void main(String[] args) throws Exception {
String stampPath = "C:\\pdf2\\NuStamp.pdf";
String stampMePath = "C:\\pdf2\\b.pdf";
//Document to write to.
PDDocument stampMe = PDDocument.load(new File(stampMePath));
//Document that will be used as stamp.
PDDocument stamp = PDDocument.load(new File(stampPath));
//Adds some text to the PDF stamp and saves it.
addTextToPdf(stamp, stampPath, 15, 100, 14, PDType1Font.HELVETICA_BOLD, "Application: Bla Bla Bla", "", "La la la la", "Ra ra ra", "Raba", "Dabba doo");
addTextToPdf(stamp, stampPath, 250, 150, 14, PDType1Font.HELVETICA_BOLD, "Decision: whatever", "Date: 16/03/2018");
//Hack!
stampPath = stampPath + "Anno.pdf";
HashMap<Integer, String> overlayGuide = new HashMap<>();
for (int i = 0; i < stampMe.getNumberOfPages(); i++) {
overlayGuide.put(i + 1, stampPath);
}
Overlay overlay = new Overlay();
overlay.setInputPDF(stampMe);
overlay.setOverlayPosition(Overlay.Position.FOREGROUND);
overlay.overlay(overlayGuide);
stampMe.save(new File(stampMePath + "_STAMPEDDDD.pdf"));
overlay.close();
}
我的直觉是它的仿射转变,但我也无法做到这一点.
解决方法:
我创建了一个新的issue,它允许传递转换,这将是2.0.10或更高版本.这将通过扩展overlay类在calculateAffineTransform中完成.要将标记放在左上角,新方法将如下所示:
protected AffineTransform calculateAffineTransform(PDPage page, PDRectangle overlayMediaBox)
{
AffineTransform at = new AffineTransform();
PDRectangle pageMediaBox = page.getMediaBox();
at.translate(0, pageMediaBox.getHeight() - overlayMediaBox.getHeight());
return at;
}
要在2.0.10发布之前使用它,请自己构建2.0分支或在此处获取快照:
https://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/pdfbox-app/2.0.10-SNAPSHOT/
该更改是从21.3.2018或更晚的任何版本.
内容总结
以上是互联网集市为您收集整理的java – 使用PDFBox 2.X在所有页面上特定位置的所有页面上叠加PDF图章全部内容,希望文章能够帮你解决java – 使用PDFBox 2.X在所有页面上特定位置的所有页面上叠加PDF图章所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。