java: create pdf password using itextpdf 5.x and bouncycastle Library
/** * 有密码的文件 https://www.viralpatel.net/password-protect-pdf-itext-java/ * https://github.com/viralpatel/ * com.itextpdf:itextpdf:5.5.4 * https://mvnrepository.com/artifact/com.itextpdf/itextpdf/5.5.4 * org.bouncycastle:bcprov-jdk15on:1.51 * https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on * org.bouncycastle:bcpkix-jdk15on:1.51 * https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15on * iText-5.2.1.jar * bcmail-jdk16-1.46.jar https://mvnrepository.com/artifact/org.bouncycastle/bcmail-jdk16/1.46 * bcprov-jdk16-1.46.jar https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16/1.46 * bctsp-jdk16-1.46.jar https://mvnrepository.com/artifact/org.bouncycastle/bctsp-jdk16/1.46 * @author geovindu 涂聚文 Geovin Du * @param fileurl * @param userPassWord * @param OwnerPassWord * * */ public static void CreatePdfPassword(String fileurl,String userPassWord,String OwnerPassWord) { try { // OutputStream file = new FileOutputStream(new File(fileurl)); Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(fileurl)); writer.setEncryption(userPassWord.getBytes(), OwnerPassWord.getBytes(), PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128); //writer.createXmpMetadata(); document.open(); document.addTitle("涂聚文 PDF"); document.addSubject("Using iText"); document.addKeywords("Java, PDF, iText"); document.addAuthor("geovindu,涂聚文"); document.addCreator("geovindu,涂聚文"); document.add(new Paragraph("Hello World, iText,涂聚文,你好!你的Java世界!",subFont)); document.add(new Paragraph(new Date().toString())); document.close(); //file.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println("OK."); }
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)