/**
* pdf添加水印后下载
*
* @param os 响应输出流
* @param srcFile 需要加水印的文件路径
* @param markText 水印内容
* @throws DocumentException
* @throws IOException
*/
public static void setPdfMark(OutputStream os, byte[] srcFile, String markText) throws DocumentException, IOException {
// 如果你想直接输出到某个路径,将os参数改为descFile(具体输出路径)
//BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(descFile)));
PdfReader reader = new PdfReader(srcFile);
PdfStamper stamper = new PdfStamper(reader, os);
int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
PdfGState gs = new PdfGState();
for (int i = 1; i < total; i++) {
//content = stamper.getOverContent(i); // 在内容上方加水印
content = stamper.getUnderContent(i); //在内容下方加水印
gs.setFillOpacity(0.2f); // 透明度
content.setGState(gs);
content.beginText();
content.setColorFill(BaseColor.BLACK);
content.setFontAndSize(base, 30);
content.setTextMatrix(70, 200);
content.showTextAligned(Element.ALIGN_CENTER, markText, 300, 350, 55);
content.endText();
}
stamper.close();
}
Java给pdf文件加水印
最新推荐文章于 2024-05-23 11:21:36 发布