其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi开发WEB应用程序打印组件[3]


发布日期:2022年08月15日
 
Delphi开发WEB应用程序打印组件[3]

()打印位置的确定:由于组件是以图形方式进行打印这就使得我们可以精确指向打印文件的输出位置以便于进行对某些票据的套打但这样就产生一个问题我们是以打印的像素位置指定输入位置还是以打印尺寸来指定位置显然利用像素来输出打印位置对于编制程序来说是比较方便的但由于一般用户对像素的概念并不理解因此会带来使用上的困难;而且每一种打印机的分辩率是不一样的因此会出现在不同打印机上打印的效果不一样的问题而以打印尺寸来指定位置并在程序中妥善加以处理就不会有上面的问题具体的处理方法是由用户输入尺寸位置然后在打印时首先取得当前打印机的分辩率(注意:分辨率是以每英寸多少像素为单位的)再计算得出实际输入的像素位置后进行打印这样就可以使得组件更加实用而且保持打印幅面的一致具体的函数如下

function tprttestmmtoprintpixel(inputpoint:tpoint):tpoint;

begin

resultx:=mmtoprintpixelx(inputpointx);

resulty:=mmtoprintpixely(inputpointy);

end;

function tprttestmmtoprintpixelx(inputx:integer):integer;

begin

if queryprintlogpixel then

begin

pddix:=getdevicecaps(printerhandlelogpixelsx);

pddiy:=getdevicecaps(printerhandlelogpixelsy);

queryprintlogpixel:=false;

end;

result:=trunc(inputx/*pddix+);

end;

function tprttestmmtoprintpixely(inputy:integer):integer;

begin

if queryprintlogpixel then

begin

pddix:=getdevicecaps(printerhandlelogpixelsx);

pddiy:=getdevicecaps(printerhandlelogpixelsy);

queryprintlogpixel:=false;

end;

result:=trunc(inputy/*pddiy+);

end;

getdevicecaps:为windows系统中取得指定设备信息的函数函数的原型如下

int getdevicecaps(

hdc hdc // 设置的句柄

int nindex // 查询的设备参数

);

其中hdc为想要查询的打印机的句柄logpixelsxlogpixelsy表示要查询的内容是打印机横向纵向的每英寸的像素点数

Delphi开发WEB应用程序打印组件()

组件的注册

如果是在delphi编写了这个组件的则可以选择run菜单下的register activex server来进行这个组件的注册

对于不开发机器的注册则可使用:点击开始运行;在运行对话框中输入以下命令:

regsvr < 文件名 > 注册一个activex控件

regsvr /u < 文件名 > 解除某activex控件的注册

其它应用

组件的扩展:以上列出的仅仅是编写这个组件的框架功能比较有限根据需要我们还可以添加上画圆椭圆矩形甚至图片等功能有兴趣的读者就请自行添加

因为组件是采用com的方式运行所以我们还在window script hosts(wsh)中应用这个组件结合wsh原有(通过ado对象)访问外部数据库的能力就可能做出在windows下功能强大的wsh的脚本程序

[] [] []

               

上一篇:delphi 缓沖画图(内存画图)解决画图闪烁问题[1]

下一篇:Delphi开发WEB应用程序打印组件[2]