Java实现PDF添加图片水印和文字水印

您所在的位置:网站首页 pdf怎么免费添加水印和文字图片 Java实现PDF添加图片水印和文字水印

Java实现PDF添加图片水印和文字水印

2024-07-14 21:39| 来源: 网络整理| 查看: 265

这篇文章介绍如何在Java应用程序中实现给PDF文档添加图片水印和文字水印。

本方案使用了免费PDF组件Free Spire.PDF for Java,以下代码需要添加的jar包:

Spire.Pdf.jar

 (下载Free Spire.PDF for Java类库,解压缩后在lib文件夹下可找到这个jar文件)

PDFWatermark.java代码

import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.graphics.*; import java.awt.*; import java.awt.geom.Dimension2D; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; public class PDFWatermark {     public static void main(String[] args)     {         //加载PDF文档         PdfDocument pdf = new PdfDocument();         pdf.loadFromFile("Additional.pdf");         //调用AddImageWatermark方法给PDF第一页添加图片水印         AddImageWatermark(pdf.getPages().get(0), "timg.jpg");         //调用AddTextWatermark方法给PDF第二页添加文字水印         AddTextWatermark(pdf.getPages().get(1), "已审阅");         //保存         pdf.saveToFile("Watermark.pdf");         //关闭         pdf.close();     }     /**     * @param page     * 要添加水印的页面     * @param imageFile     * 水印图片路径      */     static void AddImageWatermark(PdfPageBase page, String imageFile)     {         page.setBackgroundImage(imageFile);         Rectangle2D rect = new Rectangle2D.Float();         rect.setFrame(page.getClientSize().getWidth()/2 - 100, page.getClientSize().getHeight()/2 - 100, 200, 200);         page.setBackgroundRegion(rect);     }     /**      * @param page      * 要添加水印的页面      * @param textWatermark      * 水印文字      */     static void AddTextWatermark(PdfPageBase page, String textWatermark)     {         Dimension2D dimension2D = new Dimension();         dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 2, page.getCanvas().getClientSize().getHeight() / 3);         PdfTilingBrush brush = new PdfTilingBrush(dimension2D);         brush.getGraphics().setTransparency(0.3F);         brush.getGraphics().save();         brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 2, (float) brush.getSize().getHeight() / 2);         brush.getGraphics().rotateTransform(-45);         brush.getGraphics().drawString(textWatermark, new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,30),true), PdfBrushes.getRed(), 0, 0, new PdfStringFormat(PdfTextAlignment.Center));         brush.getGraphics().restore();         brush.getGraphics().setTransparency(1);         Rectangle2D loRect = new Rectangle2D.Float();         loRect.setFrame(new Point2D.Float(0, 0), page.getCanvas().getClientSize());         page.getCanvas().drawRectangle(brush, loRect);     } }

添加图片水印效果:

添加文本水印效果:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3