Java实现pdf文件添加水印,铺满全页。
因项目需要将word文件(.doc,.docx,.rtf)转换成pdf文件并添加水印,铺满全页。
现就将为pdf文件添加水印提取出来,word文件转换成pdf文件,网上的教程很多,如需需要联系我即可。
import java.awt.FontMetrics;
import java.io.FileOutputStream;import javax.swing.JLabel;import com.itextpdf.text.Element;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;public class TestwaterMark {private static int interval = -5; public static void waterMark(String inputFile, String outputFile, String waterMarkName) { try { PdfReader reader = new PdfReader(inputFile); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( outputFile)); BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED); Rectangle pageRect = null; PdfGState gs = new PdfGState(); gs.setFillOpacity(0.3f); gs.setStrokeOpacity(0.4f); int total = reader.getNumberOfPages() + 1; JLabel label = new JLabel(); FontMetrics metrics; int textH = 0; int textW = 0; label.setText(waterMarkName); metrics = label.getFontMetrics(label.getFont()); textH = metrics.getHeight();textW = metrics.stringWidth(label.getText()); PdfContentByte under; for (int i = 1; i < total; i++) { pageRect = reader.getPageSizeWithRotation(i); under = stamper.getOverContent(i); under.saveState(); under.setGState(gs); under.beginText(); under.setFontAndSize(base, 20); // 水印文字成30度角倾斜 //你可以随心所欲的改你自己想要的角度for (int height = interval + textH; height < pageRect.getHeight(); height = height + textH*3) { for (int width = interval + textW; width < pageRect.getWidth() + textW; width = width + textW*2) { under.showTextAligned(Element.ALIGN_LEFT , waterMarkName, width - textW, height - textH, 30); } } // 添加水印文字 under.endText(); } //说三遍//一定不要忘记关闭流//一定不要忘记关闭流//一定不要忘记关闭流stamper.close(); reader.close();} catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) {waterMark("F:/exe/123.pdf", "F:/exe/456.pdf", "我是黑豆"); }}
示例图片
Java实现pdf文件添加水印,铺满全页。相关推荐
- java pdf水印排布问题_Java实现pdf文件添加水印,铺满全页。
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/duan1309/article/details/81232300 因项目需要将word文件(.doc ...
- java 给 pdf文件添加水印 | Itext7 | 文字水印 | 图片水印 | 多重水印
java | Itext7 水印 | 文字水印 | 图片水印 本地开发环境:jdk1.8 效果图: maven依赖: <dependency><groupId>com.itex ...
- Java实现对PDF文件添加水印
Java实现对PDF文件添加水印 目录 Java实现对PDF文件添加水印 导入依赖 工具方法 效果 最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf 导入依赖 <!-- 对P ...
- itex将html转成pdf加水印,itext操作PDF文件添加水印
功能描述:添加图片和文字水印 /** * * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] * @param srcFile 待加水印文件 * @param destFile 加水 ...
- Java生成PDF文件_自用
Java生成PDF文件 一.前言 前几天,做ASN条码收货模块,需要实现打印下载收货报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库.废话不多说,进入正题. 二.iText简介 ...
- Java实现pdf文件转图片
Java实现pdf文件转图片 文章顺序是按照测试类- -Service- -Service实现类- -工具类- - POM依赖. test测试类里 pdfPath:存放pdf源文件的地方 imgflo ...
- 使用java实现pdf文件转换为jpg或者png(可以批量操作、分类存放)
使用java实现pdf文件转换为jpg或者png(可以批量操作) 使用java代码实现将pdf转换为图片格式.支持归类,支持pdf多页分页面转换存放. 需求背景:有几百个文件夹,每个文件夹里有两个pd ...
- Java生成PDF文件(Itext篇)
在企业的信息系统中,报表处理一直占比较重要的作用,iText是一种生成PDF报表的Java组件.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超链接显示或下载得到生成的报表,这样 ...
- Python3,2段代码,给pdf文件添加水印,原来watermark还可以这么玩。
pdf添加watermark 1. 引言 2.指定水印内容输出到pdf文件 2.1 模块安装 2.2 思路 2.3 代码示例 3.水印内容批量输出到pdf文件 3.1 模块安装 3.2 思路 3.3 ...
最新文章
- 浅谈话题模型:LSA、PLSA、LDA
- [YTU]_2918( Shape系列-4)
- layer.js 使用
- data transformation python_Python 编码为什么那么蛋疼?
- TensorFlow 2.X中的动手NLP深度学习模型准备
- Linux 系统应用编程——多线程经典问题(生产者-消费者)
- django girls_Django Girls Budapest团队的活动筹划技巧
- 关键字:auto、static、register、const、volatile 、extern 总结
- [windpole]SharePoint异常:应用程序试图执行不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。...
- php英文书籍在线,php英语四级在线练习系统
- python 万年历代码
- VOC2007和VOC2012数据集下载地址
- 基于StockRanker的AI量化选股策略
- countif函数比较两列不同_Excel如何对比两列姓名找出两列相同和不同的姓名有哪些方法...
- html代码word,Web前端
- EasyCVR平台如何实现超低延时的安防视频监控直播?
- 教务(选课)管理系统
- 2021年7月电动汽车保有量,充电站数量
- 交叉编译详解 - 概念篇
- 故障发散-Recv-Q阻塞
热门文章
- Bash bug漏洞目前最新最全的修复方式
- 桥接的路由器虚拟服务器,贝尔金路由器桥接与虚拟服务器设置步骤-路由器
- for i in range(起始值,终点值,步长):
- Ninth season thirteenth episode,Monica sang without underwear??????
- 程序员年入百万指南(六)如何选择工作机会
- 蓝牙耳机什么牌子好?四大品牌蓝牙耳机推荐
- 2021AI量化投资训练营重磅升级,自带编程的优势显而易见
- Qt实现钢笔、毛笔的笔锋效果
- IDEA配置自带的Maven
- 论文阅读笔记:GraphRAD---A Graph-based Risky Account Detection System