使用 GroupDocs.Viewer for Java 提取 PDF 文本

从 PDF 中提取文本是许多数据驱动应用的核心需求。在本教程中,我们将通过 GroupDocs Viewer Java 库,向您展示如何高效地 提取 PDF 内容。无论您需要对文档建立索引、进行分析,还是迁移旧档案,下面的步骤都提供了完整的、可用于生产环境的解决方案。

使用 GroupDocs.Viewer for Java 从 PDF 提取文本

快速答案

  • 哪个库最适合 PDF 文本提取? GroupDocs.Viewer Java 提供了强大的 pdf 文本提取 api。
  • 我可以从多页 PDF 中提取文本吗? 可以——查看器会自动遍历每一页和每一行。
  • 生产环境需要许可证吗? 需要商业许可证;可使用免费试用版进行评估。
  • 支持哪个 Java 版本? JDK 1.8+(最新的 LTS 版本同样适用)。
  • Maven 是唯一的依赖添加方式吗? 推荐使用 Maven,但也可以使用 Gradle 或手动引入 JAR。

什么是 PDF 文本提取以及为何使用 GroupDocs Viewer?

pdf text extraction api 读取 PDF 的文本层,而不渲染可视内容。这种方式比基于光栅的 OCR 快得多,并且保留原始文档结构。GroupDocs Viewer Java 通过开箱即用地处理复杂布局、加密文件和多页文档,提供了额外价值。

前置条件

  • Java Development Kit (JDK) 1.8+ 已安装。
  • Maven 用于依赖管理(如果喜欢,也可以使用 Gradle)。
  • 获取 GroupDocs Viewer for Java 许可证(免费试用或已购买)。
  • 基本的 Java 知识——您将编写少量 try‑with‑resources 代码块。

设置 GroupDocs.Viewer for Java

将 GroupDocs 仓库和依赖添加到您的 pom.xml 中:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

获取许可证

  • 免费试用 – 适合探索 pdf text extraction api。
  • 临时许可证 – 可进行延长测试,无需信用卡。
  • 正式购买 – 商业部署所必需。

实现指南

下面是使用 GroupDocs Viewer Java 提取 PDF 文本的简明分步演练。

1. 初始化 Viewer 对象

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_PDF")) {
    // Initialization complete, proceed to next steps.
}

Viewer 实例指向您要处理的 PDF。使用 try‑with‑resources 代码块可确保本机资源自动释放。

2. 为文本提取配置 ViewInfoOptions

ViewInfoOptions viewInfoOptions = ViewInfoOptions.forHtmlView();
viewInfoOptions.setExtractText(true);

设置 setExtractText(true) 告诉 pdf text extraction api 在视图信息中包含原始文本。

3. 检索文档信息

PdfViewInfo viewInfo = (PdfViewInfo) viewer.getViewInfo(viewInfoOptions);

PdfViewInfo 让您访问每一页、每一行及其文本值。

4. 遍历页面和行(提取多页 PDF 文本)

for (Page page : viewInfo.getPages()) {
    for (Line line : page.getLines()) {
        System.out.println(line.getValue());
    }
}

此循环打印每一行文本,自动处理 extract multi page pdf 场景。您可以将 System.out.println 替换为写入文件、数据库或搜索索引的代码。

故障排除技巧

  • 再次确认文件路径;路径错误会抛出 FileNotFoundException
  • 确保已调用 setExtractText(true);否则仅返回可视数据。
  • 对于加密的 PDF,请通过 Viewer 构造函数重载传入密码。

实际应用

GroupDocs Viewer 的 extract pdf text java 能力解锁了许多实际用例:

  1. 数据迁移 – 将旧的 PDF 档案迁移到可搜索的数据库中。
  2. 内容分析 – 将提取的文本输入 NLP 流程,用于情感或关键词提取。
  3. 文档管理系统 (DMS) – 自动为文档建立索引,以实现快速检索。

性能考虑因素

在处理大文件或批处理任务时:

  • 内存管理 – 在 try 块内处理页面,以便垃圾回收器及时回收内存。
  • 流式处理 – 对于超大 PDF,考虑一次处理一页,而不是一次性加载整个文档。
  • 线程化 – 在多个文件之间并行提取,但每个线程保持单独的 Viewer 实例。

常见问题及解决方案

问题解决方案
OutOfMemoryError 在大 PDF 上出现增加 JVM 堆大小(-Xmx2g),并顺序处理页面。
扫描的 PDF 未返回文本使用 OCR 插件或专用 OCR 库;GroupDocs Viewer 仅提取嵌入的文本。
生产环境许可证错误确认许可证文件放置正确且试用期未过期。

常见问答

问:我可以在生产服务器上使用 GroupDocs.Viewer 吗?
答:可以,但必须拥有有效的商业许可证。免费试用仅限于开发和测试。

问:文本提取会影响 PDF 元数据吗?
答:提取仅读取内容;除非您显式修改,否则元数据保持不变。

问:除了 PDF,GroupDocs Viewer 还支持哪些文件格式?
答:它支持 Word、Excel、PowerPoint、图像等多种格式,是一个多功能的文档查看器。

问:有没有办法从受密码保护的 PDF 中提取文本?
答:当然可以——在构造 Viewer 实例时传入密码。

问:如何提升对数千个 PDF 批量处理的性能?
答:使用线程池,为每个文件创建独立的 Viewer 实例,并密切监控内存使用情况。

资源


最后更新: 2026-05-06
测试环境: GroupDocs.Viewer Java 25.2
作者: GroupDocs