java: create pdf password using itextpdf 5.x and bouncycastle Library

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
         * 有密码的文件  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.");
             
        }

  

 

posted @   ®Geovin Du Dream Park™  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2019-01-22 vis.js 4.21.0 Timeline localization
2018-01-22 Python3.4:splinter or traceback
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示