java pdf生成图片水印 itext
最近项目需求生成这样的水印,特意记录下,防止以后忘记
/*** 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相关推荐
- itex将html转成pdf加水印,itext操作PDF文件添加水印
功能描述:添加图片和文字水印 /** * * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] * @param srcFile 待加水印文件 * @param destFile 加水 ...
- PDF文件JAVA去水印源码,java pdf增加水印示例源码
[实例简介] [实例截图] [核心代码] package com.test.main; import java.io.File; import java.io.FileOutputStream; im ...
- java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成
重要声明:本文章仅仅代表了作者个人对此观点的理解和表述.读者请查阅时持自己的意见进行讨论. 前言 有时候,业务系统要求提供一个PDF文件导出的功能,这时候我们就需要将数据库的对应数据查询出来,然后生成 ...
- java pdf tiff_java-使用iText将TIFF转换为PDF的多线程方法
我本质上是在尝试使用itext将tiff文件转换为pdf,这非常简单. 但是从我可以看到TiffImage.getTiffImage花费大量时间来执行较大的文件. 我的要求是使用FutureTask和 ...
- java pdf加水印 性能_利用java批量给pdf加水印的方法示例
前言 最近因为工作需要,要批量在pdf上加水印,但找了一圈pdf在mac下的水印工具,都不太好用,索性就用java写一个吧. 以下代码依赖itext5.3.3包,java操作pdf 依靠itext5. ...
- java如何给pdf加水印_java pdf加水印的方法
本文实例为大家分享了java pdf加水印的具体代码,供大家参考,具体内容如下 引入依赖 com.itextpdf.tool xmlworker 5.5.10 com.itextpdf itextpd ...
- Java PDF 水印
Java PDF 水印 1.jar包 2.代码--WatermarkPDFUtil.java 3.结果 4.[代码下载](https://download.csdn.net/download/qwea ...
- Java生成PDF文件(Itext篇)
在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...
- java生成图片水印
由于业务需求,文字水印无法满足,需要把文字转化成图片,并加在pdf中生成图片水印 示例: package com.chinaunicom.api.utils;import javax.imageio. ...
最新文章
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
- 彻底解决Spring mvc中时间的转换和序列化等问题
- android微信电话锁屏,iPhone的微信更新锁屏下呼叫提醒,终于可以直接代替电话了...
- 嵌入式linux镜像,使用Openembedded定制嵌入式Linux镜像
- springboot+shiro+jwt实现token认证登录
- Linux中删除文件夹和文件的命令
- 每日一句090516
- html下拉列表框跳转,html下拉框跳转问题
- Arduino UNO步进电机控制
- css中aspect,CSS属性之aspect-ratio
- glibc源码下载在线阅读地址
- 用python表白代码_使用Python制作表白小程序
- 谈谈古典的《拆掉思维里的墙》
- 蓝桥杯第09届 2018年省赛C/C++大学生B组——试题8 日志统计
- 地形建模(二)--TIN拉伸成模型并贴纹理
- 重庆师范大学计算机技术排名,2017年重庆师范大学专业排名
- hdu 3995 Perfect Faceless Void
- 学校计算机房的布线注意要点,学校机房布线要点探析
- Rocket MQ 问题集
- 随机事件的关系及运算
热门文章
- shodan搜索附近摄像头_深夜,摄像头前惊现一团白光!不明光源,村民心慌
- [附源码]计算机毕业设计JAVA二手车况在线评估
- 前缀和与差分1 激光炸弹
- 漫画:什么是宇宙大爆炸?
- 基于百度AI平台的人脸识别评分小程序
- flutter 仿网易云音乐(2)
- Linux——分布式存储Ceph
- python可以开发web程序吗_【分享|python部署开发的web程序有9种方法】- 环球网校...
- 微信新彩蛋太6了,满屏爱心合为一心,还可以炸屎...
- Cesium-雷达遮罩动态扫描