Skip to content

光学字符识别 (OCR)

光学字符识别 (OCR) 能够将打印的文本图像翻译成机器可读的文本。OCR 普遍应用于将纸质文档扫描并创建成电子文档,也可用于现有的电子文档 (如 PDF 文档)。

从 9.0 版本开始,Linux x64 平台支持 OCR 功能,并且 OCR 引擎已升级,请联系 Foxit 支持团队或销售团队获取最新的引擎文件包。

本节将介绍如何使用 Foxit PDF SDK for Windows (Java) 设置 OCR 功能模块的使用环境。

系统需求

平台: Windows, Linux (x64)

开发语言: C, C++, Java, Python, C#

License key: license key 中包含 'OCR' 模块的权限

SDK 版本: Foxit PDF SDK for Windows (C++, Java, C#) 6.4 或更高版本; Foxit PDF SDK (C) 7.4 或更高版本; Foxit PDF SDK for Windows (Python) 8.3 或更高版本; Foxit PDF SDK for Linux x64 (C++, Java, C#, Python) 9.0 或更高版本

OCR 模块的试用限制

对于试用版本,您需要注意如下的三条限制要求:

  1. 允许从第一次初始化 OCREngine 开始,连续试用 30 个自然日。
  2. 允许从第一次初始化 OCREngine 开始,对累计不超过 5000 页的 PDF 页面可以使用 OCR。
  3. PDF 页面会生成试用水印。此限制用于所有 SDK 模块。

OCR 资源文件

请联系 Foxit 支持团队或者销售团队以获取 OCR 资源文件包。

Windows:

下载 Windows 平台的引擎包后,将其解压到所需的目录 (比如,解压到一个名为 "ocr_addon"的目录),您可以看到 OCR 的资源文件如下:

  • debugging_files: 用于调试 OCR 工程的资源文件。这些文件不能随应用程序发布。
  • language_resource_CJK: CJK 语言资源文件,包括 Chinese-Simplified, Chinese-Traditional, Japanese, 和 Korean。
  • language_resources_noCJK: 除去 CJK 以外的语言资源文件,包括 Basque, Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English , Estonian, Faeroese, Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Italian, Latvian(Lettish), Lithuanian, Macedonian, Maltese, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian。
  • win32_lib: Win32 的库资源文件。
  • win64_lib: Win64 的库资源文件。
  • readme.txt: 介绍该目录下各个文件夹的作用,以及如何使用这些资源文件构建一个 OCR 的资源目录。

Linux x64:

下载 Linux 平台的引擎包后,将其解压到所需的目录 (比如,解压到一个名为 "ocr_addon_linux" 的目录),您可以看到 OCR 的资源文件如下:

  • Data: 以下语言的相关数据和资源文件: Chinese-Simplified, Chinese-Traditional, Japanese, Korean, Basque, Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English, Estonian, Faeroese, Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Icelandic, Italian, Latvian (Lettish), Lithuanian, Macedonian, Maltese, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian.
  • Bin: Linux x64 的库文件。

如何运行 OCR 示例

Foxit PDF SDK for Java API (Windows 和 Linux x64) 提供了一个 OCR demo 用来展示如何使用 Foxit PDF SDK 对 PDF 页面或者 PDF 文档进行 OCR,该 demo 位于 \examples\simple_demo\ocr 文件夹下。

构建一个 OCR 资源目录

在运行 OCR demo 之前,您需要首先构建一个 OCR 资源目录,然后将该目录的路径传给 OCREngine.initialize 接口用来初始化 OCR 引擎。

Windows:

构建一个 Windows 平台的 OCR 资源目录,请按照如下的步骤:

  1. 新建一个文件夹作为 OCR 的资源目录。比如,"D:/ocr_resources"。

  2. 根据要编译的平台架构,选择相应的库资源。

    • 如果使用 win32,则将 "ocr_addon/win32_lib" 文件夹下的所有文件拷贝到"D:/ocr_resources"。
    • 如果使用 win64,则将 "ocr_addon/win64_lib" 文件夹下的所有文件拷贝到"D:/ocr_resources"。
  3. 选择需要使用的语言资源。

    • 如果只需要使用 CIJ 语言 (Chinese-Simplified, Chinese-Traditional, Japanese, 和 Korean),则将 "ocr_addon/language_resource_CJK" 文件夹下的所有文件拷贝到 "D:/ocr_resources"。
    • 如果只需要使用除 CIJ 以外所支持的语言,则将 "ocr_addon/language_resources_noCJK" 文件下的所有文件拷贝到 "D:/ocr_resources"。
    • 如果需要使用所有支持的语言,则将 "ocr_addon/language_resource_CJK" 和 "ocr_addon/language_resources_noCJK" 文件夹下所有的文件拷贝到"D:/ocr_resources"。
  4. (可选) 如果需要调试 demo,请根据平台架构,选择相应的调试资源文件。

    • 如果使用 win32,则将 "ocr_addon/debugging_files/win32" 文件夹下的文件拷贝到"D:/ocr_resources"。
    • 如果使用 win64,则将 "ocr_addon/debugging_files/win64" 文件夹下的文件拷贝到"D:/ocr_resources"。

备注:"ocr_addon/debugging_files" 文件夹下的文件只用于调试,请不要随产品发布。

Linux x64:

构建一个 Linux 平台的 OCR 资源目录,请按照如下的步骤:

  1. 新建一个文件夹作为 OCR 的资源目录。比如,"/root/Desktop/ocr_resources"。

  2. 将 "ocr_addon_linux" 目录下的 "Data" 和 "Bin"文件夹 拷贝到"/root/Desktop/ocr_resources"。

    那么,OCR 资源目录的路径则设置为 "/root/Desktop/ocr_resources/Bin"。

备注:加载资源文件之前,需要设置环境变量,请执行:export LD\_LIBRARY\_PATH=/root/Desktop/ocr\_resources/Bin.

配置 demo

构建 OCR 资源目录后,在 \examples\simple_demo\ocr\ocr.java 文件中配置 demo。以下将以 Windows 平台为例,在 "ocr.cpp" 文件中配置 demo。对于 Linux x64 平台,其配置操作与 Windows 相似。

指定 OCR 资源目录

如下所示,添加 OCR 资源目录,用以初始化 OCR 引擎。

设置语言

设置需要被 OCR 引擎识别的语言。使用 OCREngine.setLanguages 接口设置语言,默认是英语。

(可选) 设置 OCREngine 日志文件

如果您需要打印 OCR 引擎的整个日志记录,请取消注释 OCREngine.setLogFile 函数,如下所示:

运行 demo

成功运行 demo 后,控制台将默认打印以下内容:

该 demo 将以四种不同的方式对默认的文档 \examples\simple_demo\input\_files\ocr\AboutFoxit\_ocr.pdf 进行 OCR,并在输出文件夹 \examples\simple_demo\output\_files\ocr 下输出四个不同的 PDF 文档:

  • OCR Editable PDF - ocr_doc_editable.pdf
  • OCR Searchable PDF - ocr_doc_searchable.pdf
  • OCR Editable PDF Page - ocr_page_editable.pdf
  • OCR Searchable PDF Page - ocr_page_searchable.pdf