关于窗口打印的难题。

icegirl914 2003-08-22 11:50:59
现在客户提出要能打印窗口里的接线图,我试了生成一个预览窗口,在这个新窗口里用一个控件来控制打印,但是我在取窗口里的图片的时候却出错了,我的语句如下:

MainFrm.ActiveMDIChild.GetFormImage;

出的是AccessViolation错误,但是用MainFrm.ActiveMDIChild.GetFormImage.Width却可以用的,不知道这是为什么?

注:我用MDIForm和MDIChildForm来做主界面的,用户想打印的内容放在MDIChildFrm里,还有打印的时候我是在另外一个新窗口里放了一个scrollbox和一个Image,我是把窗口上的图片放到Image来预览,然后用TPrinter来控制打印。
...全文
38 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
icegirl914 2003-08-26
  • 打赏
  • 举报
回复
问题已经解决了,谢谢各位
fyje 2003-08-22
  • 打赏
  • 举报
回复
使用form1.Canvas进行输出
icegirl914 2003-08-22
  • 打赏
  • 举报
回复
谢谢zhangheaaa,但是这个控件找不到!

有没有别的办法?能不用第三方控件我想尽量不用。
zhangheaaa 2003-08-22
  • 打赏
  • 举报
回复
对了,忘记说了,这个panel不是delphi自己的panel,
是一个第三方控件:screport
你可以去搜索一下,用起来很方便.
zhangheaaa 2003-08-22
  • 打赏
  • 举报
回复
把图片放在一个panel上,利用panel.print来打印。
icegirl914 2003-08-22
  • 打赏
  • 举报
