使用 GroupDocs for Java 和 Aspose 的文档管理 OCR
在本指南中,您将发现 如何使用 GroupDocs 为您的 Java 应用程序添加 OCR 驱动的搜索,这是任何现代 文档管理 OCR 解决方案的核心功能。通过将 GroupDocs.Search 与 Aspose.OCR 结合,您可以将基于图像的内容转换为可搜索的文本,使文档管理系统对终端用户更加有用。我们将逐步演示设置、索引、搜索以及自定义 OCR 集成,所有示例均可直接复制到您的项目中。
快速答案
- 哪个库提供 OCR 索引? GroupDocs.Search 与 Aspose.OCR 配合使用。
- 需要哪个 Java 版本? JDK 8 或更高。
- 我需要许可证吗? 提供免费试用;生产环境需要付费许可证。
- 我可以索引独立的和嵌入的图像吗? 可以,在
IndexingOptions中启用两种选项。 - 是否支持多线程? 支持,您可以对大型数据集进行并行索引。
什么是文档管理 OCR?
文档管理 OCR 从图像(包括扫描的 PDF)中提取文本并将其存储在可搜索的索引中。GroupDocs.Search 负责索引和查询执行,而 Aspose.OCR 执行实际的字符识别,为您提供完整的 文档管理 OCR 流程。
为什么在 Java 中使用 GroupDocs 进行 OCR 索引?
- 高精度,归功于 Aspose 的先进 OCR 引擎。
- 无缝的 Java 集成,通过 Maven 或直接 JAR。
- 灵活的配置,支持独立或嵌入的图像。
- 可扩展的性能,支持多线程和内存优化。
- 企业级许可 选项,适用于生产部署。
前提条件
- GroupDocs.Search ≥ 25.4
- Aspose.OCR(最新版本)
- JDK 8+ 和 IDE(IntelliJ、Eclipse、NetBeans)
- 基础 Java 知识;Maven 有帮助但非必需
为 Java 设置 GroupDocs.Search
使用 Maven
将仓库和依赖添加到您的 pom.xml 中:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
直接下载
或者,从 GroupDocs releases 下载最新版本的 GroupDocs.Search for Java。
获取许可证
- 免费试用 – 免费探索所有功能。
- 临时许可证 – 延长测试期。
- 购买 – 生产部署需要。
基本初始化和设置
创建索引文件夹并初始化 Index 对象:
import com.groupdocs.search.Index;
// Specify the directory where the index will be stored.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/OcrSupport";
// Create an instance of Index class at the specified location.
Index index = new Index(indexFolder);
如何使用 GroupDocs 进行 OCR 索引
创建索引
首先,设置用于保存索引文件的文件夹:
String indexFolder = "YOUR_OUTPUT_DIRECTORY/OcrSupport";
Index index = new Index(indexFolder);
设置 OCR 索引选项
为独立和嵌入的图像启用 OCR,并接入自定义 OCR 连接器:
import com.groupdocs.search.options.IndexingOptions;
IndexingOptions options = new IndexingOptions();
options.getOcrIndexingOptions().setEnabledForSeparateImages(true);
options.getOcrIndexingOptions().setEnabledForEmbeddedImages(true);
// Set a custom OCR connector.
options.getOcrIndexingOptions().setOcrConnector(new OcrConnector());
索引文档
将源文档(PDF、Word 文件、图像等)添加到索引中:
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder, options);
在索引中搜索
对已索引的内容运行搜索查询:
import com.groupdocs.search.results.SearchResult;
String query = "water";
SearchResult result = index.search(query);
实现 OCR 连接器
使用 Aspose.OCR 识别图像中的文本。按照如下方式实现 IOcrConnector 接口:
import com.groupdocs.search.options.IOcrConnector;
import com.groupdocs.search.options.OcrContext;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import com.aspose.ocr.AsposeOCR;
public class OcrConnector implements IOcrConnector {
@Override
public final String recognize(OcrContext context) {
if (null == context.getImageLocation()) {
throw new RuntimeException("The image type is not supported: " + context.getImageLocation());
}
BufferedImage image = ImageIO.read(context.getImageLocation().toFile());
AsposeOCR api = new AsposeOCR();
String text = api.RecognizePage(image);
return text;
}
}
实际应用
- 文档管理系统 – 快速检索包含扫描图像的文档。
- 档案检索 – 在海量档案中定位历史记录。
- 法律文档分析 – 搜索包含扫描签名或图表的合同和证据。
- 医疗记录搜索 – 索引患者表格、实验室结果和 X 光注释。
性能考虑因素
- 索引大小 – 排除不必要的元数据以保持索引精简。
- 多线程 – 并行处理大批量以加快索引速度。
- 内存管理 – 处理高分辨率图像时监控 JVM 堆。
常见问题及解决方案
- 许可证错误 – 确保正确的许可证文件放置在应用程序的工作目录中。
- 缺少图像 – 验证图像路径可访问且为支持的格式(PNG、JPEG、BMP)。
- 内存不足 – 增加 JVM 堆 (
-Xmx) 或将文档分成更小批次处理。
常见问答
Q: 如何解决 GroupDocs.Search 的许可证问题?
A: 从 GroupDocs website 获取临时许可证,以解锁全部功能。
Q: 处理大文档索引的最佳方法是什么?
A: 利用多线程和批处理来提升性能并降低内存压力。
Q: 我可以在 GroupDocs.Search 中进一步自定义 OCR 设置吗?
A: 可以,IndexingOptions 允许您微调 OCR 行为,例如语言选择和图像预处理。
Q: 使用 GroupDocs.Search 时有哪些常见的故障排除技巧?
A: 仔细检查目录路径,确认所有依赖项已存在,并查看日志输出以发现缺失的文件。
Q: 如何将 Aspose.OCR 集成到现有的 Java 应用程序中?
A: 按照上面的示例实现 IOcrConnector 接口,确保正确处理图像输入。
资源
最后更新: 2026-03-20
测试环境: GroupDocs.Search 25.4,Aspose.OCR 最新发布
作者: GroupDocs