四调用
在脚本中调用这个组件的方法:
()利用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应用程序打印组件()
[] [] []