//PDF添加水印
public boolean addPdfWater(String sourcepath,String targetpath,String waterText){
try {
//待加水印的文件
PdfReader reader = new PdfReader(sourcepath);
//加完水印的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(targetpath));
//总页码
int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
//设置字体
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",
BaseFont.EMBEDDED);
//循环对每页插入水印
for (int i = 1; i < total; i++) {
// 水印的起始
//在内容下方
//content = stamper.getUnderContent(i);
//在内容上方
content = stamper.getOverContent(i);
PdfGState gs = new PdfGState();
//设置透明度为0.2
gs.setFillOpacity(0.2f);
content.setGState(gs);
//下边这一行代码写上会报错
//content.restoreState();
// 开始
content.beginText();
// 设置颜色
content.setColorFill(BaseColor.RED);
// 设置字体及字号
content.setFontAndSize(base, 20);
// 设置起始位置
content.setTextMatrix(0, 0);
int x = 300;
int y = 500;
//开始写入水印
content.showTextAligned(Element.ALIGN_CENTER, waterText, x, y, 45);
//开始写入水印
content.endText();
}
stamper.close();
System.out.println("PDF水印写入完成");
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
PDF添加水印
最新推荐文章于 2024-09-19 15:19:27 发布