PDFBox轉圖片問題匯總

1. Pdfbox介紹

pdfbox是一款Apache的開源工具,可以進行對pdf進行操作,如題,轉圖片也包含在里面,還有添加、刪除、編輯pdf頁,提取文字等功能。對于基本語法可參考官網,這里不再講解基礎,只列出一些問題。

官網:https://pdfbox.apache.org/

2. 依賴

<dependency>
  <groupId>org.apache.pdfbox</groupId>
  <artifactId>pdfbox</artifactId>
  <version>2.0.17</version>
</dependency>

我們在轉化過程中可能會遇到轉換缺失等問題,請加上以下依賴:
(1) jpegerror的異常

<dependency>
    <groupId>com.twelvemonkeys.imageio</groupId>
    <artifactId>imageio-jpeg</artifactId>
    <version>3.4.2</version>
</dependency>

(2) ERROR: Cannot read JBIG2 image: jbig2-imageio is not installed

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>jbig2-imageio</artifactId>
    <version>3.0.2</version>
</dependency>

(3) Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed

<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-core</artifactId>
    <version>1.4.0</version>
</dependency>

<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-jpeg2000</artifactId>
    <version>1.3.0</version>
</dependency>

3. 常見問題

  • (1)為何我的圖片轉的那么慢?
    如果您的目標圖片是PNG圖片,這種圖片不易失真,如果PDF本身體積就大,或者圖片色彩鮮艷,用ImageIO.write時,可能會消耗1~2秒(看文件本身),并且CPU會消耗的非常高。

  • (2)如何解決上面的問題呢?
    官方提供了兩種方法,renderImage和renderImageWithDPI 。前者第二個參數是浮點型,可以放大倍數。后者貌似是按照像素來轉化。由于我們公司要求的比較高,前者放大5~7倍,和后者設置DPI為350~400的效果差不過,后者速度更快。

  • (3)生產環(huán)境中,為什么和我本地轉化出來的圖片不同?
    生產環(huán)境一般用Linux主機,當然Linux主機也有自己的字體,我們一般開發(fā)環(huán)境用的是Windows自帶的字體文件。

    我們的做法是,直接把Windows下的字體(C:\Windows\Fonts)文件移動到Linux下(可行)。

#cd /usr/share/fonts/   // 進入系統(tǒng)自帶的字體目錄
#mkdir myfonts  // myfonts 是你自己隨便取得文件夾名字
#將字體文件拷貝到這個文件夾下,在cd /usr/share/fonts/目錄下執(zhí)行以下命令
#mkfontscale   
#mkfontdir
#fc-cache -fv           //更新字體緩存
#source /etc/profile    // 執(zhí)行以下命令讓字體生效
#fc-list    // 查看系統(tǒng)中所有得字體,可用于測試是否安裝字體成功

參考:
https://blog.csdn.net/u014155085/article/details/86077614

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 背景: 閱讀新聞 12C CDB模式下RMAN備份與恢復 [日期:2016-11-29] 來源:Linux社區(qū) 作...
    陽屯okyepd閱讀 3,885評論 0 7
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,691評論 1 32
  • 小蟲外公閱讀 292評論 0 0
  • 很久沒回家了,回到家中的我有種久違的輕松,我對自己職業(yè)的寒暑假有種滿足感,又可以與父母一起享受一段平常又踏...
    雪中韓閱讀 382評論 0 4
  • 下載簡書APP已經有很長時間了,要說具體時間,還真是有點記不得了。當初,下載APP還是在網上搜索哪些軟件即...
    瓜胖子閱讀 228評論 0 10

友情鏈接更多精彩內容