用Java为图片添加水印的源代码

如果您喜欢这些文章,欢迎点击此处订阅本Blog

Blog 订阅


如何用java 添加水印

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个使用PDFLayers库添加图片水印Java代码示例: ```java import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentGroup; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentProperties; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentState; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentSubGroup; import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDVisibilityPolicy; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class PDFWatermarkExample { public static void main(String[] args) throws IOException { // Load PDF document PDDocument document = PDDocument.load(new File("input.pdf")); // Load watermark image BufferedImage watermarkImage = ImageIO.read(new File("watermark.png")); // Create optional content group for watermark PDOptionalContentGroup watermarkGroup = new PDOptionalContentGroup("Watermark"); watermarkGroup.setPrinted(false); PDOptionalContentProperties watermarkProperties = new PDOptionalContentProperties(); watermarkProperties.setGroup(watermarkGroup); PDOptionalContentState watermarkState = new PDOptionalContentState(); watermarkState.setOn(true); watermarkProperties.setCurrentState(watermarkState); // Add watermark image to each page for (PDPage page : document.getPages()) { // Create layer for watermark on this page PDOptionalContentGroup pageGroup = new PDOptionalContentGroup("Page " + (document.getPages().indexOf(page) + 1)); pageGroup.setPrinted(false); PDOptionalContentProperties pageProperties = new PDOptionalContentProperties(); pageProperties.setGroup(pageGroup); PDOptionalContentState pageState = new PDOptionalContentState(); pageState.setOn(true); pageProperties.setCurrentState(pageState); // Add layer to page content PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true); contentStream.beginOptionalContent(pageGroup); // Add watermark image to layer PDImageXObject watermarkXObject = PDImageXObject.createFromFileByContent(watermarkImage, document); contentStream.drawImage(watermarkXObject, 0, 0, page.getMediaBox().getWidth(), page.getMediaBox().getHeight()); contentStream.endOptionalContent(); contentStream.close(); } // Save document document.save(new File("output.pdf")); document.close(); } } ``` 此代码将加载名为“input.pdf”的PDF文档,并将名为“watermark.png”的图像作为水印添加到每个页面上。它使用PDFLayers库来创建可选内容组和层,并将水印图像添加到正确的层中。最后,它将保存修改后的文档,命名为“output.pdf”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值