近些年来随着互联网的普及和推广传统的单机模式和局域中的c/s模式的应用程序越来越不能满足信息共享的要求因此一种新的基于浏览器的b/s的应用程序的开发方式被提了出来新的开发方案以其客户端的免维护免配置程序能根据服务器的信息能够自动更新升级;服务器端多层模式的应有提高处理的效率和安全性越来越被广大的应用程序的开发者所看好成为应用程序开发的一个新的发展方向在windows的平台上人们利用asp来开发服务的显示界面而用组件来封装商业规则在各种杂志上利用各种工具进行组件开发也是屡见不鲜但介绍打印组开发却不怎么看到?
二设想
web打印组件要求是在一次为某单位开发信息管理系统中被提及的这个系统中的一些票据需要打印这样如何对这些票据进行套打成了我们必须解决的问题
要在客户端打印一些用户要求的票据或其它的文字或图片资料有两种方式:一种是利用delphi的activeform来生成客户端的界面由浏览器下载安装并在客户端运行(这种方式在开发多后台数据库中较为常用在国内许多新版本的财务软件都采用了这种方法其缺点是对开发人员的要求太高) 另一种是开发一个组件在客户端安装然后由服务器端来生成vbscript脚本在客户端运行创建相应的组件对象;利用组件对象来进行打印操作(这种方法只要客户端的com组件开发完成使用者只要熟悉vbscript或javascript脚本语言就可能方便的调用)?
三实现
首先运行delphi ;选择file菜单中的new在弹出的对话框中选择activex页选择activex library创建activex库然后再往新建的库中加入一个automation object操作步骤同上在automation object wizard对话框中填入组件名prttest;单击ok
然后在弹出的prttesttlb窗口中选择iprttest单击右键新增一个isinit的property类型为long再继续增加如下个method:
procedure prtcustompage(pagewidth: integer; pageheight: integer);
safecall;
procedure prtstart; safecall;
procedure prtnewpage; safecall;
procedure prtend; safecall;
procedure prtdrawline(x: integer; y: integer; x: integer; y:
integer; linewidth: integer); safecall;
procedure prtsetfont(const fontname: widestring; fontsize:
integer); safecall;
procedure prttextrect(valign: integer; halign: integer; rectleft:
integer; recttop: integer;rectright: integer; rectbottom:
integer; const printstring: widestring); safecall;
它们意义是:
prtcustompage 用来设置自定义纸张传入的参数自定义纸张的宽度和高度
prtstart 用来初始化打印机如果初始化成功则将属性isinit置为真反之则为假
prtnewpage 用来使打印机换页
prtend结束打印任务
prtdrawline 用来在页面上绘制一条线(xy)为起始点(xy)为终止点linewidth为打印线的宽度
prtsetfont 用来设置打印的字体名及大小
prttextrect 用来指定的方框内的输出的指定的字符串
Delphi开发WEB应用程序打印组件()
[] [] []