重定向搜索和在运行时加载引擎文件到一个指定的目录或内存流。
公共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拦截这样调用和重定向检查文件的存在和加载自定义路径或例程如下:
添加一个处理程序来IOcrEngine。RuntimeFileCallbackbefore callingIOcrEngine.Startup。顺序很重要,因为引擎检查期间重定向启动
:
/ /创建一个领导OCR引擎实例
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)
/ /添加一个运行时文件重定向处理程序
ocrEngine。RuntimeFileCallback = runtimeFileCallbackHandler;
/ /现在启动引擎没有传递运行时文件的目录名称。
/ /调用处理程序根据需要多次定位和加载OCR
/ /运行时文件所需的引擎
ocrEngine.Startup (零,零,零,
零/ * startupParameters是零* /);
正常执行OCR操作。该处理程序将根据需要多次调用。
/ / OCR TIF文件并将其保存为PDF
/ /处理程序可以根据需要多次调用定位和加载OCR
/ /运行时引擎该操作所需的文件
ocrEngine.AutoRecognizeManager.Run (
@“C: \ LEADTOOLS21 \资源\ \ ocr1.tif图像”,
@“C: \ LEADTOOLS21 \资源\ \ out.pdf图像”,
DocumentFormat.Pdf,
零,
零);
可选地,把处理程序。这个必须完成后关闭引擎,但在处理之前
/ /关闭
ocrEngine.Shutdown ();
/ /删除处理程序
ocrEngine。RuntimeFileCallback =零;
/ /处理引擎
ocrEngine.Dispose ();
调用处理程序的一个实例OcrRuntimeFile描述运行时文件和操作要求如下:
成员 | 描述 |
---|---|
文件名 | 输入只有:OCR运行时文件的名称 |
Guid | 输入只有:唯一标识符与该运行时相关的文件 |
模式 | 输入只有:操作执行的文件,检查其存在,打开阅读或关闭它 |
FullPath | 输出:完整路径文件是否存在,如果可用 |
流 | 输出:包含文件数据流,如果可用 |
注意,引擎将检查是否回调中设置一个值OcrRuntimeFile.FullPath第一。如果该值为零,然后OcrRuntimeFile.Stream使用。
重要提示:铅OCR引擎运行时文件航运LEADTOOLS 20版本不支持通过流重定向。联系support@Leadtools.com说明如何获得一份与流媒体文件的支持。
参考下面的例子如何使用OcrRuntimeFileCallback重定向引导OCR负载和定位文件从流:
使用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.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 ()
结束选择
返回结果
结束函数
私人共享函数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))
结束函数
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。