首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PDFBox 2.0.27:页面特定覆盖文件的地图水印不会导致水印

PDFBox 2.0.27:页面特定覆盖文件的地图水印不会导致水印
EN

Stack Overflow用户
提问于 2022-11-04 16:12:14
回答 1查看 44关注 0票数 0

背景信息

我正在使用PDFBox 2.0.27,并尝试在我的PDF (五月)上添加水印,其中包含不同Din格式和方向(垂直和横向)的多个页面。

由于这个原因,我为Din格式和方向的每一个组合创建了一个PDF文件,我想使用它作为原始PDF的各个页面的水印。

逼近

特定的页面和叠加/水印文件关系存储在HashMap<Integer, String> overlayGuide = new HashMap<>();中。

对于向每一页添加水印,我使用以下代码:

代码语言:javascript
运行
复制
PDDocument originalPDF = PDDocument.load(new File("..Original_PDF.pdf"));   // To adjust with actual path

HashMap<Integer, String> overlayGuide = new HashMap<>();
overlayGuide.put(1, "..A1_Horizontal_Watermark.pdf");   // To adjust with actual path

Overlay overlay = new Overlay();
overlay.setInputPDF(originalPDF);
overlay.setOverlayPosition(Overlay.Position.BACKGROUND);
originalPDF = overlay.overlay(overlayGuide);

originalPDF.save(new File("C:\\AxaviaPdfServiceAPI\\temp\\watermarked.pdf"));

overlay.close();

源代码代码片段

此代码基于来自这里的建议代码。

问题

水印不起作用。上面的代码生成的输出是原始的PDF。我没有收到任何例外,错误或其他提示,我可以提供。

我遗漏了什么?在链接堆栈溢出问题中发布的方法overlay.setOutputFile("final.pdf");在我当前使用的PDFBox版本中不可用。

原始PDF和水印PDF的页面大小和方向相同(/should be)。通过Acrobat手动添加水印正在工作。

预期结果

基于通过Acrobat手动添加,我期望类似于这里

不幸的是,我在Overlay类中找不到一个选项来设置不透明来添加水印PDF。

我试过什么

请参阅上面的代码片段& googeling,这导致了大致相同的代码片段。其他解决方案只处理简单的文本作为水印或图像。

示例文件

测试我的代码的示例文件可以找到这里

边界条件

我想坚持模板PDF的水印,因为我想添加更多的图标/图片。提供的示例文件只是一个简短的草稿。

更新2022-11-06

请共享测试的输入和输出PDF。- mkl

原件:这里

水印PDF:这里

结果PDF:这里

任何帮助都是非常感谢的。提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-07 07:35:57

感谢mkl的指出,HashMap<Integer, String> overlayGuide = new HashMap<>();的方法目前已经被窃听了。

Solution/Work-around

我使用了overlay.overlayDocuments(overlayGuidePDDocuments);方法和overlayGuidePDDocuments = HashMap<Integer, PDDocument>,现在正确设置了水印。

备注

设置水印模板PDF的不透明度是不可能的(或者我不知道如何应用)。因此,水印模板PDF的制备具有不透明度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74319965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档