赞
踩
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.12</version>
</dependency>
import com.jerehsoft.ums.AuthContext;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState;
import org.apache.pdfbox.util.Matrix;
import java.io.File;
import java.io.FileInputStream;
public class aaAction {
public static void main(String[] args) {
try {
aaAction.watermark(new File(“D:\data\9b988e4da014.pdf” ), “D:\data\9b988e4da014.pdf”);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void watermark(File file, String path) throws Exception { //创建新pdf文件 File tmpPDF = new File(path); //打开pdf文件 PDDocument doc = PDDocument.load(file); doc.setAllSecurityToBeRemoved(true); //遍历pdf所有页 for (PDPage page : doc.getPages()) { PDPageContentStream cs = new PDPageContentStream(doc, page, PDPageContentStream.AppendMode.APPEND, true, true); //水印名称 String ts = AuthContext.getUser().getUserName(); //引入字体文件 解决中文汉字乱码问题 PDFont font = PDType0Font.load(doc, new FileInputStream("D:\\微软雅黑.TTF"), true); float fontSize = 30; PDResources resources = page.getResources(); PDExtendedGraphicsState r0 = new PDExtendedGraphicsState(); // 水印透明度 r0.setNonStrokingAlphaConstant(0.2f); r0.setAlphaSourceFlag(true); cs.setGraphicsStateParameters(r0); //水印颜色 cs.setNonStrokingColor(200, 0, 0); cs.beginText(); cs.setFont(font, fontSize); //根据水印文字大小长度计算横向坐标需要渲染几次水印 float h = ts.length() * fontSize; for (int i = 0; i <= 10; i++) { // 获取旋转实例 cs.setTextMatrix(Matrix.getRotateInstance(-150, i * 100, 0)); cs.showText(ts); for (int j = 0; j < 20; j++) { cs.setTextMatrix(Matrix.getRotateInstance(-150, i * 100, j * h)); cs.showText(ts); } } cs.endText(); cs.restoreGraphicsState(); cs.close(); } //保存位置 doc.save(path); }
}
链接: https://pan.baidu.com/s/12NZ7mbWiFgYeBlvgDvmCOw.
提取码: a3a1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。