從 PDF 中提取文本

在 Java 中從 PDF 中提取文本

我們都知道 PDF 文件是最重要且使用最廣泛的數字格式之一,用於可靠地呈現和交換文檔,獨立於軟件、硬件或操作系統。然而,在某些情況下,我們可能有興趣從大型 PDF 文件中獲取摘錄。或者,我們可能需要在線將 PDF 保存為文本。因此,在本文中,我們將探討有關如何使用 Java REST API 開發 PDF 到文本轉換器的詳細信息。

PDF 生成器 API

使用模板或使用我們的 REST API 從頭開始生成 PDF 文檔。同時,API 還使您能夠編輯 PDF 文件並將其轉換為其他支持的格式。您還可以利用從 PDF 中提取文本、使用 Java Cloud SDK 解密和合併 PDF 文件的好處。現在,為了使用 Aspose.PDF Cloud SDK for Java,我們需要在我們的 Java 應用程序中添加它的引用,方法是在 pom.xml(maven 構建類型項目)中包含以下詳細信息。

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-cloud-pdf</artifactId>
        <version>21.11.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

安裝後,我們需要在 Cloud Dashboard 上創建一個免費帳戶並獲取個性化的客戶端憑據。

使用Java從PDF中提取文本

讓我們探索使用 Java 雲 SDK 從 PDF 中提取文本的詳細信息。在此示例中,我們將使用以下輸入 PdfWithTable.pdf文件。

pdf轉文本ocr

圖片 1:- 用於 PDF 到文本提取的輸入文件。

pdf轉文本ocr

圖片 2:- 從 PDF 預覽中提取文本

// 有關更多示例,請訪問 https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java/tree/master/Examples/src/main/java/com/aspose/asposecloudpdf/examples

try
    {
    // 從 https://dashboard.aspose.cloud/ 獲取 ClientID 和 ClientSecret
    String clientId = "bb959721-5780-4be6-be35-ff5c3a6aa4a2";
    String clientSecret = "4d84d5f6584160cbd91dba1fe145db14";
		    
    // 創建 PdfApi 的實例
    PdfApi pdfApi = new PdfApi(clientSecret,clientId);
    // 輸入 PDF 文檔的名稱
    String name = "PdfWithTable.pdf";
		        
    // 讀取輸入PDF文件的內容
    File file = new File(name); 
    // 上傳PDF到雲存儲
    pdfApi.uploadFile("input.pdf", file, null);
		        
    // 左下角的 X 坐標
    Double LLX = 500.0;
    // Y - 左下角的坐標。
    Double LLY = 500.0;
    // X - 右上角的坐標。
    Double URX = 800.0;
    // Y - 右上角的坐標。
    Double URY = 800.0;
			       
    // 調用 API 將 PDF 轉換為文本
    TextRectsResponse response = pdfApi.getText("input.pdf", LLX, LLY, URX, URY, null, null, null, null, null);    
		    
    // 遍歷單個文本出現
    for(int counter=0; counter <=response.getTextOccurrences().getList().size()-1; counter++)
    {
        // 在控制台中寫入文本內容
        System.out.println(response.getTextOccurrences().getList().get(counter).getText());
    }
		  
    System.out.println("Extract Text from PDF successful !");
    }catch(Exception ex)
    {
        System.out.println(ex);
    }

現在讓我們嘗試理解上面指定的代碼片段:

PdfApi pdfApi = new PdfApi(clientSecret,clientId);

創建 PdfApi 實例,同時將個性化憑據作為參數傳遞。

File file = new File(name); 
pdfApi.uploadFile("input.pdf", file, null);

使用 File 對象讀取輸入的 PDF,並使用 PdfAPI 類的 uploadFile(…) 方法將其上傳到雲存儲。請注意,文件是使用 uploadFile 方法中使用的名稱上傳的。

TextRectsResponse response = pdfApi.getText("input.pdf", LLX, LLY, URX, URY, null, null, null, null, null);    

現在調用 getText(..) 方法,我們在其中指定輸入 PDF 文件的名稱、我們需要從中提取文本內容的頁面上的矩形尺寸,並將提取的內容返回給 TextRectsResponse 對象。

response.getTextOccurrences().getList().get(counter).getText()

最後,為了打印提取的文本內容,我們將遍歷所有 TextOccurance 並將它們顯示在控制台中。

使用 cURL 命令將 PDF 轉為文本

除了 Java 代碼片段,我們還可以使用 cURL 命令執行 pdftotext 操作。現在,此方法的先決條件之一是使用以下命令生成 JWT 訪問令牌(基於客戶端憑據)。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

生成 JWT 後,請執行以下命令從雲存儲中已有的 PDF 文件中提取文本。

curl -v -X GET "https://api.aspose.cloud/v3.0/pdf/input.pdf/text?splitRects=true&LLX=0&LLY=0&URX=800&URY=800" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

小建議

尋找 PDF 到文本的免費應用程序!請嘗試使用我們的 PDF 解析器

結束語

總之,對於那些希望實現數據處理和分析需求自動化的人來說,使用 Java 從 PDF 文件中提取文本可能是一個強大的解決方案。在本指南的幫助下,您現在擁有堅實的基礎,可以輕鬆實現您自己的基於 Java 的 PDF 文檔文本提取解決方案。無論您是希望提取文本用於數據分析、機器學習還是任何其他目的,Java 都能提供一個靈活可靠的平台來滿足您的需求。因此,請繼續測試您新獲得的技能!

如果您有興趣探索 API 提供的其他令人興奮的功能,請探索 產品文檔。最後,如果您在使用 API 時遇到任何問題,或有任何相關疑問,請隨時通過免費的產品支持論壇與我們聯繫。

相關文章

請訪問以下鏈接以了解更多信息: