最近项目需求生成这样的水印,特意记录下,防止以后忘记

/*** pdf文件添加水印** @param file      pdf文件* @param waterText 添加文字水印* @return* @throws IOException* @throws DocumentException*/public static String addtextWatermark(File file, String waterText) throws IOException, DocumentException {//获取pdfWatermark的存放路径String fileSavePath = file.getPath().substring(0, file.getPath().lastIndexOf("."));fileSavePath = fileSavePath + "Watermark" + ".pdf";//水印保存位置//待加水印的文件PdfReader reader = new PdfReader(file.getPath());// 加完水印的文件PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(fileSavePath));int total = reader.getNumberOfPages() + 1;//获取文档Document document = new Document(reader.getPageSize(1));// 获取页面宽度float widths = document.getPageSize().getWidth();// 获取页面高度float heights = document.getPageSize().getHeight();
//        document.close();PdfContentByte content;// 设置字体BaseFont baseFont = BaseFont.createFont("C:\\Windows\\Fonts\\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);// 循环对每页插入水印for (int i = 1; i < total; i++) {content = stamper.getOverContent(i);// 开始content.beginText();// 设置颜色content.setColorFill(BaseColor.GRAY);// 设置字体及字号content.setFontAndSize(baseFont, 55);//透明度PdfGState gs = new PdfGState();gs.setFillOpacity(0.5f);// 设置透明度为0.8content.setGState(gs);// 开始写入水印 设置起始位置 旋转content.showTextAligned(Element.ALIGN_CENTER, waterText, widths / 2, heights / 2, 50);content.endText();}stamper.setFormFlattening(false);// 如果为false那么生成的PDF文件还能编辑,一定要设为truestamper.close();//一定要在循环外关闭,不然只有第一页有水印reader.close();//关闭读取否则文件删除不了return fileSavePath;}/*** pdf文件添加水印** @param file      pdf文件* @param waterImage 添加图片水印* @return* @throws IOException* @throws DocumentException*/public static String addimageWatermark(File file, String waterImage) throws IOException, DocumentException {ImageIcon imageIcon = new ImageIcon(waterImage);int iconWidth = imageIcon.getIconWidth();//图片宽int iconHeight = imageIcon.getIconHeight();//图片高//获取pdfWatermark的存放路径String fileSavePath = file.getPath().substring(0, file.getPath().lastIndexOf("."));fileSavePath = fileSavePath + "Watermark" + ".pdf";//水印保存路径PdfReader reader = new PdfReader(file.getPath());//待添加图片水印文件PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(fileSavePath));//图片水印文件//获取文档Document document = new Document(reader.getPageSize(1));// 获取页面宽度float widths = document.getPageSize().getWidth();// 获取页面高度float heights = document.getPageSize().getHeight();PdfContentByte content;Image img = Image.getInstance(waterImage);img.setAbsolutePosition(widths-iconWidth-10, heights-iconHeight-10);//减去图片宽高和10边框线确保图片完整显示 并保留有边距 右上方加水印content = stamp.getOverContent(1);// 在第一页内容content.addImage(img);stamp.close();reader.close();return fileSavePath;}public static void main(String[] args) throws Exception {String pdfPath = "E:\\Desktop\\GQ_GuoQ\\Change2PDF.pdf";File file = new File(pdfPath);String path= addtextWatermark(file,"交通厅档案注意保密");String imagepath = GraphicsImage.initChartData("E:\\Desktop\\GQ_GuoQ\\1.png");//生成图片水印file = new File(path);imagepath=Change2PDF.addimageWatermark(file,imagepath);}

效果:

java pdf生成图片水印 itext相关推荐

  1. itex将html转成pdf加水印,itext操作PDF文件添加水印

    功能描述:添加图片和文字水印 /** * * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] * @param srcFile 待加水印文件 * @param destFile 加水 ...

  2. PDF文件JAVA去水印源码,java pdf增加水印示例源码

    [实例简介] [实例截图] [核心代码] package com.test.main; import java.io.File; import java.io.FileOutputStream; im ...

  3. java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成

    重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...

  4. java pdf tiff_java-使用iText将TIFF转换为PDF的多线程方法

    我本质上是在尝试使用itext将tiff文件转换为pdf,这非常简单. 但是从我可以看到TiffImage.getTiffImage花费大量时间来执行较大的文件. 我的要求是使用FutureTask和 ...

  5. java pdf加水印 性能_利用java批量给pdf加水印的方法示例

    前言 最近因为工作需要,要批量在pdf上加水印,但找了一圈pdf在mac下的水印工具,都不太好用,索性就用java写一个吧. 以下代码依赖itext5.3.3包,java操作pdf 依靠itext5. ...

  6. java如何给pdf加水印_java pdf加水印的方法

    本文实例为大家分享了java pdf加水印的具体代码,供大家参考,具体内容如下 引入依赖 com.itextpdf.tool xmlworker 5.5.10 com.itextpdf itextpd ...

  7. Java PDF 水印

    Java PDF 水印 1.jar包 2.代码--WatermarkPDFUtil.java 3.结果 4.[代码下载](https://download.csdn.net/download/qwea ...

  8. Java生成PDF文件(Itext篇)

    在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...

  9. java生成图片水印

    由于业务需求,文字水印无法满足,需要把文字转化成图片,并加在pdf中生成图片水印 示例: package com.chinaunicom.api.utils;import javax.imageio. ...

最新文章

  1. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
  2. 彻底解决Spring mvc中时间的转换和序列化等问题
  3. android微信电话锁屏,iPhone的微信更新锁屏下呼叫提醒,终于可以直接代替电话了...
  4. 嵌入式linux镜像,使用Openembedded定制嵌入式Linux镜像
  5. springboot+shiro+jwt实现token认证登录
  6. Linux中删除文件夹和文件的命令
  7. 每日一句090516
  8. html下拉列表框跳转,html下拉框跳转问题
  9. Arduino UNO步进电机控制
  10. css中aspect,CSS属性之aspect-ratio
  11. glibc源码下载在线阅读地址
  12. 用python表白代码_使用Python制作表白小程序
  13. 谈谈古典的《拆掉思维里的墙》
  14. 蓝桥杯第09届 2018年省赛C/C++大学生B组——试题8 日志统计
  15. 地形建模(二)--TIN拉伸成模型并贴纹理
  16. 重庆师范大学计算机技术排名,2017年重庆师范大学专业排名
  17. hdu 3995 Perfect Faceless Void
  18. 学校计算机房的布线注意要点,学校机房布线要点探析
  19. Rocket MQ 问题集
  20. 随机事件的关系及运算

热门文章

  1. shodan搜索附近摄像头_深夜,摄像头前惊现一团白光!不明光源,村民心慌
  2. [附源码]计算机毕业设计JAVA二手车况在线评估
  3. 前缀和与差分1 激光炸弹
  4. 漫画:什么是宇宙大爆炸?
  5. 基于百度AI平台的人脸识别评分小程序
  6. flutter 仿网易云音乐(2)
  7. Linux——分布式存储Ceph
  8. python可以开发web程序吗_【分享|python部署开发的web程序有9种方法】- 环球网校...
  9. 微信新彩蛋太6了,满屏爱心合为一心,还可以炸屎...
  10. Cesium-雷达遮罩动态扫描