從 PDF 檔案中提取文字是建立文件處理管道時的常見需求,尤其是用於搜尋索引或資料分析。GroupDocs.Parser Cloud SDK for Node.JS 提供了強大的函式庫,讓您能在 Node.JS 中以程式方式從 PDF 提取文字,無需處理低階的解析邏輯。在本指南中,您將學習如何使用完整的程式碼範例、cURL REST 替代方案以及必要的設定步驟,在 Node.JS 中提取 PDF 文字,涵蓋普通 PDF 與加密 PDF。

從 PDF 中提取文字於 Node.JS - 完整程式碼範例

以下示例演示如何使用 GroupDocs.Parser Cloud SDK 在 Node.JS 中從 PDF 提取文字。它包括初始化、請求構建、執行以及將結果保存到本地文件。

const GroupDocsParserCloud = require("@groupdocs/parser-cloud");
const fs = require("fs");

(async () => {
    // Initialize configuration with your credentials
    const config = new GroupDocsParserCloud.Configuration({
        clientId: "YOUR_CLIENT_ID",
        clientSecret: "YOUR_CLIENT_SECRET"
    });

// Create Parser API instance
    const parserApi = new GroupDocsParserCloud.ParserApi(config);

// Build request to extract text from a PDF file stored in cloud storage
    const request = new GroupDocsParserCloud.ExtractTextRequest({
        fileInfo: new GroupDocsParserCloud.FileInfo({
            filePath: "input.pdf" // path to the PDF in GroupDocs cloud storage
        })
    });

try {
        // Execute the request
        const result = await parserApi.extractText(request);

// result.text contains the extracted plain text
        console.log("Extracted Text:\n", result.text);

// Save extracted text to a local file
        fs.writeFileSync("extracted.txt", result.text, "utf8");
        console.log("Text saved to extracted.txt");
    } catch (error) {
        console.error("Error extracting text:", error);
    }
})();

注意: 此程式碼範例展示了核心功能。在將其用於您的專案之前,請確保更新所有檔案路徑和設定值,以符合實際環境,驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。如遇任何問題,請參閱官方文件或聯繫支援團隊尋求協助。

使用 cURL 和 REST API 取得 PDF 文字

如果您更喜歡語言無關的方法,您可以使用調用 GroupDocs.Parser Cloud REST API 的 cURL 命令來實現相同的結果。以下步驟展示了如何驗證、上傳 PDF、提取其文本以及下載結果。

# 1. Get an access token
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
# Response contains "access_token"

# 2. Upload the PDF to cloud storage
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/pdf" \
     --data-binary @input.pdf

# 3. Extract text from the uploaded PDF
curl -X POST "https://api.groupdocs.cloud/v2.0/parser/extractText" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"fileInfo":{"filePath":"input.pdf"}}' \
     -o result.json

# 4. Save the extracted text locally
jq -r '.text' result.json > extracted.txt

這些指令執行相同的 extract text from PDF in Node.JS 操作,但透過雲端 API,使其易於整合到任何平台。欲了解更多細節,請參閱 官方 API 參考。

分解在 Node.JS 中從 PDF 提取文字

了解程式碼的每個部分有助於您將其適應更複雜的情境,例如處理掃描的或加密的 PDF。

  1. 配置初始化 -
const config = new GroupDocsParserCloud.Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

此程式碼會建立一個保存您驗證憑證的配置物件。該類別在 API 參考 中有文件說明。

  1. Parser API 實例 -
const parserApi = new GroupDocsParserCloud.ParserApi(config);

ParserApi 類別提供所有解析操作的方法,包括 extractText。

  1. 建立 ExtractTextRequest -
const request = new GroupDocsParserCloud.ExtractTextRequest({
    fileInfo: new GroupDocsParserCloud.FileInfo({
        filePath: "input.pdf"
    })
});

ExtractTextRequest 告訴服務要處理哪個檔案。您也可以在此為掃描的 PDF 設定 OCR 選項。

  1. 執行請求 -
const result = await parserApi.extractText(request);

extractText 方法將請求發送到雲端,並返回包含純文字的回應物件。

  1. 處理結果 -
console.log("Extracted Text:\n", result.text);
fs.writeFileSync("extracted.txt", result.text, "utf8");

result.text 屬性保存提取的內容,您可以將其記錄、存儲或進一步處理。

安裝與設定 GroupDocs.Parser Cloud SDK for Node.JS

在執行程式碼之前,請先安裝 SDK 並設定您的環境。

npm install groupdocs-parser-cloud

先決條件: Node.js 14 或更高版本,活躍的 GroupDocs Cloud 帳戶,以及客戶端憑證(客戶端 ID 和客戶端密鑰)。從 官方下載頁面 下載最新套件。安裝完成後,建立一個 config.json(或使用環境變數)以安全地儲存您的憑證。

結論

在 Node.JS 中從 PDF 提取文字變得簡單,只需使用 GroupDocs.Parser Cloud SDK for Node.JS。該 SDK 抽象化了 PDF 解析的複雜性,支援掃描 PDF 的 OCR,並且開箱即用地處理加密文件。請記得為生產環境取得有效授權;您可以購買訂閱或申請 臨時授權 以評估此函式庫。隨著代碼範例、cURL 替代方案以及安裝步驟的說明,您已準備好將 PDF 文字提取整合到文件工作流程中,並釋放強大的搜尋與分析功能。

常見問題

  • 如何在 Node.JS 中使用 GroupDocs.Parser 從 PDF 提取文字?
    使用如完整程式碼範例所示的 ParserApi 的 extractText 方法。SDK 會自動返回純文字,您也可以為掃描的 PDF 啟用 OCR。

  • 我可以在 Node.JS 中從掃描的 PDF 提取文字嗎?
    可以。請在 ExtractTextRequest 中設定 OCR 選項,以讓服務辨識基於影像的頁面上的文字。

  • 如果我的 PDF 受密碼保護怎麼辦?
    在 FileInfo 物件中包含密碼 (password: "yourPassword")。SDK 會在提取文字之前解密檔案。

  • 是否有辦法在不編寫 Node.JS 代碼的情況下調用服務?
    完全可以。 “Retrieve PDF Text Using cURL and the REST API” 章節中的 cURL 命令展示了通過 REST API 的語言無關方法。

閱讀更多