iText5.4.2 pdf加密、水印签名

来源:互联网 发布:合肥办公软件培训班 编辑:程序博客网 时间:2024/05/28 23:20
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();// 增加新的一页2stamp.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();}}}
 

原创粉丝点击