Delphi开发Web应用程序打印组件

一、慨述

近些年来,随着互联网的普及和推广,传统的单机模式和局域中的c/s模式的应用程序越来越不能满足信息共享的要求。因此,一种新的基于浏览器的b/s的应用程序的开发方式被提了出来。新的开发方案以其客户端的免维护、免配置、程序能根据服务器的信息能够自动更新升级;服务器端多层模式的应有提高处理的效率和安全性越来越被广大的应用程序的开发者所看好。成为应用程序开发的一个新的发展方向。在windows的平台上,人们利用asp来开发服务的显示界面,而用组件来封装商业规则,在各种杂志上利用各种工具进行组件开发也是屡见不鲜。但介绍打印组开发却不怎么看到?

二、设想

Web打印组件要求是在一次为某单位开发信息管理系统中被提及的,这个系统中的一些票据需要打印。这样,如何对这些票据进行套打成了我们必须解决的问题。

要在客户端打印一些用户要求的票据或其它的文字或图片资料,有两种方式:一种是利用delphi的active form来生成客户端的界面,由浏览器下载安装,并在客户端运行。(这种方式在开发多后台数据库中,较为常用。在国内许多新版本的财务软件都采用了这种方法,其缺点是对开发人员的要求太高),另一种是开发一个组件在客户端安装,然后,由服务器端来生成vbscript脚本,在客户端运行、创建相应的组件对象;利用组件对象来进行打印操作。(这种方法只要客户端的com组件开发完成,使用者只要熟悉vbscript或javascript脚本语言就可能方便的调用)?

三、实现

首先、运行delphi 5.0;选择file菜单中的new,在弹出的对话框中选择activex页,选择activex library创建activex库.然后,再往新建的库中加入一个automation object,操作步骤同上。在automation object wizard对话框中填入组件名prttest3;单击ok。

然后、在弹出的prttest3.tlb窗口中,选择iprttest3。单击右键新增一个isinit的property,类型为long。再继续增加如下5个method:

  procedure prtcustompage(pagewidth: integer; pageheight: integer);
    safecall;
   procedure prtstart; safecall;
   procedure prtnewpage; safecall;
   procedure prtend; safecall;
   procedure prtdrawline(x1: integer; y1: integer; x2: integer; y2:
    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 用来在页面上绘制一条线。(x1,y1)为起始点.(x2,y2)为终止点。linewidth为打印线的宽度。

prtsetfont 用来设置打印的字体名及大小。

prttextrect 用来指定的方框内的输出的指定的字符串。

时间: 2024-09-07 17:01:27

Delphi开发Web应用程序打印组件的相关文章

Delphi开发Web Server程序返回图像的方法

Internet/Intranet在九十年代可能是最流行的计算机术语了,不管是计算机行业内的人士还是计算机外的人士,都会使用Internet/Intranet,有的查资料,有的是宣传自己和公司,甚至有许多以前从没有想到用Internet的东西现在也在用Internet来解决, 比如有的程控数字计算机维护用Internet来解决.在这一切应用之中,基于Web Server的应用程序的开发是基本点,但如何开发Web Server的程序呢? Delphi 3是Borland公司1997年推出的可视化.

如何使用Ajax技术开发Web应用程序(3)

ajax|web|程序 在这个关于AJAX系列的第三部分中(相关文章:第一部分.第二部分),我们将学习如何使用AJAX与服务端进行写作以及这些技术如何产生强大的web应用程序.如果你对学习如何构建类似GMail或者Google Maps的web程序感兴趣的话,这是一篇基础的入门(虽然那两个东东会比我们在这篇文章中提及的内容复杂的多).在这篇文章中,我使用PHP作为服务端语言,但AJAX能够和任何服务端语言进行很好的兼容,所以你尽可以选择你所钟爱的任何语言! 我们还是从我们上一篇文章的代码(喏,就

如何使用Ajax技术开发Web应用程序(2)

ajax|web|程序 在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据.在这篇文章中,我们将学会怎样对数据作更复杂的处理.作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的). 这篇文章是建立在上一篇文章中构造的示例代码的基础之上,所以如果你不能理解我们现在的代码,你可以回过头去读第一篇文章(sheneyan注:就在上面). 开始- 让我们开始我们的第一步:构造XML.我们准备写一个XML文档,

如何使用Ajax技术开发Web应用程序

ajax|web|程序 在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据.在这篇文章中,我们将学会怎样对数据作更复杂的处理.作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的). 这篇文章是建立在上一篇文章中构造的示例代码的基础之上,所以如果你不能理解我们现在的代码,你可以回过头去读第一篇文章(sheneyan注:就在上面). 开始- 让我们开始我们的第一步:构造XML.我们准备写一个XML文档,

如何使用Ajax开发Web应用程序(1)

ajax|web|程序 作者: Jonathan Fenocchi 时间:2005.10.25 译者:Sheneyan 英文原文:http://webreference.com/programming/javascript/jf/column12/index.html 在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制.虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向.在过去的几个月里,一个过去并不被广泛

如何使用ajax开发web应用程序

ajax|web|程序 作者: Jonathan Fenocchi时间:2005.10.25译者:Sheneyan英文原文:http://webreference.com/programming/javascript/jf/column12/index.html 在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制.虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向.在过去的几个月里,一个过去并不被广泛支持的

如何使用Ajax技术开发Web应用程序(1)

在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制.虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向.在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发者更多的自由开发先进的web应用程序.这些通过javascript来异步取得xml数据的应用程序,被亲切的称为"Ajax应用程序"(Asynchrono

如何使用Ajax技术开发Web应用程序(2)

在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据.在这篇文章中,我们将学会怎样对数据作更复杂的处理.作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的). 这篇文章是建立在上一篇文章中构造的示例代码的基础之上,所以如果你不能理解我们现在的代码,你可以回过头去读第一篇文章(sheneyan注:就在上面). 开始- 让我们开始我们的第一步:构造XML.我们准备写一个XML文档,它组织了一系列准备让ja

如何使用Ajax技术开发Web应用程序(1)

在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制.虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向.在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发者更多的自由开发先进的web应用程序.这些通过javascript来异步取得xml数据的应用程序,被亲切的称为"Ajax应用程序"(Asynchrono