PDF添加水印
//调用方式PDFwaterMark.waterMark('文件流', '本地缓存文件路径及文件名称', 'pdf水印文字');//方法public static boolean waterMark(InputStream in,String outputFile, String waterMarkName) {boolean boo = false;try {PdfReader reader =
·
//调用方式
PDFwaterMark.waterMark('文件流', '本地缓存文件路径及文件名称', 'pdf水印文字');
//方法
public static boolean waterMark(InputStream in,String outputFile, String waterMarkName) {
boolean boo = false;
try {
PdfReader reader = new PdfReader(in);
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.1f);//设置描边透明
gs.setStrokeOpacity(0.05f);//设置当前比画透明0.4
//获取当前pdf的页数
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.showTextAligned(Element.ALIGN_JUSTIFIED, waterMarkName, width - textW, height - textH, -30);
}
}
// 添加水印文字
under.endText();
}
//说三遍
//一定不要忘记关闭流
//一定不要忘记关闭流
//一定不要忘记关闭流
stamper.close();
reader.close();
boo = true;
} catch (Exception e) {
e.printStackTrace();
}
return boo;
}

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)