将 Word 转换为带可搜索文本层的 PNG(Java)

在本综合指南中,您将学习如何使用 GroupDocs.Viewer for Java 将 Word 转换为 PNG,同时保留隐藏的可选择文本层。相同的技术同样适用于 PDF,提供高分辨率的图像预览且仍然完全可搜索——非常适合需要快速渲染且不牺牲可发现性的网页门户、CMS 系统和归档解决方案。

使用 GroupDocs.Viewer for Java 将文档渲染为带文本层的图像

使用 GroupDocs.Viewer for Java 将文档渲染为带文本层的图像

快速答案

  • 将 “convert Word to PNG” 是什么意思? 它为每页创建一个光栅 PNG,并嵌入一个不可见的文本覆盖层,使内容保持可搜索。
  • 为什么要添加文本层? 该覆盖层使浏览器和搜索引擎能够在不进行 OCR 的情况下索引文本,提升可访问性和 SEO。
  • 哪个库负责此功能? GroupDocs.Viewer for Java 提供对图像渲染和文本提取的内置支持。
  • 我需要许可证吗? 免费试用足以用于开发;生产部署需要付费许可证。
  • 我可以使用相同的代码处理 PDF 吗? 可以——只需将 Viewer 指向 PDF 并启用相同的文本覆盖选项。

什么是带文本层的将 Word 转换为 PNG?

带文本层的将 Word 转换为 PNG 将每个 DOCX 页面渲染为 PNG 图像,并嵌入一个不可见的文本覆盖层以实现可搜索性。此过程将 Word 文档转换为一组高分辨率图像,同时保持原始文本对屏幕阅读器和搜索爬虫可访问。结果看起来像静态图片,但您可以复制粘贴或搜索内容,因为文本存在于像素背后的隐藏层中。

为什么在此任务中使用 GroupDocs.Viewer?

GroupDocs.Viewer 提供像素完美的 PNG 输出 并且 自动添加可搜索的文本覆盖层,省去单独 OCR 的步骤。其渲染引擎以流式方式处理文档,即使是上百页的文件也无需将整个文件加载到内存中。库支持 70+ 输入和输出格式,包括 DOCX、PDF、PPTX、XLSX 以及常见图像类型,是多种文档流水线的一站式解决方案。

  • 高质量 PNG 输出,像素级还原原始布局。
  • 自动文本覆盖提取,免去自行实现 OCR 的工作。
  • 简洁 API——几行 Java 代码即可完成整个工作流。
  • 广泛的格式支持——同样方法适用于 PDF、PPTX 等多种格式。
  • 提升文档清晰度,得益于无损渲染引擎,保留矢量图形和字体。

前置条件

  • 已安装并配置 Java Development Kit (JDK) 8 或更高版本。
  • 使用 Maven 进行依赖管理。
  • 对 Java 文件处理和 Maven 项目结构有基本了解。

设置 GroupDocs.Viewer for Java

安装信息

将 GroupDocs.Viewer 添加到您的 Maven 项目中,需在 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>

获取许可证

通过从他们的下载页面下载 GroupDocs.Viewer 开始免费试用。用于生产环境时,需要购买许可证或从临时许可证页面获取临时密钥。

基本初始化和设置

Viewer 类是加载文档并根据指定视图选项进行渲染的核心组件。Maven 同步完成后,您可以创建一个 Viewer 实例——该对象将驱动渲染过程。

将 Word 转换为 PNG 的分步指南

步骤 1:定义输出目录

首先,告诉 Viewer 将生成的 PNG 文件存储在哪里。下面的代码会创建(或复用)名为 YOUR_OUTPUT_DIRECTORY 的文件夹。

Path outputDirectory = Paths.get("YOUR_OUTPUT_DIRECTORY");

小贴士: 如果希望自动创建文件夹,请使用 Files.createDirectories(outputDirectory);

步骤 2:配置视图选项

PngViewOptions 配置每页渲染为 PNG 的方式,并可启用文本提取。通过调用 setExtractText(true),您指示 GroupDocs.Viewer 在每张图像中嵌入不可见的文本层。

Path pageFilePathFormat = outputDirectory.resolve("page_{0}.png");
PngViewOptions viewOptions = new PngViewOptions(pageFilePathFormat);
viewOptions.setExtractText(true);  // Enable extracting text over the image

步骤 3:渲染文档

viewer.view(viewOptions) 调用打开源 DOCX 并生成 PNG 页面。try‑with‑resources 块确保 Viewer 实例被正确关闭,释放所有本机资源。

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
    viewer.view(viewOptions);  // Perform rendering operation
}

当过程完成后,Word 文档的每一页都会以高分辨率 PNG 形式出现,并带有不可见的文本层,准备好进行索引和搜索。

为什么这很重要

嵌入可搜索的文本层意味着您可以提供轻量级的图像预览 并且 保留全文搜索能力。这在以下场景尤为有价值:

  1. 网页门户 需要快速的缩略图预览而不牺牲 SEO。
  2. 内容管理系统 存储归档快照,但仍需文本索引。
  3. 文档归档 在存储成本受限的情况下仍保持高可发现性。

常见问题及解决方案

  • 文件未找到: 检查 SAMPLE_DOCX 的路径,必要时使用绝对路径。
  • 权限问题: 确保 Java 进程对 YOUR_OUTPUT_DIRECTORY 有写入权限。
  • 版本不匹配: 验证 pom.xml 中的版本与下载的库一致。
  • 缺少文本层: 确认已设置 viewOptions.setExtractText(true),且输出文件夹可写。

实际应用

  1. 网页门户: 展示用户可搜索的文档预览,无需下载原始文件。
  2. 内容管理系统: 为归档目的存储可搜索的图像快照。
  3. 文档归档: 保持轻量级图像版本的同时仍支持全文搜索。

性能考虑

  • 及时释放 Viewer 对象(如示例中使用 try‑with‑resources)。
  • 质量优先时使用 PNG;若带宽受限可改用 JPEG。
  • 对同一文档的重复请求进行渲染页面缓存。

常见问题

Q: 如何处理大型文档?
A: 逐页增量渲染,并在处理一批后释放每个 Viewer 实例,以保持低内存使用。

Q: 我可以使用相同的方法渲染 PDF 吗?
A: 可以,GroupDocs.Viewer 支持 PDF,使用相同的 setExtractText(true) 标志即可生成可搜索的 PDF 图像。

Q: 如果输出中看不到文本层怎么办?
A: 确认已设置 viewOptions.setExtractText(true),并且输出文件夹具有写入权限。

Q: 支持其他图像格式吗?
A: 除 PNG 外,您可以通过切换视图选项类使用 JpgViewOptionsBmpViewOptions

Q: 在哪里可以找到更详细的 API 文档?
A: 官方文档提供了完整的示例和配置细节。

资源


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

相关教程