回复
对不起,能不能说的详细一点?
科翰SOAOFFICE 2007文档控件(绿色版)是一款免安装卸载、免费使用的网络文档中间件。 下载地址:http://www.kehansoft.com/web/shared/download.asp?id=1 1.独特的文档安全性:防下载、防拷贝、防粘贴、防篡改、防打印。 2.集成简单:一行代码即可搞定。 3.友好的用户界面:进度加载,炫彩界面,页码显示 页面模式与全屏模式的切换 4.控件小:只有两个发布文件,无需其他组件支持。 SOAOFFICE 网络文档中间件是科翰软件拥有完全自主知识产权的浏览器插件。该软件完全按照国家办公/政务软件对公文文档需求标准设计,是目前国内功能最先进、用户界面最友好的在线文档编辑控件,成为许多软件开发商开发电子政务/办公软件(OA)的首选标准控件。 SOAOFFICE 文档控件,能够在浏览器窗口中直接编辑Word、Excel、Powerpoint、Viso、WPS等文档并保存到Web服务器上,实现了本地办公与网络办公的无缝整合,彻底解决了B/S模式下的电子政务/办公自动化等系统对常用Word、Excel等文档无法在线编辑的难题。SOAOffice 文档控件同时支持强制痕迹保留,手写签名,电子印章、数字签名、全文手写批注等高端电子政务、电子商务、办公自动化系统所必备的功能。 SOAOFFICE 文档控件采用标准HTTP传输协议,支持任意Web服务器,以及任意WEB编程语言。SOAOFFICE同时支持C/S方式的编程。 绿色版v4.1 更新: 1. 支持vista风格的标题栏。 2. 开放了VBA接口。开放了VBA接口的绿色版在功能上完全等同于精简版控件, 仅有的区别就是绿色版没有技术支持,有科翰软件的关于对话框。开放了VBA接口 的好处是提供Web方式的VBA接口,可以通过 JavaScript/VBScript 在网页上 操作 Word/Excel ,就像 VBA 一样。可以完全控制 Office 文档。 3. OFFICE文档预览上传。支持在控件窗口中打开本地Office文件,随后即可 直接保存文档到服务器。 4. vista office2007 IE7 稳定支持。 5. 消去了控件标题栏“科翰软件”字样。
本软件是飞涛软件工作室开发的一款免费Ocr软件,主要用于识别图像文件之中,出现 的汉字显示字体。Ocr的中文含意是光学字符识别。 为什么叫Mini呢?因为现有的识别汉字的商业Ocr软件,动辄二三十兆,而本软件解 压后,也不过三兆多,身材比较纤小,再加上本软件主要用于识别字体比较小的汉字,所 以叫Mini,中文的发音是“迷你”,中文含义是超小型。 既然有了商业Ocr软件,为什么还要开发这个软件? 不同于商业Ocr软件,本软件是免费的,可以自由使用。第二个不同之处,本软件的 识别对象是屏幕出现的“显示汉字”,而不是针对扫描仪扫出来的“打印汉字”。二者有什 么不同呢?最重要的一点: 扫描出来的打印汉字的高度和宽度一般都在30多个像素点之 上,这是我用画图软件,打开某个商业Ocr的samples\sample1.tif,然后一点一点数出 来的。从文件名和目录名的中文含意可以看出,这个点数应该是一个典型值。那么,如果 用商业Ocr识别屏幕上出现的小五号字,汉字的高度是12个像素点,会出现什么情况呢? 测试方法:用记事本随便写几行汉字,设置字体为小五号字。这大概是看着还算舒服 的最小号的汉字字体了(高度是12个像素点),如果再小,字体就很难看了。然后,按拷 屏键PrtSc,把屏幕的图像拷贝、粘贴到画图软件中,修剪尺寸后,保存为bmp的格式。 然后,我找了两个国内最著名的Ocr软件进行测试,结果让人大吃一惊,识别率几乎为零。 把图像放大两倍,再测试,结果仍然很不理想,大概也只有百分之二三十的样子。 开发Mini Ocr软件的由来 我在开发护花使者反黄图像识别软件的时候,遇到有些图像里,嵌有某些文字,如果能 把文字识别出来,图像的含义就很容易让计算机理解了。预算有限,我连扫描仪都舍不得 买,就更别想买商业Ocr的开发包了,大概几十万,或者更多,或者别人压根就不卖。况且 它们的识别率对小字体几乎为零,不符合我的要求。看来,只好自力更生,重新写一个了。 开发Mini Ocr的历程 经过三个多月的努力,终于诞生了这款Mini Ocr 软件。第1个月做出了汉字识别的 核心模块,第2个月做出了文章段落切分的算法,并加入了对英文,数字,标点的支持, 第三个月继续调整英汉混排和汉字切分的算法,并用MFC 做了一个界面。 Mini Ocr的软件架构    为了让更多的人能使用到这个软件,我在windows系统下,采用VC进行编程,界面当 然只好用MFC写了。软件架构是一个SDI框架下的多窗口切分界面,左上角的窗口是一个 CFormView,用来显示常用的按钮;左下角是一个CEditView,用来显示帮助信息;右上角 是一个CView,用来显示要识别的图像;右下角是一个CEditView,用来存放识别出来的文 字。识别部分采用了工作者线程,以避免显示界面的主线程僵掉。识别部分是整个软件的 核心,与操作系统无关,可以单独摘出来放在dos窗口里跑,也可以移植到Linux系统中跑。 汉字识别软件的难点所在: 英文识别有一些开放源码的软件,我看过的软件,主要采取两种识别方法:基于规则 的方法,和采用神经网络方法。而这两种方法,在识别汉字时,都不宜采用。因为汉字数 目众多,最常用的国标2312的一级汉字就有3755个。如果借用基于规则的方法,需要对 三千多个汉字,逐一人工写出分类规则,工作量太大,我一个人无法完成;如果采用神经 网络的方法,这么多汉字,我不敢想象,需要多少层网络和神经节点呀!如果采用网格法, 抗位移的效果太差;而采用不变矩法,识别人和入,土和士,相似度又难于控制。除此之 外,汉字切分也是一大难题。英文宽度大概只有汉字一半,标点符号大概只有汉字三分之 一宽,数字大概只有四分之一的宽度。而汉字本身又有二分字,和三分字。某些字,如“啊”, 字体小时可能是独体字,字体大些,变为二分字,字体再大,又变为三分字。加上汉字与 汉字之间的粘连、汉字与英文的混排,英文与英文的粘连,造成汉字切分模块的算法,甚 至比汉字识别模块的算法还要复杂得多。为了克服这些难点,并加快识别速度,我在算法 设计时,采用了一些优化和简化的策略。经过实践检验,证明行之有效。 Mini Ocr进行汉字识别的策略: 1) 采用复合特征的分类方法。 2) 字符集选择3755个一级汉字。 3) 字体选择最常用的宋体。 4) 字号选择从小五号到一号汉字,主要针对20个点之内的小字体。 5) 英汉混排时,汉语优先。 6) 汉字粘连时,进行动态优化切分。 展望与下一步的开发计划: 1) 重新优化英文识别的算法; 2) 对英文粘连的切分算法进行调整; 3) 移植进入Linux; 选择Ocr软件的建议:

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