/** * 有密码的文件 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."); }