Java实现PDF添加图片水印和文字水印 |
您所在的位置:网站首页 › pdf怎么免费添加水印和文字图片 › Java实现PDF添加图片水印和文字水印 |
这篇文章介绍如何在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 |