找回密码
 立即注册

QQ登录

只需一步,快速开始

caihuamao520

注册会员

9

主题

34

帖子

107

积分

注册会员

积分
107
caihuamao520
注册会员   /  发表于:2016-11-8 23:11  /   查看:13575  /  回复:25
我笔记本电脑配置有4GB 的内存 i3的CPU 这样配置的电脑 代码在运行过程中 10页以内的TIF文件转换PDF文件基本都正常,当出现20页以上的时候 PDF文档有就会抛出异常,提示 Not enough memory for this memory Operation。(前提是我的TIF文件是300分辨率的,幅面都是在A3左右,我是把多个的单页的TIF文件转换成一个PDF文件)。

                                IOcrEngine _ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Professional, false);                                 
                                // 启动OCR引擎
                                _ocrEngine.Startup(null, null, null, Path.Combine(Application.StartupPath, "OcrProfessionalRuntime"));                                
                                // 创建文档
                                IOcrDocument _ocrDocument = _ocrEngine.DocumentManager.CreateDocument();
                                _ocrEngine.LanguageManager.EnableLanguages(new string[] { "zh-Hans", "en" });
                                // 启用拼写检查系统,并将英文设置为拼写语言
                                _ocrEngine.SpellCheckManager.SpellCheckEngine = OcrSpellCheckEngine.Native;
                                _ocrEngine.SpellCheckManager.SpellLanguage = "en";
                                foreach (string fileName in ArrFilepath)
                                {
                                    Application.DoEvents();                                   
                                    if (!File.Exists(fileName)) return;
                                    _ocrDocument.Pages.AddPage(fileName, null);                                    
                                }
                                Application.DoEvents();                                
                                // 识别所有页面
                                // 注意,我们不需要调用AutoZone,引擎会检查页面是否被分区,若无,则会自动分区
                                _ocrDocument.Pages.Recognize(null);
                                PdfDocumentOptions pdfs = _ocrDocument.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;
                                pdfs.ImageOverText = true;//图像与文字 双层PDF
                                pdfs.PageRestriction = DocumentPageRestriction.Relaxed;
                                switch (this.cbDocumntType.Text)
                                {
                                    case "PDF": pdfs.DocumentType = PdfDocumentType.Pdf; break;
                                    case "PDF/A": pdfs.DocumentType = PdfDocumentType.PdfA; break;
                                    case "PDF12": pdfs.DocumentType = PdfDocumentType.Pdf12; break;
                                    case "PDF13": pdfs.DocumentType = PdfDocumentType.Pdf13; break;
                                    case "PDF15": pdfs.DocumentType = PdfDocumentType.Pdf15; break;
                                    case "PDF16": pdfs.DocumentType = PdfDocumentType.Pdf16; break;
                                }
                                _ocrDocument.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfs);
                                _ocrDocument.Save(strSavePDFPath, DocumentFormat.Pdf, null);
                                Application.DoEvents();
                                // 释放此文档
                                _ocrDocument.Dispose();
                                // 关闭OCR引擎
                                _ocrEngine.Shutdown();
                                GC.Collect();



25 个回复

倒序浏览
caihuamao520
注册会员   /  发表于:2016-11-9 00:00:03
沙发
谁有遇到类似的问题吗?要怎么解决这个问题!着急啊!
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-9 10:38:48
板凳
这个可能没什么好办法了,就是内存不够。
回复 使用道具 举报
caihuamao520
注册会员   /  发表于:2016-11-9 19:24:09
地板
那我加大内存可以解决这个问题吗,还是要怎么操作。还是说控件支持不了那么大的幅面
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-10 10:26:48
5#
控件不会限制文件尺寸,控件就是本质就是算法而已。加内存应该可以。
回复 使用道具 举报
caihuamao520
注册会员   /  发表于:2016-11-10 11:19:46
6#
哦 好的。哪有多个双层PDF合并成一个双层PDF的代码,或例子吗
回复 使用道具 举报
caihuamao520
注册会员   /  发表于:2016-11-10 12:36:50
7#
gw0506 发表于 2016-11-10 10:26
控件不会限制文件尺寸,控件就是本质就是算法而已。加内存应该可以。


哦 好的。哪有多个双层PDF合并成一个双层PDF的代码,或例子吗
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-11 08:50:45
8#
caihuamao520 发表于 2016-11-10 12:36
哦 好的。哪有多个双层PDF合并成一个双层PDF的代码,或例子吗

可能没有现成的例子。
另外,我不太明白双层PDF指的是什么?
回复 使用道具 举报
caihuamao520
注册会员   /  发表于:2016-11-13 16:06:16
9#
双层PDF 简单的说,指将纸质档案通过扫描仪快速录入后,经过去污、纠偏和OCR识别,然后可以直接生成可以检索的PDF文件。这个PDF文件是双层的,上层是原始图像,下层是识别结果。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-14 11:14:08
10#
感谢指教,我也找了一些资料,了解了。

LeadTools再处理图像,进行OCR这些功能都可以满足,不过最终如何生成双层PDF没有Demo,还得请您动手评估一下。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部