Skip to content

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; AmericanEnglishEnglish英文
Latn; CanadianFrançais canadienFrench法文
Hans/Hant中文简体Chinese (Simplified)简体中文
Hans/Hant中文繁体Chinese (Traditional)繁体中文
Jpan日本語Japanese日文
Kore한국어Korean韩文
LatnDeutschGerman德文
LatnСрпски (латиница)Serbian (latin)塞尔维亚语(拉丁字母)
LatnOccitan, lenga d'òc, provençalOccitan奥克西坦语
LatnDanskDanish丹麦文
LatnItalianoItalian意大利文
Latn; EuropeanEspañolSpanish西班牙文
Latn; EuropeanPortuguês (Portugal)Portuguese葡萄牙文
LatnTe reo MāoriMaori毛利文
LatnBahasa MelayuMalay马来文
LatnMaltiMaltese马耳他文
LatnNederlandsDutch荷兰文
Latn; BokmålNorskNorwegian挪威文
LatnPolskiPolish波兰文
LatnRomânăRomanian罗马尼亚文
LatnSlovenčinaSlovak斯洛伐克文
LatnSlovenščinaSlovenian斯洛文尼亚文
LatnshqipAlbanian阿尔巴尼亚文
LatnSvenskaSwedish瑞典文
LatnSwahiliSwahili斯瓦希里文
LatnWikang TagalogTagalog塔加洛文
LatnTürkçeTurkish土耳其文
LatnoʻzbekchaUzbek乌兹别克文
LatnTiếng ViệtVietnamese越南文
LatnAfrikaansAfrikaans南非荷兰文
LatnAzərbaycanAzerbaijani阿塞拜疆文
LatnBosanskiBosnian波斯尼亚文
LatnČeštinaCzech捷克文
LatnCymraegWelsh威尔士文
LatnEesti keelEstonian爱沙尼亚文
LatnGaeilgeIrish爱尔兰文
LatnHrvatskiCroatian克罗地亚文
LatnMagyarHungarian匈牙利文
LatnBahasa IndonesiaIndonesian印度尼西亚文
LatnÍslenskaIcelandic冰岛文
LatnKurdîKurdish库尔德文
LatnLietuviųLithuanian立陶宛文
LatnLatviešuLatvian拉脱维亚文

设置 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)