来源:【itext学习之路】-------(第四篇)给pdf增加文本水印和图片水印_tomatocc的博客-CSDN博客_itext添加水印

一般而言,许多公司在做pdf之后,都会将公司的logo或者网址以水印的方式添加到pdf文件中。本篇文章,我们将介绍在制作pdf的时候,如何将水印加入到pdf中去。

这里要说明一点:水印是要放在pdf中的,因此在创建PdfContentByte对象之前,一定要先 document.newPage();。二者顺序是不能反过来的,如果反过来的意思就是先画水印,在创建一个pdf页面,显然不符合逻辑了。

package cn.tomtocc.pdf;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfWriter;public class pdfTest {public static void main(String[] args) throws FileNotFoundException,DocumentException {//实现A4纸页面 并且横向显示(不设置则为纵向)Document document = new Document(PageSize.A4.rotate());PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("d:/demo.pdf"));// 打开文档document.open();// 创建第一页(如果只有一页的话,这一步可以省略)document.newPage();// 加入水印PdfContentByte waterMar = pdfWriter.getDirectContentUnder();// 开始设置水印waterMar.beginText();// 设置水印透明度PdfGState gs = new PdfGState();// 设置填充字体不透明度为0.4fgs.setFillOpacity(0.4f);try {// 设置水印字体参数及大小                                  (字体参数,字体编码格式,是否将字体信息嵌入到pdf中(一般不需要嵌入),字体大小)waterMar.setFontAndSize(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED), 60);// 设置透明度waterMar.setGState(gs);// 设置水印对齐方式 水印内容 X坐标 Y坐标 旋转角度waterMar.showTextAligned(Element.ALIGN_RIGHT, "www.tomatocc.com" , 500, 430, 45);// 设置水印颜色waterMar.setColorFill(BaseColor.GRAY);//结束设置waterMar.endText();waterMar.stroke();} catch (IOException e) {e.printStackTrace();}finally {waterMar = null;gs = null;}// 加入文档内容document.add(new Paragraph("my first pdf demo"));// 关闭文档document.close();pdfWriter.close();}
}

然后我们打开我们的pdf,如下:

  • 接下来,我们继续操作“图片水印”
package cn.tomtocc.pdf;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfWriter;public class pdfTest {public static void main(String[] args) throws FileNotFoundException,DocumentException {//实现A4纸页面 并且横向显示(不设置则为纵向)Document document = new Document(PageSize.A4.rotate());PdfWriter pdfWriter = PdfWriter.getInstance(document,new FileOutputStream("d:/demo.pdf"));// 打开文档document.open();// 创建第一页(如果只有一页的话,这一步可以省略)document.newPage();// 加入水印PdfContentByte waterMar = pdfWriter.getDirectContentUnder();// 开始设置水印waterMar.beginText();// 设置水印透明度PdfGState gs = new PdfGState();// 设置笔触字体不透明度为0.4fgs.setStrokeOpacity(0.4f);try {Image image = Image.getInstance("d:/tomatocc.jpg");// 设置坐标 绝对位置 X Yimage.setAbsolutePosition(200, 300);// 设置旋转弧度image.setRotation(30);// 旋转 弧度// 设置旋转角度image.setRotationDegrees(45);// 旋转 角度// 设置等比缩放image.scalePercent(90);// 依照比例缩放// image.scaleAbsolute(200,100);//自定义大小// 设置透明度waterMar.setGState(gs);// 添加水印图片waterMar.addImage(image);// 设置透明度waterMar.setGState(gs);//结束设置waterMar.endText();waterMar.stroke();} catch (IOException e) {e.printStackTrace();}finally {waterMar = null;gs = null;}// 加入文档内容document.add(new Paragraph("my first pdf demo"));// 关闭文档document.close();pdfWriter.close();}
}

然后我们打开文档,就可以看到一个带图片水印的pdf了

  • 到目前为止,关于pdf的简单操作就介绍到这里,在下篇文章中,我们将要介绍印章水印。

【itext学习之路】--4.给pdf增加文本水印和图片水印相关推荐

  1. 【itext学习之路】-------(第四篇)给pdf增加文本水印和图片水印

    版权声明:如需转载使用,请注明原文地址 一般而言,许多公司在做pdf之后,都会将公司的logo或者网址以水印的方式添加到pdf文件中.本篇文章,我们将介绍在制作pdf的时候,如何将水印加入到pdf中去 ...

  2. 【itext学习之路】--5.对pdf进行盖章/签章/数字签名

    来源:[itext学习之路]-------(第五篇)对pdf进行盖章/签章/数字签名_tomatocc的博客-CSDN博客_itext 数字签名 在上一篇文章中,我们学习了使用itext对pdf增加图 ...

  3. 【itext学习之路】--6.将html转成pdf(解决中文不显示)

    来源:[itext学习之路]-------(第七篇)将html转成pdf(解决中文不显示)_tomatocc的博客-CSDN博客 在上一篇文章中,我们学习了使用对pdf进行盖章/签章/数字签名,到此为 ...

  4. pdf怎样添加水印?添加图片水印的方法

    PDF文件是我们常用的文件,而且具有不可编辑的优点,那么当我们需要往PDF文件当中添加水印的时候该怎么办呢?分享给大家pdf怎样添加水印,添加图片水印的方法 [PDF转换器] 首先我们准备PDF文件, ...

  5. Itext 学习笔记(六) pdf的页眉页脚

    转载一篇blog 源地址为: [url] http://blog.chinaunix.net/uid-122937-id-3052063.html [/url] 1.概述 iText5中并没有之前版本 ...

  6. itext5 创建pdf 含表格内容并添加水印(文字水印和图片水印)

    推荐:https://gityao.com/articles/2019/12/07/1575689724343.html 1.jar包依赖: <dependency><groupId ...

  7. Java实现给PDF文件加文字水印和图片水印(可以自定义水印格式)

    使用Java代码给PDF文件加文字水印 直接上代码运行即可 依赖 有的可能用不上我直接复制全部了 <dependencies><!--word文件转PDF以及水印-->< ...

  8. java -PDF添加文本水印与图片水印

    java pdf添加水印文本及图片文本 PDF文件添加文本水印: private static int interval = 30;public static voidwaterMark(String ...

  9. php pdf 文字水印图片,php如何给pdf加上文字水印和图片水印[未测试]

    php给pdf加上水印 环境 php5.5.12 fpdi-1.5.2 fpdf-1.7 原理 利用fpdi来加载已知pdf文件,用fpdf对pdf进行操作 注意事项 免费的fpdi只支持处理pdf1 ...

最新文章

  1. python语言培训班-学python培训班需要多久?深圳Python培训
  2. Android禁止ViewPager的左右滑动
  3. Java并发编程 Volatile关键字解析
  4. 从原理带你掌握Spring MVC拦截处理器知识
  5. 什么是.NET Framework
  6. WiresShark 图解教程1
  7. 格式notepad自动对齐_6.2 对齐设置
  8. 自学资料总结(持续更新)
  9. 飞行器比赛制作过程中的资料搜集(2018.5~6月)
  10. 启动docker时映射到宿主机时出现 usrbindocker-current Error response from daemon driver failed
  11. 总结 27 类深度学习主要神经网络:结构图及应用
  12. 第四章:迭代器与生成器
  13. 用 C++ 在Windows中清空回收站内文件/隐藏和显示桌面图标 / Windows任务栏 / 任务栏时钟 / 更改桌面壁纸
  14. ffmpeg的下载及安装JAVA工具类
  15. 深入浅出ES6(四):模板字符串
  16. 使用selenium登录后的cookie访问大众点评的页面
  17. win10文件夹无法打开,双击闪屏
  18. 翻译TIPatterns--项目(Projects)
  19. 快来get微信清理的正确方法
  20. 华为网卡linux驱动安装驱动安装,Ubuntu server 16.04安装网卡驱动方法

热门文章

  1. 论文浅尝 | 基于事理图谱的脚本事件预测
  2. 技术动态 | 数据库研究者视角下的知识图谱研究
  3. 常见的算法面试问题以及代码实现
  4. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之环境配置
  5. 基于图嵌入的兵棋联合作战态势实体知识表示学习方法
  6. day21 面向对象之继承和组合
  7. UVA 1599 Ideal Path
  8. JAVA设计模式之单例设计模式
  9. 表单和iframe的使用
  10. 刚刚上班才回来,今天和你说说hash数组