Java如何讀取pdf的內容?

聚IT


這個對於Java開發者來說簡直是簡單不能再簡單的問題,以至於我不知道提問的人為何要提問,在百度一搜一大堆,也可能提問者想到一個最好的回答。下面我來說說怎麼讀取。3種方法:

1. 開源框架 pdfbox 2. 國產的框架

Spire.PDF

3. iTika

第一步:引入依賴

第二步:Junit測試用例

1. pdfBox

2. spire

3. Tika

其實我認為這些api都大同小異,各有各的優勢吧,不過個人更傾向於apache的,畢竟大平臺。


科技小打雜


題主,你好。讀取pdf前提是pdf必須是雙面,其判斷標準是:“打開pdf鼠標右鍵滑去,查看是否可以複製文字”。如果是雙面則進行下一步讀取操作。

第一步:第三方組件下載

我們可以使用第三方組件“Free Spire.PDF for JAVA”下載解壓後將Spire.Pdf.jar包和Spire.Common.jar包到你的Java應用程序中,如下圖所示:



第二步:編寫代碼

代碼見下圖(貼上去太亂,如有需要私信給你。)


第三步:運行

  1. 準備雙面pdf文件,並copy到程序下。
  2. 運行應用程序。
  3. 查看ExtracText1.txt文件。

MR王峰


這裡簡單介紹2種Java讀取PDF文件內容的方法,分別是PDFBox和Spire.PDF,感興趣的朋友可以嘗試一下:

01

PDFBox

這是Apache提供的一個免費、開源工具,專門用於操作PDF文檔,目前支持加密/解密PDF文檔,從PDF文檔中導出表單數據,向已有PDF文檔追加內容,以及切分PDF文檔等,導入項目或工程的話,可以直接下載Jar包,也可以直接Maven引入,如下:

導入成功後,我們就可以直接編碼讀取PDF文件內容了,測試代碼如下,基本思路先加載PDF文件,創建PDDocument對象,然後再創建一個PDFTextStripper文本剝離器,最後再直接獲取PDF文本內容即可,整個過程不難,理解起來也非常容易:

02

Spire.PDF

這也是一個專門用於讀取PDF文件內容的Java工具包,商業版需要付費購買,也有個人免費版,但功能比較侷限,只能提取前10頁內容,目前支持文本、圖片等內容提取,導入項目或工程的話,可以直接下載Jar包,也可以直接Maven引入,如下:

導入完成後,我們就可以直接編碼來讀取PDF文件內容了,測試代碼如下,基本思路先加載PDF文件,然後循環遍歷每頁提取內容(文本的話是extractText方法,圖片的話是extractImages方法),最後再輸出或保存提取內容即可:

目前,就分享這2種Java讀取PDF文件內容的方法吧。總的來說,整個過程非常簡單,只要你有一定Java基礎,熟悉一下上面的代碼和示例,很快就能掌握的,當然,你也可以使用其他工具包,像iTika等也都非常不錯,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


小小猿愛嘻嘻


如何在Java應用程序中讀取PDF文件的文本內容。(讀取圖片也支持,參考這篇文章Java 提取PDF文檔中的圖片)在Java應用程序中讀取PDF,我們可以藉助第三方PDF控件,本文所使用的控件是免費Java PDF組件Free Spire.PDF for JAVA。在使用以下代碼前,你需要下載Free Spire.PDF for JAVA包並解壓縮,然後從lib文件夾下,導入Spire.Pdf.jar包和Spire.Common.jar包到你的Java應用程序中:(更正:以前的舊版本有2個jar包,現在的新版本糅合到一個jar包了)Extract_Text.Javaimport com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import java.io.*; public class Extract_Text {        public static void main(String[] args) {                        //創建PdfDocument實例           PdfDocument doc= new PdfDocument();            //加載PDF文件           doc.loadFromFile("test.pdf");                   StringBuilder sb= new StringBuilder();                   PdfPageBase page;                  //遍歷PDF頁面,獲取文本           for(int i=0;i<doc.getpages>

java分享


也可以使用native的方式調用C++的開源庫,PDFium是福昕開源給Google的,國產最牛的PDF引擎


喝粥養胃的大河


請參考pdfbox這個插件 今天剛幫同事解決取行的問題 這個插件是apache開源的插件 還算好用

/<doc.getpages>


分享到:


相關文章: