从 PDF 文件中提取文本是构建文档处理流水线时的常见需求,尤其用于搜索索引或数据分析。 GroupDocs.Parser Cloud SDK for Node.JS 提供了一个强大的库,使您能够在 Node.JS 中以编程方式提取 PDF 文本,而无需处理底层解析逻辑。在本指南中,您将学习如何使用完整的代码示例、cURL REST 替代方案以及必要的设置步骤,在 Node.JS 中提取 PDF 文本,涵盖普通 PDF 和加密 PDF。

在 Node.JS 中提取 PDF 文本 - 完整代码示例

以下示例演示如何使用 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

这些命令执行相同的 从 PDF 中提取文本(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

Prerequisites: Node.js 14 或更高版本,活跃的 GroupDocs Cloud 账户,以及客户端凭据(客户端 ID 和客户端密钥)。从官方下载页面下载最新包。安装后,创建一个 config.json(或使用环境变量)来安全地存储您的凭据。

结论

在 Node.JS 中提取 PDF 文本变得简单,只需使用 GroupDocs.Parser Cloud SDK for Node.JS。该 SDK 抽象了 PDF 解析的复杂性,支持对扫描的 PDF 进行 OCR,并且开箱即支持加密文档。请记得为生产环境获取有效许可证;您可以购买订阅或请求 临时许可证 以评估该库。通过代码示例、cURL 替代方案和安装步骤的说明,您即可将 PDF 文本提取集成到文档工作流中,释放强大的搜索和分析功能。

FAQs

  • 如何在 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 的语言无关方法。

Read More