←选择平台

RuntimeFileCallback财产

总结

重定向搜索和在运行时加载引擎文件到一个指定的目录或内存流。

语法
c#
VB
c++
公共OcrRuntimeFileCallbackRuntimeFileCallback {得到;;}
公共财产RuntimeFileCallback ()作为OcrRuntimeFileCallback得到
公共:财产OcrRuntimeFileCallback^ RuntimeFileCallback{OcrRuntimeFileCallback^ get ()无效集(OcrRuntimeFileCallback^价值)}

属性值

处理程序,可用于在运行时引擎的搜索和加载文件重定向到指定的目录或内存流。默认值是

讲话

重要提示1:这个属性只支持的OcrEngineType.LEAD引擎。

重要提示2:铅OCR引擎运行时文件航运LEADTOOLS 20版本不支持通过流重定向。联系support@leadtools.com为说明如何获得这些文件的副本与流媒体的支持。

的价值RuntimeFileCallback属性是默认情况下。因此,定位和获取所需的运行时文件OCR引擎来执行其操作是由要么通过这些文件驻留的目录的名称启动随着startupParameters参数,或依靠发动机的自动发现特殊的文件夹中的文件中列出启动

上述技术适用于桌面应用程序安装的机器上的物理路径。有上述情况并非理想的或可能的:

  • 应用程序可以选择下载或从内部资源中提取需求上运行时文件嵌入到应用程序甚至是外部的。

  • 一些环境,如Android,获得物理路径不支持资源嵌入到应用程序中。

RuntimeFileCallback可用于重定向OCR的搜索和加载运行时文件来支持这些类型的应用程序。

一个IOcrEngine实例将尝试加载在其生命周期中一个或多个引擎运行时文件如下:

换句话说,任何LEAD.xyz。本运行时文件,IOcrEngine可以请求检查该文件是否存在一个或多个时间和可以请求加载一次或多次。这些操作的顺序和频率是发动机内部。

默认运行时文件驻留在磁盘文件。因此,要求检查一个文件是否存在是一个简单的调用操作系统File.Exists (fullPathToFile)。如果文件存在,请求是通过调用来加载文件File.OpenRead (fullPathToFile)然后读取文件的内容。如果文件不存在,就没有试图读它。

应用程序可以使用RuntimeFileCallback拦截这样调用和重定向检查文件的存在和加载自定义路径或例程如下:

  1. 添加一个处理程序来IOcrEngine。RuntimeFileCallbackbefore callingIOcrEngine.Startup。顺序很重要,因为引擎检查期间重定向启动:

    c#
    / /创建一个领导OCR引擎实例IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)/ /添加一个运行时文件重定向处理程序ocrEngine。RuntimeFileCallback = runtimeFileCallbackHandler;/ /现在启动引擎没有传递运行时文件的目录名称。/ /调用处理程序根据需要多次定位和加载OCR/ /运行时文件所需的引擎ocrEngine.Startup (,,,/ * startupParameters* /);

  2. 正常执行OCR操作。该处理程序将根据需要多次调用。

    c#
    / / OCR TIF文件并将其保存为PDF/ /处理程序可以根据需要多次调用定位和加载OCR/ /运行时引擎该操作所需的文件ocrEngine.AutoRecognizeManager.Run (@“C: \ LEADTOOLS21 \资源\ \ ocr1.tif图像”,@“C: \ LEADTOOLS21 \资源\ \ out.pdf图像”,DocumentFormat.Pdf,,);

  3. 可选地,把处理程序。这个必须完成后关闭引擎,但在处理之前

    c#
    / /关闭ocrEngine.Shutdown ();/ /删除处理程序ocrEngine。RuntimeFileCallback =;/ /处理引擎ocrEngine.Dispose ();

  4. 调用处理程序的一个实例OcrRuntimeFile描述运行时文件和操作要求如下:

    成员 描述
    文件名 输入只有:OCR运行时文件的名称
    Guid 输入只有:唯一标识符与该运行时相关的文件
    模式 输入只有:操作执行的文件,检查其存在,打开阅读或关闭它
    FullPath 输出:完整路径文件是否存在,如果可用
    输出:包含文件数据流,如果可用

注意,引擎将检查是否回调中设置一个值OcrRuntimeFile.FullPath第一。如果该值为,然后OcrRuntimeFile.Stream使用。

重要提示:铅OCR引擎运行时文件航运LEADTOOLS 20版本不支持通过流重定向。联系support@Leadtools.com说明如何获得一份与流媒体文件的支持。

参考下面的例子如何使用OcrRuntimeFileCallback重定向引导OCR负载和定位文件从流:

