这篇文章介绍如何在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);}
}

添加图片水印效果:

添加文本水印效果:

Java实现PDF添加图片水印和文字水印相关推荐

  1. Java给PDF添加图片水印,且可以文字定位

    这两天公司开发需要对PDF增加特定图片,类似于电子印章效果,试了许多网上的方式,经过测试PDF只可以插入图片或者通过RSA实现专属签章,我觉得插入图片好用一些,效果如下: 这是定位了<盖章> ...

  2. java为PDF添加水印,图片水印和文字水印

    java为PDF添加水印,文字水印和图片水印 一个需求,下载pdf.word.excel文件时要带有水印,要求铺满.先分开,先介绍为PDF文件添加文字水印和图片水印. 所需jar包:itext-2.0 ...

  3. java 批量为图片添加图标水印和文字水印

    需求,给指定目录下面以.jpg结尾的文件,添加图标水印和文字水印 文章目录 一.基础版本 二.升级版本 三.依赖 一.基础版本 package com.gblfy.util;import com.su ...

  4. 利用iTextSharp组件给PDF文档添加图片水印,文字水印

    最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为:   usingSy ...

  5. Java使用Spire.Pdf实现PDF添加图片水印

    通过本文你将学到: Spire.Pdf是什么? 如何在项目中引入Spire.Pdf依赖? 项目中基于Spire.Pdf实现PDF添加图片水印? 一.Spire.Pdf是什么? 1.Spire.Pdf是 ...

  6. java水印_Java实现给图片添加图片水印,文字水印及马赛克的方法示例

    本文实例讲述了Java实现给图片添加图片水印,文字水印及马赛克的方法.分享给大家供大家参考,具体如下: 可以在eclipse中新建个Utils类,把以下代码复制进去直接使用,以下方法实现单个或多个水印 ...

  7. java为word添加水印,图片水印和文字水印

    java为word添加水印,图片水印和文字水印 jdk1.5及以上 所需jar包:Spire.Office.jar 或 Spire.Doc.jar jar包下载:https://www.e-icebl ...

  8. 图片添加图片水印和文字水印

    title: 图片添加图片水印和文字水印 tags: 图片处理,水印,图片水印,文字水印 date: 2018-10-29 20:15:10 grammar_cjkRuby: true 前言:最近需要 ...

  9. Java添加水印(图片水印,文字水印)

    第一种是添加文字水印: import java.awt.*; import java.awt.image.*; import java.io.*; import javax.swing.*; impo ...

  10. java swt课程设计_Java-SWT怎么做图片水印和文字水印?

    Java添加水印 图片水印 文字水印 水印的处理...以下有两种方式: 第一种是添加文字水印: 第二种是添加图片水印: 现在附上代码 2种的源码 package com. yjf.image; imp ...

最新文章

  1. Flink1.7.2 sql 批处理示例
  2. Win7 解决宽带错误691的办法
  3. Manage Jenkins管理界面提示“依赖错误: 部分插件由于缺少依赖无法加载...“问题解决办法
  4. MySQL 一个连接对应一个数据库
  5. oracle查询使用or,查询视图,使用or就用不上索引
  6. python random函数sample_Python random.seed() random.sample()函数使用
  7. 第八章应用安全工程备考要点及真题分布
  8. 水晶报表PUSH方法Demo
  9. javascript基础知识系列:eval()
  10. L3-015 球队“食物链” (30 分)
  11. linux服务器安装centos7,Linux服务器Centos7安装搭建FTP服务器的方法步骤
  12. [论文评析]人体脉搏波速与血压之间关系探索新突破
  13. FPGA产生m序列及其应用
  14. 如何锻炼个人的演讲、写作与沟通能力
  15. Python pywin32(一)
  16. 今日头条Go建千亿级微服务的实践
  17. 英语听说计算机查分,2018中考第二次英语听说考明日查分,附查分常见问答
  18. 【前端UI框架推荐】六个前端[web端]精致UI框架
  19. Oracle字节、字符的截取
  20. Internet 与TCP/IP协议

热门文章

  1. 微信公众号迁移、公证办理流程
  2. SAM-BA 2.14 reconfiguration----DIY你的sam-ba
  3. 计算机excel数据标签,excel散点图数据标签,Excel如何设置散点图标签
  4. Material Components(MDC)简单使用介绍
  5. 乐玩插件和大漠插件哪个好_2019年都用过哪些Chrome插件?分享30个好用的插件,提升上网体验...
  6. vue 子页面调用父页面的参数_Vue子父组件间的数据传递
  7. Consider revisiting the entries above or defining a bean of type in your configuration.
  8. 斯托克斯定理(Stokes' theorem)
  9. python问题unindent does not match any outer indentation level在pycharm平台的解决方法
  10. 橡皮擦的英语_英语单词这样写,老师想扣卷面分都难!(建议收藏学习)