You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PDFBox 2.0.27:使用映射指定页面叠加文件添加水印无效

背景信息

我正在使用PDFBox 2.0.27,尝试为包含不同Din格式及横竖方向多页的PDF添加水印。为此,我针对每种Din格式与方向的组合创建了对应的PDF文件,用于为原PDF的对应页面添加水印。

实现方案

页面与叠加/水印文件的对应关系存储在HashMap<Integer, String> overlayGuide = new HashMap<>();中。添加水印的代码如下:

PDDocument originalPDF = PDDocument.load(new File("..Original_PDF.pdf"));   // 需替换为实际路径

HashMap<Integer, String> overlayGuide = new HashMap<>();
overlayGuide.put(1, "..A1_Horizontal_Watermark.pdf");   // 需替换为实际路径

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();

该代码基于Stack Overflow的示例。

问题

水印添加未生效,输出文件与原PDF一致,且无任何异常或错误提示。当前版本PDFBox中不存在示例中的overlay.setOutputFile("final.pdf");方法。原PDF与水印PDF的页面尺寸和方向一致,通过Adobe Acrobat DC手动添加水印可正常生效。

预期结果

预期效果与通过Adobe Acrobat DC手动添加的水印一致,同时希望能设置水印PDF的opacity(透明度),但未在Overlay类中找到相关选项。

已尝试操作

使用上述代码,并通过搜索得到类似代码片段,但其他方案仅支持文本或图片水印。

内容的提问来源于stack exchange,提问作者SeeAZO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:35:17