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