打印本文 打印本文 关闭窗口 关闭窗口
关于WEB应用程序的打印组件开发初探
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1467  更新时间:2009/4/23 18:25:57  文章录入:mintao  责任编辑:mintao
Function TPrtTest3.MMtoPrintPixel(InputPoint:TPoint):TPoint;

Begin

   Result.x:=MMtoPrintPixelX(InputPoint.x);

   Result.y:=MMtoPrintPixelY(InputPoint.y);

end;

 

Function TPrtTest3.MMtoPrintPixelX(InputX:Integer):Integer;

Begin

   if QueryPrintlogPixel then

    Begin

       pDDIx:=GetDeviceCaps(Printer.Handle,logPixelsX);

       pDDIy:=GetDeviceCaps(Printer.Handle,logPixelsY);

       QueryPrintlogPixel:=False;

    end;

   Result:=Trunc(InputX/253.8*pDDIx+0.5);

end;

 

Function TPrtTest3.MMtoPrintPixelY(InputY:Integer):Integer;

Begin

   if QueryPrintlogPixel then

    Begin

       pDDIx:=GetDeviceCaps(Printer.Handle,logPixelsX);

       pDDIy:=GetDeviceCaps(Printer.Handle,logPixelsY);

       QueryPrintlogPixel:=False;

    end;

   Result:=Trunc(InputY/253.8*pDDIy+0.5);

end;

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

int GetDeviceCaps(

    HDC hdc,    // 设置的句柄

    int nIndex     // 查询的设备参数。 

   );

其中,HDC为想要查询的打印机的句柄,logPixelsX、logPixelsY表示要查询的内容是打印机横向、纵向的每英寸的像素点数。

 

六、组件的注册

  如果是在Delphi编写了这个组件的,则可以选择Run菜单下的Register ActiveX Server来进行这个组件的注册。

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

  regsvr32  < 文件名 >        注册一个ActiveX控件

  regsvr32  /u  < 文件名 >    解除某ActiveX控件的注册

 

七、其它应用

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

因为,组件是采用COM的方式运行,所以,我们还在Window Script Hosts(WSH)中应用这个组件,结合WSH原有(通过ADO对象)访问外部数据库的能力,就可能做出在WINDOWS下功能强大的WSH的脚本程序。

源程序请到程序员杂志频道下载.

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口