700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Java实现对PDF文件添加水印

Java实现对PDF文件添加水印

时间:2020-08-16 18:47:13

相关推荐

Java实现对PDF文件添加水印

Java实现对PDF文件添加水印

目录

Java实现对PDF文件添加水印导入依赖工具方法效果

最近项目中遇到对PDF添加水印,实现有多种,采取的是itextpdf

导入依赖

<!-- 对PDF文件的操作 --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.1</version></dependency><!-- PDF文件 字体 防止中文乱码 --><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

工具方法

/*** @description*给PDF文档添加水印* @author TianwYam* @date 4月28日上午10:00:05*/public static void addWaterMark(String pdfFilePath, String outputFilePath) {try {// 原PDF文件PdfReader reader = new PdfReader(pdfFilePath);// 输出的PDF文件内容PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFilePath));// 字体 来源于 itext-asian JAR包BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", true);PdfGState gs = new PdfGState(); // 设置透明度gs.setFillOpacity(0.3f); gs.setStrokeOpacity(0.4f);int totalPage = reader.getNumberOfPages() + 1;for (int i = 1; i < totalPage; i++) {// 内容上层//PdfContentByte content = stamper.getOverContent(i);// 内容下层PdfContentByte content = stamper.getUnderContent(i);content.beginText();// 字体添加透明度content.setGState(gs);// 添加字体大小等content.setFontAndSize(baseFont, 50);// 添加范围content.setTextMatrix(70, 200);// 具体位置 内容 旋转多少度 共360度content.showTextAligned(Element.ALIGN_CENTER, "机密文件", 300, 350, 300);content.showTextAligned(Element.ALIGN_TOP, "机密文件", 100, 100, 5);content.showTextAligned(Element.ALIGN_BOTTOM, "机密文件", 400, 400, 75);content.endText();}// 关闭stamper.close();reader.close();} catch (Exception e) {e.printStackTrace();}}

主类调用

public static void main(String[] args) {addWaterMark("E:\\javaWork\\test.pdf", "E:\\javaWork\\test2.pdf");}

效果

原PDF文件

添加水印后的PDF文件

水印可以打印多个,并且位置、大小、旋转度数都可以根据实际情况调整

刚开始写微信公众号,请多多关注,欢迎,多谢!

微信公众号:《Java学习积累》

请关注一下,多谢!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。