OCR
概述
OCR(光学字符识别)是将扫描文档、文档照片、场景照片以及叠加在图像上的字幕等文本转换为机器编码文本的过程。
OCR 常用于以下文档的文字识别和提取:
- 不可编辑的扫描档 PDF 文件
- 文档照片
- 广告牌、标牌等场景照片
- 身份证、护照、车牌等牌照
- 发票、账单、收据等票据
以下是支持 OCR 的功能:
- PDF 转 Word
- PDF 转 Excel
- PDF 转 PPT
- PDF 转 HTML
- PDF 转 RTF
- PDF 转 TXT
- PDF 转 CSV
- PDF 转可搜索 PDF
- PDF 转 OFD
- 提取 PDF 为 Json
- 提取 PDF 为 Markdown
OCR 目前支持的语言包括:
| Script / Notes | 语言 | 语言 (英文名称) | 语言(中文名称) |
|---|---|---|---|
| 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 语言建议通过 Languages 传入具体的转档任务,而不是通过单独的全局接口进行设置。
go
inputFilePath := "***"
password := "***"
outputFileName := "***"
wordOptions := compdf.NewWordOptions()
wordOptions.EnableOCR = true
wordOptions.Languages = []compdf.OCRLanguage{compdf.OCRLangEnglish}
err := compdf.StartPDFToWord(inputFilePath, password, outputFileName, wordOptions, nil)OCR 选项
可以根据实际需要选择不同的 OCR 选项,以下是目前支持的 OCR 选项:
- OCRInvalidCharacter: 通过 OCR 识别 PDF 文档中的非法/乱码字符,正常字符不使用 OCR 识别。
- OCRScanPage: 通过 OCR 识别 PDF 文档中的扫描页面,可编辑页面不使用 OCR 识别。
- OCRInvalidCharacterAndScanned: 通过 OCR 同时识别 PDF 文档中的非法字符和扫描页面。
- OCRAll: 通过 OCR 识别 PDF 文档中的所有页面和字符。
保留页面背景
当开启 OCR 时可选择是否开启 ContainPageBackgroundImage 选项,当开启该选项时会将 PDF 原页面背景图保留,关闭时会保留版面分析检测到的图片结果。
注意事项
- OCR 结果的质量与输入图像质量有关。如果输入图像分辨率较低,OCR 结果质量也会受影响。理想情况下建议使用接近 300 DPI 的灰度图像。
- 进行 OCR 识别时需要留意设置 OCR 语言,确保选择的 OCR 语言与 PDF 文档中的语言保持一致,以获取最佳的 OCR 转换质量。
- OCR 功能目前不支持低于 Windows 10 的操作系统。
将图片转换为其他文档格式
OCR 功能还支持将输入的图片转换为 Word、Excel、PPT、HTML、CSV、RTF、TXT、Json 等格式。以下示例展示了如何使用 ComPDF OCR 功能将图片文档转换为 docx 文档。
go
inputFilePath := "***"
password := "***"
outputFileName := "***"
wordOptions := compdf.NewWordOptions()
wordOptions.EnableOCR = true
wordOptions.Languages = []compdf.OCRLanguage{compdf.OCRLangEnglish}
err := compdf.StartPDFToWord(inputFilePath, password, outputFileName, wordOptions, nil)示例
此示例演示了如何在扫描文档上使用 ComPDF Conversion SDK 的 OCR 功能,将 PDF 文档转换为 Word 文档。
go
inputFilePath := "***"
password := "***"
outputFileName := "***"
wordOptions := compdf.NewWordOptions()
wordOptions.EnableOCR = true
wordOptions.Languages = []compdf.OCRLanguage{compdf.OCRLangEnglish}
err := compdf.StartPDFToWord(inputFilePath, password, outputFileName, wordOptions, nil)