文字识别专业版

客户端识别

方法
Download() IsModuleInstalled() Recognize()
RecognizeFile() RecognizeRect() RecognizeSelectedImages
属性
Settings
OCR Pro Result 对象
OCRResult PageResult
LetterResult ErrorInfo

示例代码

function DoOCR() {
    if (DWObject) {
        if (DWObject.HowManyImagesInBuffer == 0) {
            alert("Please scan or load an image first.");
            return;
        }
        var settings = Dynamsoft.WebTwain.Addon.OCRPro.NewSettings();
        var bMultipage = false;
        settings.RecognitionModule = OCRRecognitionModule[document.getElementById("ddlOCRRecognitionModule").selectedIndex].val;
        settings.Languages = OCRLanguages[document.getElementById("ddlLanguages").selectedIndex].val;
        settings.OutputFormat = OCROutputFormat[document.getElementById("ddlOCROutputFormat").selectedIndex].val;
        var selectValue = OCROutputFormat[document.getElementById("ddlOCROutputFormat").selectedIndex].val;
        if (selectValue == EnumDWT_OCRProOutputFormat.OCRPFT_IOTPDF ||
            selectValue == EnumDWT_OCRProOutputFormat.OCRPFT_IOTPDF_MRC) {
            bMultipage = true;
            settings.PDFVersion = OCRPDFVersion[document.getElementById("ddlPDFVersion").selectedIndex].val;
            settings.PDFAVersion = OCRPDFAVersion[document.getElementById("ddlPDFAVersion").selectedIndex].val;
        }
        if (document.getElementById("chkUseRedaction").checked) {
            settings.Redaction.FindText = document.getElementById("txtFindText").value;
            settings.Redaction.FindTextFlags = OCRFindTextFlags[document.getElementById("ddlFindTextFlags").selectedIndex].val;
            settings.Redaction.FindTextAction = OCRFindTextAction[document.getElementById("ddlFindTextAction").selectedIndex].val;
        }
        settings.LicenseChecker = "LicenseChecker.aspx";
        DWObject.Addon.OCRPro.Settings = settings;

        //Get ocr result.
        var i;
        bClearResult = true;
        if (arySelectedAreas.length > 0) {
            document.getElementById('divNoteMessage').innerHTML = '';
            bClearResult = false;
            var zoneArray = [];
            for (i = 0; i < arySelectedAreas.length; i++) {
                var zone = Dynamsoft.WebTwain.Addon.OCRPro.NewOCRZone(arySelectedAreas[i][1], arySelectedAreas[i][2], arySelectedAreas[i][3], arySelectedAreas[i][4]);
                zoneArray.push(zone);
            }
            DWObject.Addon.OCRPro.RecognizeRect(DWObject.CurrentImageIndexInBuffer, zoneArray, GetRectOCRProInfo, GetErrorInfo);
        }
        else if (bMultipage) {
            var nCount = DWObject.HowManyImagesInBuffer;
            DWObject.SelectedImagesCount = nCount;
            for (i = 0; i < nCount; i++) {
                DWObject.SetSelectedImageIndex(i, i);
            }
            DWObject.Addon.OCRPro.RecognizeSelectedImages(OnOCRSelectedImagesSuccess, GetErrorInfo);
        }
        else {
            DWObject.Addon.OCRPro.Recognize(DWObject.CurrentImageIndexInBuffer, GetOCRProInfo, GetErrorInfo);
        }
    }
}

方法

Download()
下载并安装OCRPro add-on到本地系统
语法 .Addon.OCRPro.Download(sDLLPath, [optionalAsyncSuccessFunc, optionalAsyncFailureFunc]);
参数
  • String sDLLPath: 指定Add-on下载地址,如 "http://www.dynamsoft.com/DWT/Resources/OCR.zip".
  • <OnSuccess function> optional optionalAsyncSuccessFunc: 下载成功的回调函数。
  • <OnFailure function> optional optionalAsyncFailureFunc: 下载失败的回调函数。
返回值 Boolean
版本信息 Versions: v11.3.2+
Editions: HTML5 for Windows
使用说明 本方法试图从给定的下载地址下载OCR Pro Add-on。如果本地已经存在同一版本的对应文件,则下载直接跳过到成功回调。 可以用IsModuleInstalled()方法预先检测是否已经安装以确定是否需要调用本方法。
IsModuleInstalled()
检测本地是否已经安装OCR Pro addon。
语法 .Addon.OCRPro.IsModuleInstalled();
参数
返回值 Boolean
版本信息 Versions: v14.1+
Editions: HTML5 for Windows only
使用说明 如果本方法返回false,则本地未安装OCR Pro Addon,可以调用 Download()来下载并安装它。
Recognize()
识别给定的一张图片。
语法 .Addon.OCRPro.Recognize(nImageIndex, asyncSuccessFunc, asyncFailureFunc);
参数
  • Number nImageIndex: 通过索引指定图片。索引从0开始。
  • <OnOCRSuccess function> asyncSuccessFunc: 识别成功时的回调,对应的参数为

    Number nImageIndex识别的图的索引。
    OCRResult Result识别结果。
  • <OnOCRFailure function> asyncFailureFunc: 识别失败时的回调,对应的参数为

    Number nErrorCode错误码。
    String strErrorString错误信息。
    OCRResult Result识别结果。
