利用com.itextpdf.text包中的类,可以轻松实现pdf文件与图片的合成。比如要在pdf文件中添加水印、签名、盖章。下面以一个简单的main方法实现:
public static void main(String[] args) throws Exception{
//pdf文件存放在E盘
File file = new File("E:\\test.pdf");
//合成后的文件
FileOutputStream outputStream = new FileOutputStream("E:\\test_aa.pdf");
PdfReader reader = new PdfReader(new FileInputStream(file));
PdfStamper stamper = new PdfStamper(reader, outputStream);
//将签名图片放在pdf文件的第4页
PdfContentByte over = stamper.getOverContent(4);
//签名图片
Image contractSealImg = Image.getInstance("E:\\aa.jpg");
over.saveState();
PdfGState pdfGState = new PdfGState();
pdfGState.setFillOpacity(0.8F); //给图片设置透明度
over.setGState(pdfGState);
contractSealImg.setAbsolutePosition(75,320); //设置图片位置
contractSealImg.scaleAbsolute(80, 60); //设置图片大小
over.addImage(contractSealImg); //将图片添加到pdf文件
over.restoreState();
stamper.setFormFlattening(true);
stamper.close();
reader.close();
outputStream.close();
}
此处签名图片背景为白色,还未找到使背景透明化的方法,故将整个签名图片进行透明化设置。