其他语言

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

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


发布日期:2018年07月29日
 
Delphi开发WEB应用程序打印组件[2]

调用

在脚本中调用这个组件的方法:

()利用createobject函数创建一个打印对象

()调用prtcustompage来指定定制的纸张的大小(以毫米为基本单位)如果不是定制的纸张则不需要调用这个过程(即以打印默认的纸张大小进行打印)

()调用prtstart进行打印机的初始化工作如果打印机初始化成功则会将isinit属性置为真表示初始化成功;否则表示打印机正在忙或有别的应用程序正在使用打印机初始化不能成功

()判断isinit标志如果为真则继续执行打印段

()执行打印段可以在利用打印机画线和在指定位置输出文字

(注:在组件接中的所有位置单位都是毫米例?prtobjectprtdrawlien

表示从左上角()毫米到右下角()毫米处画一条直线)

()利用prtend结束打印任务

< script language=vbscript>

< !

sub testprtobject

dim prtobject

set prtobject=createobject(prttestprttest)

prtobjectprtcustompage

prtobjectprtstart

if prtobjectisinit then

prtobjectprtdrawline

prtobjectprtdrawline

prtobjectprtsetfont 宋体

prtobjectprttextrect web应用程序打印测试

prtobjectprtend

end if

set prtobject=nothing

end sub

testprtobject()

//>

< /script>

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

代码解析

在这个组件中我们所要解决的几个问题:

()在delphi的应用程序设计中自定义打印纸张的设置delphi中自身带了一个quickreport的打印设计程序这个程序在一定的程度上方便了打印的设计但这个设计程序对于自定义纸张的设定和打印支持却不是很好因此在这个组件中我们采用手工代码来设定自定义纸张大小

function tprttestinitprintpaper:boolean;

var

device:array [cchdevicename] of char;

driver:array [(max_path)] of char;

port:array [] of char;

hdmode:thandle;

pdmode:pdevmode;

begin

result:=true;

if prtiscustompaper then

begin

{设置打印机段}

printergetprinter(devicedriverporthdmode);

if hdmode<> then begin

try

pdmode:=globallock(hdmode);

if pdmode<>nil then begin

//设定打印的方向为纵向或横向

if paperorientation<> then

pdmode^dmorientation:=dmorient_landscape

else pdmode^dmorientation:=dmorient_portrait;

//设置拷贝份数为

pdmode^dmcopies:=;

//以毫米为单位的纸张大小

pdmode^dmpaperlength:= paperheight*;

pdmode^dmpaperwidth:=paperwidth*;

//设置纸张类型为用户自定义

pdmode^dmpapersize:=dmpaper_user;

end;

globalunlock(hdmode);

printersetprinter(devicedriverporthdmode);

except

result:=false;

end;

end else begin

result:=false;

end;

end;

end;

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

[] [] []

               

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

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