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
ComPDF Conversion SDK 的 OCR 语言支持:
| 文字/备注 | 语言(本地名称) | 语言(英文名称) |
|---|---|---|
| Latn; American | English | English |
| Latn; Canadian | Français canadien | French |
| Hans/Hant | 中文简体 | Chinese (Simplified) |
| Hans/Hant | 中文繁体 | Chinese (Traditional) |
| Jpan | 日本語 | Japanese |
| Kore | 한국어 | Korean |
| Latn | Deutsch | German |
| Latn | Српски (латиница) | Serbian (latin) |
| Latn | Occitan, lenga d'òc, provençal | Occitan |
| Latn | Dansk | Danish |
| Latn | Italiano | Italian |
| Latn; European | Español | Spanish |
| Latn; European | Português (Portugal) | Portuguese |
| Latn | Te reo Māori | Maori |
| Latn | Bahasa Melayu | Malay |
| Latn | Malti | Maltese |
| Latn | Nederlands | Dutch |
| Latn; Bokmål | Norsk | Norwegian |
| Latn | Polski | Polish |
| Latn | Română | Romanian |
| Latn | Slovenčina | Slovak |
| Latn | Slovenščina | Slovenian |
| Latn | shqip | Albanian |
| Latn | Svenska | Swedish |
| Latn | Swahili | Swahili |
| Latn | Wikang Tagalog | Tagalog |
| Latn | Türkçe | Turkish |
| Latn | oʻzbekcha | Uzbek |
| Latn | Tiếng Việt | Vietnamese |
| Latn | Afrikaans | Afrikaans |
| Latn | Azərbaycan | Azerbaijani |
| Latn | Bosanski | Bosnian |
| Latn | Čeština | Czech |
| Latn | Cymraeg | Welsh |
| Latn | Eesti keel | Estonian |
| Latn | Gaeilge | Irish |
| Latn | Hrvatski | Croatian |
| Latn | Magyar | Hungarian |
| Latn | Bahasa Indonesia | Indonesian |
| Latn | Íslenska | Icelandic |
| Latn | Kurdî | Kurdish |
| Latn | Lietuvių | Lithuanian |
| Latn | Latviešu | Latvian |
设置 OCR 语言
在当前主线版本中,OCR 语言应通过每个转换任务的 options.languages 传递,而不是通过单独的全局接口。
objective-c
[LibraryManager setDocumentAIModel:@"path/documentai_v4.model"];
WordOptions *options = [[WordOptions alloc] init];
options.enableOCR = YES;
options.ocrOption = OCROptionInvalidCharacterAndScanPage;
options.contain_page_background_image = YES;
options.languages = @[@(OCRLanguageChinese)];
[CPDFConversion startPDFToWord:@"word.pdf" password:@"password" outputPath:@"path/output.docx" options:options];OCR 选项
可根据实际需求选择不同的 OCR 选项。以下是当前支持的 OCR 选项。
- OCROptionInvalidCharacter: 通过 OCR 识别 PDF 文档中的无效或乱码字符,而正常字符不通过 OCR 处理。
- OCROptionScanPage: 通过 OCR 识别 PDF 文档中的扫描页面,而可编辑页面不通过 OCR 处理。
- OCROptionInvalidCharacterAndScanPage: 通过 OCR 同时识别 PDF 文档中的无效字符和扫描页面。
- OCROptionAll: 通过 OCR 识别 PDF 文档中的所有页面和字符。
保留页面背景
启用 OCR 时,您可以选择是否启用 contain_page_background_image 选项。如果启用此选项,将保留 PDF 的原始页面背景图像。如果禁用,将保留在页面版面分析期间检测到的图像结果。
注意事项
- OCR 结果的质量取决于输入图像的质量。如果输入图像分辨率较低,OCR 结果质量将受到影响。一个好的经验法则是:字符形状中的像素越多越好。如果字符边界框小于 20x20 像素,OCR 质量将呈指数级下降。理想的图像是分辨率约为 300 DPI 的灰度图像。
- 执行 OCR 时,请确保 OCR 语言设置与 PDF 文档中的语言匹配,以获得最佳的 OCR 转换质量。
- OCR 功能目前不支持 iOS。
将图像转换为其他文档格式
OCR 功能还支持将输入图像转换为 Word、Excel、PPT、HTML、CSV、RTF、TXT、JSON 等格式。此示例演示了如何使用 ComPDF OCR 功能将图像文件转换为 DOCX 文件。
objective-c
[LibraryManager setDocumentAIModel:@"path/documentai_v4.model"];
WordOptions *options = [[WordOptions alloc] init];
options.enableOCR = YES;
options.languages = @[@(OCRLanguageChinese)];
[CPDFConversion startPDFToWord:@"input.png" password:@"" outputPath:@"path/output.docx" options:options];示例
此示例演示了如何使用 ComPDF OCR 功能将 PDF 转换为 DOCX 文件。
objective-c
[LibraryManager setDocumentAIModel:@"path/documentai_v4.model"];
WordOptions *options = [[WordOptions alloc] init];
options.enableOCR = YES;
options.ocrOption = OCROptionInvalidCharacterAndScanPage;
options.contain_page_background_image = YES;
options.languages = @[@(OCRLanguageChinese)];
[CPDFConversion startPDFToWord:@"word.pdf" password:@"password" outputPath:@"path/output.docx" options:options];