文章目錄
- 1.pdf轉ofd的方法
- 1.1 spire.pdf.free
- 1.2 ofdrw
- 2.移花接木
- 3.總結
1.pdf轉ofd的方法
1.1 spire.pdf.free
????這個是一個半開源的類庫,免費版本的在轉換的時候會有一個10的限制,所以不推薦使用,具體教程網上都有,這里只是分享有這么一個坑。
1.2 ofdrw
????這個是個國產開源的類庫,只不過它的更新處于停滯的狀態,所依賴的pdfbox(2.x)的版本還比較低
????依賴如下:
<dependency><groupId>org.ofdrw</groupId><artifactId>ofdrw-converter</artifactId><version>2.3.5</version>
</dependency>
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.25</version>
</dependency>
????這種搭配可以正常使用
2.移花接木
????如果把pdfbox的版本升級到3.x那么ofdrw就會報錯使用不了了,所以就需要修改ofdrw的源碼兼容pdfbox3.x的api:
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.3</version>
</dependency>
????先將ofdrw2.0.25中的org.ofdrw.converter.ofdconverter.PDFConverter類復制放到項目的src/main/java下:
????需要改動的類的源碼位置如下:
????只需要將上面標紅的那個api換成如下的代碼:
PDDocument pdfDoc = Loader.loadPDF(FileUtil.readBytes(filepath.toFile()));
????FileUtil工具類是Hutool里面的引入Hutool的依賴就可以使用這個FileUtil工具類了,很方便,不用自己去寫讀取文件轉byte數據的代碼了。
3.總結
????這也是我在做項目的時候發現升級版本帶來的坑,然后我就去翻源碼,結果我在源碼中找到了一個新的api,修改源碼接上去就可以用了,親測有效,希望我的分享對你有所幫助,請一鍵三連,么么么噠!