如何使用 GroupDocs.Parser InputStream 解析 PDF(Java)

在現代 Java 應用程式中,如何解析 PDF 高效是一個常見問題。無論您的 PDF 位於雲端儲存、透過 HTTP 請求傳入,或是即時產生,直接從 InputStream 讀取即可免除暫存檔案的需求,並加快處理流程。本教學將帶您完整走過 java pdf processing 工作流程,示範使用 GroupDocs.Parser 從串流載入 PDF 的優勢,並提供可立即採用的實務案例。

快速解答

  • 什麼是「從 PDF 提取文字」的意思? 它指的是以程式方式讀取 PDF 檔案的文字內容,無需手動複製貼上。
  • 我可以在沒有實體檔案的情況下讀取 PDF 嗎? 可以——使用 InputStream 即可直接從記憶體或網路來源載入文件。
  • 哪個函式庫支援 Java 中基於串流的 PDF 讀取? GroupDocs.Parser 提供乾淨的 API 來完成此目的。
  • 我需要授權嗎? 免費試用授權可用於評估;正式上線則需購買授權。
  • 需要哪個 Java 版本? JDK 8 或以上。

什麼是「如何解析 PDF」?

解析 PDF 意指以程式方式抽取其底層資料——文字、影像或中繼資料——以便進行索引、分析或轉換內容。在 Java 中,GroupDocs.Parser 的 java pdf text extraction 功能讓此工作變得簡單直觀。

為什麼要從串流載入 PDF 而不是檔案?

串流 (load pdf from stream) 載入 PDF 可省去寫入暫存檔的開銷,降低 I/O 延遲,並提升對敏感文件的安全性。它同時能無縫整合雲端儲存桶、電子郵件附件或任何位元組陣列來源,這對現代 java pdf processing 流程至關重要。

前置條件

  • Java Development Kit (JDK) 8+
  • IntelliJ IDEA、Eclipse 或 NetBeans 等 IDE
  • 基本的 Java I/O 串流概念

必要函式庫、版本與相依性

您需要 GroupDocs.Parser 函式庫(版本 25.5)。可透過 Maven 加入或直接下載。

Maven:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

直接下載:
亦可從 GroupDocs.Parser for Java releases 下載最新版本。

取得授權的步驟

從 GroupDocs 官方網站取得免費試用授權,或購買正式授權以供正式環境使用。

設定 GroupDocs.Parser(Java 版)

加入相依性後,匯入所需的類別:

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.TextReader;
import java.io.FileInputStream;
import java.io.InputStream;

如何使用 GroupDocs.Parser 解析 PDF 並提取文字

以下提供逐步示範,從 InputStream 載入 PDF 並印出其文字內容。

步驟 1:定義 Input Stream

建立指向 PDF 檔案的 InputStream。將 YOUR_DOCUMENT_DIRECTORY 替換為實際的資料夾路徑。

String filePath = "YOUR_DOCUMENT_DIRECTORY" + "/SamplePdf.pdf";
try (InputStream stream = new FileInputStream(filePath)) {

步驟 2:以串流初始化 Parser

InputStream 傳入 Parser 建構子,讓 GroupDocs.Parser 直接處理記憶體中的資料。

    try (Parser parser = new Parser(stream)) {

步驟 3:提取文字內容

呼叫 getText() 取得 TextReader。若格式不支援,會回傳 null,方便您做容錯處理。

        try (TextReader reader = parser.getText()) {
            String extractedText = reader == null ? "Text extraction isn't supported" : reader.readToEnd();
            System.out.println(extractedText);
        }
    }
}
  • 參數: 傳入 ParserInputStream
  • 回傳值: 用於讀取文件文字的 TextReader
  • 目的: getText() 抽象化特定格式的解析,直接提供純文字。

常見陷阱與除錯

  • 檔案路徑錯誤: 請確認路徑與檔名正確。
  • 不支援的格式: getText() 會對僅含影像的 PDF 回傳 null,請依範例處理此情況。
  • 記憶體洩漏: 請務必使用 try‑with‑resources(如範例所示)即時關閉串流與 Parser 物件。

實務案例

  1. 發票處理: 從電子郵件收到的 PDF 中抽取每筆項目文字。
  2. 資料遷移: 直接串流 PDF 進入新資料庫,以取代舊系統的檔案搬移。
  3. 法律審查: 快速掃描合約關鍵條款,無需手動開啟檔案。

大型 PDF 的效能建議

  • FileInputStream 包裹在 BufferedInputStream 中,以提升讀取速度。
  • 抽取完畢後立即關閉所有資源,釋放記憶體。
  • 定期更新 GroupDocs.Parser,享受效能優化與新功能。

如何在沒有檔案的情況下讀取 PDF(read pdf without file)— 替代做法

若 PDF 來源於 Web 服務,可將回應的位元組陣列包裝成 ByteArrayInputStream,再傳入相同的 Parser 建構子。程式碼保持不變,僅變更串流來源。

在 Java 中從 PDF 提取影像(extract images pdf java)

本教學雖以文字為主,但 GroupDocs.Parser 亦支援透過 parser.getImages() 抽取影像。只要將 getText() 區塊換成 getImages() 即可取得影像串流。

解析 PDF InputStream(parse pdf inputstream java)

上述模式——建立 InputStream、初始化 Parser、呼叫相應 API——涵蓋所有解析情境(文字、影像、元資料)。

相關資源

常見問答

Q1: 我可以使用 GroupDocs.Parser 從 Word 文件中提取文字嗎?
A1: 可以,GroupDocs.Parser 支援 DOCX、PPTX 等多種格式。完整支援清單請參閱 API Reference

Q2: 若文件格式不受支援,我該如何處理?
A2: getText() 會回傳 null,您可以依此實作備援邏輯。

Q3: 是否能使用 GroupDocs.Parser 抽取影像?
A3: 可以,使用 getImages() 方法即可取得支援文件中的影像串流。

Q4: 文件載入時常見問題該如何排除?
A4: 請確認檔案路徑、使用正確的 JDK 版本,並確保 PDF 未被密碼保護。更多協助請前往 GroupDocs Support 論壇。

Q5: 使用 GroupDocs.Parser 時,記憶體管理的最佳實踐是什麼?
A5: 如範例所示,務必使用 try‑with‑resources 自動關閉串流與 Parser 實例,避免記憶體洩漏。


最後更新: 2026-02-24
測試環境: GroupDocs.Parser 25.5 (Java)
作者: GroupDocs