iText5.4.2 pdf加密、水印签名

import java.io.FileOutputStream;

import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;

public class pdf {
	public static void main(String[] args) {
		try {
			PdfReader reader = new PdfReader("D:/bldc130703085701-85.pdf");//pdf编辑来源文件
			PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("D:/bldc130703085701-88.pdf"));//编辑后生成的文件

			PdfContentByte under = stamp.getUnderContent(1);
			// 插入水印
			Image img = Image.getInstance("D:/11.png");
			//系长签名
//			img.setAbsolutePosition(410, 672);
//			img.scaleToFit(50, 25);//大小
			//科长签名
			img.setAbsolutePosition(460, 672);
			img.scaleToFit(50, 25);//大小
			under.addImage(img);
			
			// 关闭
			stamp.close();
			System.out.println("==============================ok");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	//pdf加密
	public void setPwdToPdf(){
		try {
			PdfReader reader = new PdfReader("D:/bldc130703085701-86.pdf", "11".getBytes());
			PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("D:/bldc130703085701-87.pdf"));
			//11是阅读、编辑的密码,22是阅读的密码
			stamp.setEncryption("11".getBytes(), "22".getBytes(),PdfWriter.ALLOW_SCREENREADERS,PdfWriter.STANDARD_ENCRYPTION_128);
			
			// 关闭
			stamp.close();
			System.out.println("==============================ok");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void test(){
		try {
			PdfReader reader = new PdfReader("D:/bldc130703085701-85.pdf");
			PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(
					"D:/bldc130703085701-86.pdf"));

			// 拿到第一页的上部内容部分
			PdfContentByte over = stamp.getOverContent(1);
			// 增加内容
			over.beginText();
			over.setTextMatrix(30, 30);
			BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA,
					BaseFont.WINANSI, BaseFont.EMBEDDED);
			over.setFontAndSize(bf, 18);
			over.showText("page1");
			over.showTextAligned(Element.ALIGN_LEFT, "DUPLICATE", 230, 430, 45);
			over.endText();

			// 增加新的一页2
			stamp.insertPage(2, PageSize.A4);
			// 写上内容
			over = stamp.getOverContent(2);
			over.beginText();
			over.setFontAndSize(bf, 18);
			over.showTextAligned(Element.ALIGN_LEFT,
					"DUPLICATE OF AN EXISTING PDF DOCUMENT", 30, 600, 0);
			over.endText();
			// 插入水印
			Image img = Image
					.getInstance("C:\\Users\\Public\\Pictures\\Sample Pictures\\Desert.jpg");
			img.setAbsolutePosition(200, 400);
			PdfContentByte under = stamp.getUnderContent(2);
			under.addImage(img);

			// 增加新的一页
			stamp.insertPage(3, PageSize.A4);
			// 从现有的别的pdf合并过来
			PdfReader reader2 = new PdfReader("D:/bldc130703085701-85.pdf", "World"
					.getBytes());
			under = stamp.getUnderContent(3);
			under.addTemplate(stamp.getImportedPage(reader2, 1), 1, 0, 0, 1, 0,
					0);
			// 关闭
			stamp.close();
			System.out.println("==============================ok");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 


版权声明:本文为oushaomeng2011原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。