/** * 给pdf文件添加水印 * @param InPdfFile 要加水印的原pdf文件路径 * @param outPdfFile 加了水印后要输出的路径 * @param markImagePath 水印图片路径 * @param pageSize 原pdf文件的总页数(该方法是我当初将数据导入excel中然后再转换成pdf所以我这里的值是用excel的行数计算出来的,如果不是我这种可以 直接用reader.getNumberOfPages()获取pdf的总页数) * @throws Exception */ public static void addPdfMark(String InPdfFile, String outPdfFile, String markImagePath, int pageSize) throws Exception { PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes()); PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPdfFile)); Image img = Image.getInstance(markImagePath);// 插入水印 img.setAbsolutePosition(150, 100); for(int i = 1; i <= pageSize; i++) { PdfContentByte under = stamp.getUnderContent(i); under.addImage(img); } stamp.close();// 关闭 File tempfile = new File(InPdfFile); if(tempfile.exists()) { tempfile.delete(); } }
所需jar包iText-2.0.8.jar