返回值 Boolean
版本信息 Versions: v11.3.2+
Editions: HTML5 for Windows only
使用说明 参见示例代码OCRResult定义
RecognizeFile()
识别一张本地图片且无需预加载该图片。
语法 .Addon.OCRPro.RecognizeFile(strFileNames, asyncSuccessFunc, asyncFailureFunc);
参数
  • String strFileNames: 指定要识别的图的本地地址。如果同时识别多张图,则用'|'分开它们的地址。
  • <OnOCRSuccess function> asyncSuccessFunc: 识别成功时的回调,对应的参数为

    String strFileNames已识别图的地址。
    OCRResult Result识别结果。
  • <OnOCRFailure function> asyncFailureFunc: 识别失败时的回调,对应的参数为

    Number nErrorCode错误码。
    String strErrorString错误信息。
    OCRResult Result识别结果。
返回值 Boolean
版本信息 Versions: v11.3.2+
Editions: HTML5 for Windows only
使用说明 参见示例代码OCRResult定义
RecognizeRect()
识别给定图上的一个区域。
语法 .Addon.OCRPro.RecognizeRect(nImageIndex, aryZones, asyncSuccessFunc, asyncFailureFunc);
参数
  • Number nImageIndex: 指定一张图的索引。索引从0开始。
  • Array aryZones: 包含要识别区域的数列。区域通过Dynamsoft.WebTwain.Addon.OCRPro.NewOCRZone创建。
  • <OnOCRSuccess function> asyncSuccessFunc: 识别成功时的回调,对应的参数为

    Number nImageIndex已识别图的索引。
    OCRResult Result识别结果。
  • <OnOCRFailure function> asyncFailureFunc: 识别失败时的回调,对应的参数为

    Number nErrorCode错误码。
    String strErrorString错误信息。
    OCRResult Result识别结果。
返回值 Boolean
版本信息 Versions: v11.3.2+
Editions: HTML5 for Windows only
使用说明 参见示例代码OCRResult定义
RecognizeSelectedImages()
同时识别多张选中的图.
语法 .Addon.OCRPro.RecognizeSelectedImages(asyncSuccessFunc, asyncFailureFunc);
返回值 Boolean
参数
  • <OnOCRSelectedImagesSuccess function> asyncSuccessFunc: 识别成功时的回调,对应的参数为

    OCRResult Result识别结果。
  • <OnOCRFailure function> asyncFailureFunc: 识别失败时的回调,对应的参数为

    Number nErrorCode错误码。
    String strErrorString错误信息。
    OCRResult Result识别结果。
版本信息 Versions: v11.3.2+
Editions: HTML5 for Windows only
使用说明 参见示例代码OCRResult定义

属性

Settings
包含OCR设置的对象。
类型 Object
访问权限 Set
使用说明 Dynamsoft.WebTwain.Addon.OCRPro.NewSettings()生成一个设置对象后,添加对应的设置再将对象设到Settings中。这个对象包含以下项LanguagesLicenseCheckerOutputFormatPDFAVersionPDFVersionRecognitionModuleRedaction。这些项的解释参考OCRPro.ServerSide.Request
版本信息 Versions: v11.3.2+
Editions: HTML5 for Windows only

OCResult

OCR的结果为一个OCResult对象。它的方法有

方法名 方法描述
Get() 返回一个包含OCR结果的字符串。
GetErrorCode() 返回错误码。
GetErrorString() 返回错误信息。
GetErrorDetailList() 返回一个包含每一张图片OCR出错的详细信息的数列。参见ErrorInfo
GetInput() 返回输入源信息(如图片的索引或者磁盘地址)。
Save() 将OCR结果保存为本地磁盘文件。
GetOCRTotalCount() 返回许可证限制的可做OCR操作的总数。
GetAlreadyOCRCount() 返回已经OCR的图片总数。
GetPageCount() 返回OCR结果中的页面数量。
GetPageContent(nPageIndex) 返回由nPageIndex指定的对应OCR结果中的一个页面的内容。

PageResult

GetPageContent(nPageIndex)方法返回一个PageResult对象,对应的方法有

方法名 方法描述
GetLetterCount() 返回一页中的字母个数。
GetLetterContent(nLetterIndex) 返回一个(LetterResult) 对象。

LetterResult

GetLetterContent(nLetterIndex)方法返回一个LetterResult对象,对应方法有

方法名 方法描述
GetText() 返回一个字母的详细内容。
GetLetterRect() 返回一个字母在页面上的坐标,格式为"left,top,right,bottom"。

ErrorInfo

在错误对象ErrorInfo中有以下方法

方法名 方法描述
GetInput() 返回OCR源,如文件的路径或者图片的索引。
GetMessage() 返回错误消息。
GetPage() 返回出错的页面索引。

