900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 如何用java给PDF添加一个图片水印?

如何用java给PDF添加一个图片水印?

时间:2021-11-23 08:49:03

相关推荐

如何用java给PDF添加一个图片水印?

以下代码需要添加jar包: itextpdf-5.3.2.jar

import java.io.File;

import java.io.FileOutputStream;

import com.itextpdf.text.Image;

import com.itextpdf.text.pdf.PdfContentByte;

import com.itextpdf.text.pdf.PdfReader;

import com.itextpdf.text.pdf.PdfStamper;

public class TestWaterPrint {

public static void main(String[] args) {

try {

addPdfMark("D:\\a\\one.pdf", "D:\\a\\xin.pdf", "D:\\a\\22.png", 1);

} catch (Exception e) {

// TODO Auto-generated catch block

System.out.println("失败。。。。");

e.printStackTrace();

}

System.out.println("成功。");

}

/**

* 给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(335, 175);

//开始水印

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();

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。