最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)PDF文件的分割與加密功能

 更新時間:2022年04月19日 15:31:10   作者:fhadmin  
這篇文章主要為大家分享了如何利用Java語言實現(xiàn)PDF文件的分割與加密以及封面圖的生成,文中的示例代碼簡潔易懂,感興趣的可以了解一下

由于``某些不可抗力原因,公司不允許使用itext系列的jar包,因此系統(tǒng)中使用的相關jar得替換成開源的。經(jīng)比較和嘗試考慮使用org.apache.pdfbox來替換,同時修改系統(tǒng)中原有的方法,發(fā)現(xiàn)比itext系列稍顯簡潔一點,記錄如下:

加密文件

/**
     * 加密文件測試
     * @from fhadmin.cn
     */
    @Test
    public void encryptTest(){
        try {
            String filePath = "D:\\test\\像李開復一樣思考人生.pdf";
            String password = "1234";
            PDDocument document = PDDocument.load(new File(filePath));
            StandardProtectionPolicy spp = new StandardProtectionPolicy(password, password,new AccessPermission());
            document.protect(spp);
            String newFilePath = "D:\\test\\像李開復一樣思考人生2.pdf";
            document.save(newFilePath);
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

切割文件

/**
     * 切割文件測試
     * @from fhadmin.cn
     */
    @Test
    public void extractTest(){
        try {
            String newFilePath = "D:\\test\\像李開復一樣思考人生2.pdf";
            String password = "1234";
            PDDocument document = PDDocument.load(new File(newFilePath), password);//帶密碼讀取
            //從第一頁截取到第二頁
            PageExtractor pageExtractor = new PageExtractor(document, 1, 2);
            PDDocument extract = pageExtractor.extract();
            extract.save("D:\\test\\像李開復一樣思考人生free.pdf");
            extract.close();
            document.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
    }

生成封面圖

/**
     * 切割文件測試
     * @from fhadmin.cn
     */
    @Test
    public void createCoverPicTest(){
        try {
            String pdfPath = "D:\\test\\像李開復一樣思考人生.pdf";
            File file = new File(pdfPath);
            //order目錄
            String orderPath = file.getParent();
            //轉換后的img目錄
            String bookName = file.getName().substring(0,file.getName().lastIndexOf("."));
            String imgPath = orderPath + File.separator +bookName+".png";
            log.debug("pdf封面圖生成成功:{}", imgPath);
            PDDocument pdDocument = PDDocument.load(new File(pdfPath));
            PDFRenderer renderer = new PDFRenderer(pdDocument);
            /* 第二位參數(shù)越大轉換后越清晰,相對轉換速度越慢 */
            BufferedImage image = renderer.renderImageWithDPI(0, 150);
            ImageIO.write(image, "png", new File(imgPath));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

總結一下,現(xiàn)在的工具都比較豐富了,不需要自己去造輪子,

step-1 去maven倉庫檢索同類型的包,比較一下熱度和使用人數(shù)

step-2 下載對應包的source源代碼,看一下框架整體結構,里面都有哪些package和類,不知道類是干什么的,可以看一下類上面的注釋,一般都是比較簡單的英文

step-3 動手寫單元測試進行驗證。

到此這篇關于Java實現(xiàn)PDF文件的分割與加密功能的文章就介紹到這了,更多相關Java 文件分割 加密內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring鉤子接口匯總分析使用示例

    Spring鉤子接口匯總分析使用示例

    Spring提供了非常多的擴展接口,官方將這些接口稱之為鉤子,這些鉤子會在特定的時間被回調,以此來增強Spring功能,眾多優(yōu)秀的框架也是通過擴展這些接口,來實現(xiàn)自身特定的功能,如SpringBoot、mybatis等
    2023-01-01
  • Java中Hashtable類與HashMap類的區(qū)別詳解

    Java中Hashtable類與HashMap類的區(qū)別詳解

    Hashtable的應用非常廣泛,HashMap是新框架中用來代替Hashtable的類,也就是說建議使用HashMap,不要使用Hashtable??赡苣阌X得Hashtable很好用,為什么不用呢?這里簡單分析他們的區(qū)別。
    2016-01-01
  • Java?導出Excel增加下拉框選項

    Java?導出Excel增加下拉框選項

    這篇文章主要介紹了Java?導出Excel增加下拉框選項,excel對于下拉框較多選項的,需要使用隱藏工作簿來解決,使用函數(shù)取值來做選項,下文具體的操作詳情,需要的小伙伴可以參考一下
    2022-04-04
  • java對同一個文件進行讀寫操作方法

    java對同一個文件進行讀寫操作方法

    在本篇文章里我們給大家詳細講述了java對同一個文件進行讀寫操作的方法和知識點,需要的朋友們可以參考學習下。
    2018-10-10
  • java中struts 框架的實現(xiàn)

    java中struts 框架的實現(xiàn)

    本文給大家介紹的是java中struts 框架的實現(xiàn),有需要的小伙伴可以參考下。
    2015-06-06
  • Java多態(tài)成員訪問的特點是什么?

    Java多態(tài)成員訪問的特點是什么?

    在上一篇文章中介紹了方法重載和方法重寫的區(qū)別,但是在多態(tài)情況下發(fā)現(xiàn)程序的執(zhí)行結果和我們預期的不太一樣,這篇將繼續(xù)介紹多態(tài)場景下,Java成員訪問的特點,需要的朋友可以參考下
    2021-06-06
  • Java的SPI機制實例詳解

    Java的SPI機制實例詳解

    這篇文章主要介紹了Java的SPI機制實例詳解的相關資料,需要的朋友可以參考下
    2017-06-06
  • Java中File類中常用方法詳解

    Java中File類中常用方法詳解

    這篇文章主要為大家詳細介紹了File類中常用方法的程序演示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java源碼解析之詳解ReentrantLock

    Java源碼解析之詳解ReentrantLock

    今天給大家?guī)淼氖顷P于Java并發(fā)的相關知識,文章圍繞著ReentrantLock源碼展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java基于socket實現(xiàn)的客戶端和服務端通信功能完整實例

    Java基于socket實現(xiàn)的客戶端和服務端通信功能完整實例

    這篇文章主要介紹了Java基于socket實現(xiàn)的客戶端和服務端通信功能,結合完整實例形式分析了Java使用socket建立客戶端與服務器端連接與通信功能,需要的朋友可以參考下
    2018-05-05

最新評論

绥江县| 洞头县| 巴林左旗| 平定县| 农安县| 卓资县| 巴林左旗| 闻喜县| 呼玛县| 镶黄旗| 嘉义市| 青海省| 绿春县| 通江县| 象山县| 久治县| 宜黄县| 张家口市| 敖汉旗| 江安县| 泰和县| 涿州市| 青川县| 长子县| 山东省| 襄汾县| 黎川县| 米易县| 油尖旺区| 临海市| 渭源县| 南汇区| 远安县| 手游| 姜堰市| 株洲市| 镇巴县| 鄂托克前旗| 颍上县| 上犹县| 阜南县|