服务器端识别

服务器端的OCR Pro是以服务的形式运行,识别的步骤如下

  1. 要识别的图片文件先上传并保存在服务器的磁盘上
  2. 保存好的图片路径作为输入源连同其它的设置一起组成一个请求OCRPro.ServerSide.Request并被发送到OCR Pro服务
  3. OCR Pro服务接收请求,执行识别并返回结果

以下为对应的请求及回复的结构

OCRPro.ServerSide.Request

{
    productKey: "***",
    inputFile: ["d:\\input\\1.tif"],
    outputFile: " d:\\temp\\ocrresult.pdf",
    zones: [[100, 100, 200, 300]],    
    settings:
    {
        recognitionModule: "auto", /*可选*/
        languages: "eng,arabic",
        recognitionMethod: "File",
        threadCount: "2", /*可选*/
        outputFormat: "IOTPDF",
        pdfVersion: "1.7", /*可选*/
        pdfAVersion: "pdf/a-2a", /*可选*/
        redaction:
            {
            "findText": "AAA",
            "findTextFlags": 1,
            "findTextAction": 0
            }
    }
}
接口 描述
productKey OCR Pro license的授权码。
inputFile 一个包含输入源的数列。支持的文件格式为"TIFF (G4 / LZW / JPEG), JPEG, PDF, BMP, JPEG2000, JBIG, JBIG2, PNG, PDA, PGX, XPS, WMP, OPG, MAX, AWD, DCX, PCX"。注意文件路径中用'\\'而不是'\'。
outputFile 指定识别结果的保存位置。多张图片做OCR时结果将会被合成为一个文件。
zones 指定要识别的区域坐标。只在recognitionMethodPage时有效。坐标格式为[[left, top, right, bottom]].
settings
.recognitionModule 指定识别用的Module,可用的Module有:

mostaccurate最准确同时最慢
fastest最快但是最不准确
balanced维持速度与准确度的平衡
auto默认值,由系统自己确定采用哪个Module
.languages 指定识别的语言。如English写为"eng",Arabic写为"arabic"等。可以同时指定多个语言如"eng,arabic"
.recognitionMethod 指定识别方式。有两种方式,一种是Page,即一次只识别一页。另一种是File即一次识别一个文件。File方式支持多线程,更快。但是只有Page方式支持区域识别和返回更详细的识别结果如每个字母的坐标。
.threadCount File方式下指定线程数。
.outputFormat 指定识别结果的保存格式。

格式描述
TXTS标准.txt文本文件。
TXTCSVCSV文本文件.
TXTF格式化文本文件。
XMLXML文件.
IOTPDF保留原图样式的PDF文件。
IOTPDF_MRC保留原图样式且采用MRC压缩的PDF文件。
.pdfVersion 当输出为PDF时,指定PDF的版本。默认值为1.5。
.pdfAVersion 当输出为PDF时,指定PDFA的版本,可选值为"pdf/a-1a","pdf/a-1b","pdf/a-2a "," pdf/a-2b "," pdf/a-2u ", " pdf/a-3a ","pdf/a-3b","pdf/a-3u"。
.redaction 指定修定方式

选项描述
findText指定修定内容
findTextFlags指定查找内容的方式。可选值为 1 (WHOLEWORD,全词匹配), 2 (MATCHCASE,大小写匹配), 4 (FUZZYMATCH,模糊匹配).
findTextAction指定修定方式。可选值为 0 (HIGHLIGHT,高亮), 1 (STRIKEOUT,划除) or 2 (MARKFORREDACT,标记).

OCRPro.ServerSide.Response

{
    "Request": {
        inputFile: ["d:\\input\\1.tif"],
        settings: {...},
        outputFile: ...
    }
    ocrTotalCount: 300000,
    alreadyOCRCount: 80,
    code: 0,
    message: "Recognize succeeded.",
    errorList: 
        [
            {
                "input": "d:\\input\\1.tif",
                "message": "Image file format error.",
                "page": "1"
            }
        ]
    resultFile: "***", //base64编码的文件内容
    resultDetail:
        [
            [//page 0
                {//letter 0
                    "letter": "Aa",
                    "boundary": [0,0,18,18]
                },
                {//letter 1
                    ...
                },
                ...
            ],
            [//page 1
                ...
            ],
            ...    
        ]  
}
接口 描述
inputFile 参考 OCRPro.ServerSide.Request
settings 参考OCRPro.ServerSide.Request
outputFile 参考OCRPro.ServerSide.Request
ocrTotalCount 返回当前OCR许可的总页数限制。
alreadyOCRCount 返回当前已经OCR的页数。
code 返回OCR的错误码。如果非0,则参考errorList
message 返回OCR的错误信息。
errorList 返回详细的针对每个OCR输入文件的错误信息。
resultFile OCRPro.ServerSide.Request未指定OCR结果的保存地址,返回base64编码的OCR结果。
resultDetail recognitionMethod设为Page时,返回JSON格式的详细的OCR结果。

results matching ""

    No results matching ""