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

您是否希望以编程方式 extract text from docx 文件?无论您是需要提取页码、捕获每一行文本,还是构建可搜索的索引,手动完成这些工作既费时又容易出错。GroupDocs.Viewer for Java 通过提供高性能 API,读取文档结构并返回干净的文本数据,使过程变得简单直观。

在本教程中,您将学习如何设置 GroupDocs.Viewer、提取页面元数据以及从 DOCX 文件中提取每一行文本。完成后,您将拥有一个可直接使用的解决方案,可集成到任何基于 Java 的后端。

Document Analysis with GroupDocs.Viewer for Java

快速答案

  • What does “extract text from docx” mean? 它指的是以编程方式读取 DOCX 文件并逐行检索其纯文本内容。
  • Which library handles this? GroupDocs.Viewer for Java 提供 Viewer 类及相关 API。
  • Do I need a license? 免费试用可用于评估;生产环境需要付费许可证。
  • What Java version is required? 任意兼容 Maven 的 JDK 8 +。
  • Can I process large batches? 是的——通过复用 Viewer 实例并在流中处理页面。

什么是 “extract text from docx”?

从 DOCX 文件中提取文本意味着读取文档内部的 XML 结构并返回不带格式的可读文本。这对于索引、搜索或将内容输送到下游分析管道非常有用。

为什么使用 GroupDocs.Viewer for Java?

  • Accuracy: 处理复杂布局、表格和多列文档。
  • Speed: 优化的渲染引擎,即使在大文件上也能快速运行。
  • Cross‑format support: 同一 API 支持 PDF、PPTX、XLSX 等多种格式,便于复用代码。
  • No external dependencies: 纯 Java 实现,无需本地库。

前置条件

  • Java Development Kit (JDK) 8 或更高版本。
  • 已安装 Maven 用于依赖管理。
  • 要分析的 DOCX 文件(放置在已知文件夹中)。

设置 GroupDocs.Viewer for Java

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

<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>

获取许可证的步骤

基本初始化

  1. 导入所需的类。
  2. 创建指向您的 DOCX 文件的 Viewer 实例。
  3. 使用 ViewInfoOptions.forPngView(true) 请求页面级信息(元数据和文本行)。

如何提取 docx 文本 – 分步指南

1. 提取页面元数据

页面元数据(如页码)在构建导航结构或引用特定章节时至关重要。

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
    ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(true);
    ViewInfo viewInfo = viewer.getViewInfo(viewInfoOptions);
    for (Page page : viewInfo.getPages()) {
        int pageNumber = page.getNumber();
        System.out.println("Page: " + pageNumber); // Outputs the page number
    }
}
  • ViewInfoOptions.forPngView(true): 指示 API 在准备 PNG 渲染时收集页面信息。
  • viewInfo.getPages(): 返回一个集合,每个 Page 对象包含其页码及其他元数据。

Pro tip: 在 try‑with‑resources 块中释放 Viewer,以自动释放本机资源。

2. 从页面提取文本行

现在您已经能够识别每一页,让我们提取实际的文本行。

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
    ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(true);
    ViewInfo viewInfo = viewer.getViewInfo(viewInfoOptions);
    for (Page page : viewInfo.getPages()) {
        System.out.println("Page: " + page.getNumber());
        System.out.println("Text lines:");
        
        for (Line line : page.getLines()) {
            String lineText = line.getValue();
            System.out.print(lineText + "\t");
        }
    }
}
  • page.getLines(): 返回一个 Line 对象列表,每个对象表示页面上出现的单行文本。
  • 内部循环打印每一行,并使用制表符分隔以提高可读性。

常见问题与解决方案

症状可能原因解决方案
null 页码文档未正确加载检查文件路径并确保文件存在。
未返回文本行不受支持的文件格式检查 DOCX 版本是否受支持;如有必要,请升级 GroupDocs。
OutOfMemoryError 在大文件上Viewer 在内存中持有过多页面将页面分成更小的批次处理或复用相同的 Viewer 实例。

实际应用

  1. Search Engine Indexing: 将页码与提取的文本一起存储,以实现精确的片段检索。
  2. Legal Document Review: 提取每一行用于自动条款检测或编辑工作流。
  3. Content Migration: 将旧版 DOCX 内容迁移到 CMS,同时保留结构。
  4. Reporting Dashboards: 通过提取标题和要点来概括关键章节。

性能考虑

  • Dispose Properly: 始终关闭 Viewer(使用 try‑with‑resources)。
  • Batch Processing: 处理大量文档时,在每个线程中复用单个 Viewer 实例以降低开销。
  • Render Options: 如果只需要文本,可通过使用 ViewInfoOptions.forTextView()(此处未示例)跳过 PNG 渲染,从而缩短处理时间。

结论

您现在已经了解如何使用 GroupDocs.Viewer for Java extract text from docx 文件,获取页码并遍历每一行文本。这些构建块使您能够创建快速、可靠且易于维护的强大文档处理流水线。

后续步骤

  • 使用相同的 API 试验其他格式(PDF、PPTX)。
  • 将提取的文本与全文搜索引擎(如 Elasticsearch)结合。
  • 如果还需要可视化预览,探索渲染图像的样式选项。

常见问题

Q: GroupDocs.Viewer 支持哪些文件格式?
A: 它支持广泛的格式,包括 DOCX、PDF、XLSX、PPTX 等。

Q: 提取行时可以自定义输出格式吗?
A: 可以,通过配置 ViewInfoOptions(例如 forTextView() 用于纯文本)。

Q: 可处理的页面数量是否有限制?
A: 没有硬性限制,但非常大的文档可能需要批处理以保持内存效率。

Q: 如何在 GroupDocs.Viewer 中处理异常?
A: 将 Viewer 代码放在 try‑catch 块中,并根据需要处理 ViewerException 或通用的 IOException

Q: 该工具能与其他 Java 框架集成吗?
A: 当然!它可与 Spring、Hibernate、Jakarta EE 等无缝配合。

资源


最后更新: 2026-04-13
测试环境: GroupDocs.Viewer for Java 25.2
作者: GroupDocs