文章15 | 阅读 6243 | 点赞0
需导入的jar包:itext-pdfa-5.5.6.jar、itext-xtra-5.5.6.jar、itext-5.5.6.jar、itext-asian.jar
思路:
/** * 插入水印 * @param writer PDF流 * @param tmpName 旧名称 * @param finalName 新名称 * @param pdfAddrss 生成pdf报告地址 * @param imageLocalAddr 水印图片当地地址 * @throws IOException * @throws DocumentException */
public static void insertWaterImage(PdfWriter writer, String tmpName, String finalName, String pdfAddrss, String imageLocalAddr) throws IOException, DocumentException {
//假如PDF有4页,endPDFPage值为5
int endPdfPage = writer.getPageNumber();
PdfReader reader = null;
//pdf名称
String pdfName = finalName;
reader = new PdfReader(pdfAddrss + "\\" + tmpName);
String root = pdfAddrss;
if (!new File(root).exists())
new File(root).mkdirs();
File deskFile = new File(root, pdfName);
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(deskFile));
for (int i = 1; i < endPdfPage; i++) {
PdfContentByte under = stamp.getUnderContent(i);
//插入另一组水印
Image img = Image.getInstance(imageLocalAddr + "watermark1.png");
//设置图片缩放比例
img.scalePercent(78);
//设置图片绝对宽度
img.scaleAbsoluteWidth(596);
//设置图片绝对位置
img.setAbsolutePosition(0, 0);
under.addImage(img);
}
stamp.close();
reader.close();
//删除生成旧的PDF
File file = new File(pdfAddrss + "\\" + tmpName);
if (file.exists()) {
System.out.println("是否删掉旧的" + tmpName + ".pdf文件: " + file.delete());
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/sand_clock/article/details/70182795
内容来源于网络,如有侵权,请联系作者删除!