Skip to content
DemoFAQ

OCR

概述

OCR(光学字符识别)是将打字、手写或印刷文本的图像转换为机器编码文本的过程。

OCR 通常用于从以下类型的文档中识别和提取文本:

  • 不可编辑的扫描 PDF 文件。
  • 文档照片。
  • 场景照片,如广告版面、招牌等。
  • 身份证、护照、车牌和其他官方牌照。
  • 发票、账单、收据和其他财务文档。

以下功能支持 OCR:

  • PDF 转 Word
  • PDF 转 Excel
  • PDF 转 PowerPoint (PPT)
  • PDF 转 HTML
  • PDF 转富文本格式 (RTF)
  • PDF 转文本 (TXT)
  • PDF 转 CSV
  • PDF 转可搜索 PDF
  • PDF 转 OFD
  • 提取 PDF 为 JSON
  • 提取 PDF 为 Markdown

OCR 语言支持

OcrLanguage 常量:

常量含义
OcrLanguage::AUTO自动检测语言。
OcrLanguage::ENGLISH英语(拉丁)。
OcrLanguage::CHINESE中文(简体)。
OcrLanguage::CHINESE_TRA中文(繁体)。
OcrLanguage::JAPANESE日语。
OcrLanguage::KOREAN韩语。
OcrLanguage::LATIN拉丁文字语言(德语、法语、西班牙语、葡萄牙语、意大利语、荷兰语、丹麦语、瑞典语等)。
OcrLanguage::DEVANAGARI天城文文字语言。
OcrLanguage::CYRILLIC西里尔文字语言。
OcrLanguage::ARABIC阿拉伯语。
OcrLanguage::TAMIL泰米尔语。
OcrLanguage::TELUGU泰卢固语。
OcrLanguage::KANNADA卡纳达语。
OcrLanguage::THAI泰语。
OcrLanguage::GREEK希腊语。
OcrLanguage::ESLAV东斯拉夫/扩展斯拉夫。

设置 OCR 语言

在当前主线 PHP SDK 中,OCR 语言通过 ConvertOption::$languages 为每个转换任务传入,而不是通过单独的全局接口。

php
use ComPDFKit\Conversion\OcrLanguage;

$option = new ConvertOption();
$option->enableOcr = true;
$option->languages = [OcrLanguage::ENGLISH];

Conversion::convert('Word', 'word.pdf', 'password', 'output.docx', $option);

OCR 选项

可根据实际需要选择不同的 OCR 选项。以下是当前支持的 OCR 选项。

  • OcrOption::INVALID_CHARACTER:通过 OCR 识别 PDF 文档中的非法/乱码字符,正常字符不进行 OCR 处理。
  • OcrOption::SCAN_PAGE:通过 OCR 识别 PDF 文档中的扫描页面,可编辑页面不进行 OCR 处理。
  • OcrOption::INVALID_CHARACTER_AND_SCAN_PAGE:通过 OCR 同时识别 PDF 文档中的非法字符和扫描页面。
  • OcrOption::ALL:通过 OCR 识别 PDF 文档中的所有页面和字符。

保留页面背景

当开启 OCR 时,可选择是否开启 containPageBackgroundImage 选项。如果开启该选项,将保留 PDF 的原始页面背景图。如果关闭该选项,将保留版面分析期间检测到的图片结果。

注意事项

  • OCR 结果的质量取决于输入图像的质量。如果输入图像分辨率较低,OCR 结果质量会受影响。一个经验法则是:字符形状中的像素越多越好。如果字符边界框小于 20x20 像素,OCR 质量会呈指数级下降。理想图像是分辨率约为 300 DPI 的灰度图像。
  • 进行 OCR 时,请确保 OCR 语言设置与 PDF 文档中的语言一致,以获得最佳的 OCR 转换质量。
  • OCR 功能目前不支持低于 Windows 10 的操作系统。

将图片转换为其他文档格式

OCR 功能还支持将输入图片转换为 Word、Excel、PPT、HTML、CSV、RTF、TXT、JSON 等格式。本示例演示如何使用 ComPDF OCR 功能将图片文件转换为 DOCX 文件。

php
$option = new ConvertOption();
// 开启 OCR 选项。
$option->enableOcr = true;
// 为该任务设置 OCR 语言。
$option->languages = [OcrLanguage::ENGLISH];
// 支持 jpg、jpeg、png、bmp、tiff 和 webp 格式。
Conversion::convert('Word', 'input.png', '', 'output.docx', $option);

示例

本示例演示如何使用 ComPDF OCR 功能将 PDF 转换为 DOCX 文件。

php
$option = new ConvertOption();
$option->enableOcr = true;
$option->languages = [OcrLanguage::ENGLISH];

Conversion::convert('Word', 'word.pdf', 'password', 'output.docx', $option);