例子
c#
VB
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Ocr;使用Leadtools.Document.Writer;公共静态无效OcrRuntimeFileCallbackExample (){/ /这个例子假设OCR运行时文件的部分或全部复制到C: \ MyDir”文件夹和模拟/ /的环境中运行时文件可以通过辅助方法HasResource GetResourceStream。/ /创建一个OCR引擎实例IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);/ /安装一个OCR文件运行时处理程序ocrEngine。RuntimeFileCallback = MyRuntimeFileCallback;/ /启动发动机ocrEngine.Startup (,,,/ * startupParameters* /);/ /执行OCR操作ocrEngine.AutoRecognizeManager.Run (@“C: \ LEADTOOLS21 \资源\ \ ocr1.tif图像”,@“C: \ LEADTOOLS21 \资源\ \ out.pdf图像”,DocumentFormat.Pdf,,);/ /关闭ocrEngine.Shutdown ();/ /删除处理程序ocrEngine。RuntimeFileCallback =;/ /处理引擎ocrEngine.Dispose ();}私人静态RasterExceptionCode MyRuntimeFileCallback (IOcrEngine引擎,OcrRuntimeFile runtimeFile){/ /调用OCR引擎为每个运行时文件操作= RasterExceptionCode.Success RasterExceptionCode结果;/ /检查操作:开关(runtimeFile.Mode){情况下OcrRuntimeFileMode.Exists:Debug.WriteLine ($“MyRuntimeFileCallback {runtimeFile。文件名}“存在”);/ /引擎检查某个文件是否存在,叫我们HasResource帮手如果(! HasResource (runtimeFile.FileName))结果= RasterExceptionCode.FileNotFound;打破;情况下OcrRuntimeFileMode.Open:Debug.WriteLine ($“MyRuntimeFileCallback开放{runtimeFile.FileName}”);/ /引擎要求打开文件阅读,叫我们GetResourceStream帮手/ /并相应地设置流属性runtimeFile。流= GetResourceStream(runtimeFile.FileName);打破;情况下OcrRuntimeFileMode.Close:Debug.WriteLine ($“MyRuntimeFileCallback {runtimeFile.FileName}”);/ /发动机要求阅读后关闭该文件。/ /处理流runtimeFile.Stream.Dispose ();打破;}返回结果;}私人静态boolHasResource (字符串resourceName){/ /我们有这个资源吗?/ /在我们的模拟,我们只会检查是否存在磁盘上的文件/ /在一个Android应用程序,这可以检查资源是否具有该名称是嵌入式返回System.IO.File.Exists (Path.Combine (@“C: \ MyDir”resourceName));}私人静态流GetResourceStream (字符串resourceName){/ /得到一个流,可以读取资源/ /在我们的模拟,我们只会检查是否存在磁盘上的文件/ /在Android应用程序,这可以调用API来获得合适的平台/ /流的资源返回System.IO.File.OpenRead (Path.Combine (@“C: \ MyDir”resourceName));}
进口Leadtools进口Leadtools.Codecs进口Leadtools.Ocr进口Leadtools.Document.Writer公共共享OcrRuntimeFileCallbackExample ()这个例子假设部分或全部的OCR运行时文件复制到C: \ MyDir”文件夹和模拟的环境中运行时文件可以通过辅助方法HasResource GetResourceStream。创建一个OCR引擎实例昏暗的ocrEngine作为IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)安装一个OCR文件运行时处理程序ocrEngine。RuntimeFileCallback =AddressOfMyRuntimeFileCallback发动机的启动ocrEngine.Startup (没有什么,没有什么,没有什么,没有什么startupParameters是什么)“执行OCR操作ocrEngine.AutoRecognizeManager.Run (“C: \ LEADTOOLS21 \资源\ \ ocr1.tif图像”,“C: \ LEADTOOLS21 \资源\ \ out.pdf图像”,DocumentFormat.Pdf,没有什么,没有什么)“关闭ocrEngine.Shutdown ()“删除处理程序ocrEngine。RuntimeFileCallback =没有什么的处理引擎ocrEngine.Dispose ()结束私人共享函数MyRuntimeFileCallback(引擎作为IOcrEngine, runtimeFile作为OcrRuntimeFile)作为RasterExceptionCode“被OCR引擎为每个运行时文件操作昏暗的结果作为RasterExceptionCode = RasterExceptionCode.Success“检查操作选择情况下runtimeFile.Mode情况下OcrRuntimeFileMode.ExistsDebug.WriteLine ($“MyRuntimeFileCallback {runtimeFile。文件名}“存在”)引擎是检查某个文件是否存在,叫我们HasResource帮手如果HasResource (runtimeFile.FileName)然后结果= RasterExceptionCode.FileNotFound结束如果情况下OcrRuntimeFileMode.OpenDebug.WriteLine ($“MyRuntimeFileCallback开放{runtimeFile.FileName}”)的发动机要求打开文件阅读,叫我们GetResourceStream帮手”,并相应地设置流属性runtimeFile。流= GetResourceStream(runtimeFile.FileName)情况下OcrRuntimeFileMode.CloseDebug.WriteLine ($“MyRuntimeFileCallback {runtimeFile.FileName}”)的发动机要求阅读后关闭该文件。处理我们的流runtimeFile.Stream.Dispose ()结束选择返回结果结束函数私人共享函数HasResource (resourceName作为字符串)作为布尔“我们有这个资源吗?在我们的模拟中,我们将简单地检查是否存在磁盘上的文件在Android应用程序,这可以检查资源是否具有该名称是嵌入式返回System.IO.File.Exists (Path.Combine (“C: \ MyDir”,resourceName))结束函数私人共享函数GetResourceStream (resourceName作为字符串)作为“流可以读取资源在我们的模拟中,我们将简单地检查是否存在磁盘上的文件在Android应用程序,这可以调用API来获得合适的平台资源的流返回System.IO.File.OpenRead (Path.Combine (“C: \ MyDir”,resourceName))结束函数
需求
目标平台
Leadtools.Ocr作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。