安全中国首页 > 编程中心 > Delphi编程
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

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

更新时间:2008-8-20 14:58:29
责任编辑:ShellExp
热 点:

 四、调用

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

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

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

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

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

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

  (注:在组件接中的所有位置单位都是0.1毫米。例?prtobject.prtdrawlien 0,0,1000,1000

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

  (6)、利用prtend结束打印任务。

  < script language=vbscript>

  < !--

  sub testprtobject

  dim prtobject

  set prtobject=createobject(prttest3.prttest3)

  prtobject.prtcustompage 1000,1000

  prtobject.prtstart

  if prtobject.isinit then

  prtobject.prtdrawline 0,0,1000,1000,1

  prtobject.prtdrawline 500,700,1000,1000,1

  prtobject.prtsetfont 宋体,16

  prtobject.prttextrect 2,2,0,0,1000,500,web应用程序打印测试

  prtobject.prtend

  end if

  set prtobject=nothing

  end sub

  testprtobject()

  //-->

  < /script>


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

  五、代码解析

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

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


  function tprttest3.initprintpaper:boolean;

  var

  device:array [0..cchdevicename-1] of char;

  driver:array [0..(max_path-1)] of char;

  port:array [0..32] of char;

  hdmode:thandle;

  pdmode:pdevmode;

  begin

  result:=true;

  if prtiscustompaper then

  begin

  {设置打印机段}

  printer.getprinter(device,driver,port,hdmode);

  if hdmode<>0 then begin

  try

  pdmode:=globallock(hdmode);

  if pdmode<>nil then begin

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

  if paperorientation<>0 then

  pdmode^.dmorientation:=dmorient_landscape

  else pdmode^.dmorientation:=dmorient_portrait;

  //设置拷贝份数为1份.

  pdmode^.dmcopies:=1;

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

  pdmode^.dmpaperlength:= paperheight*10;

  pdmode^.dmpaperwidth:=paperwidth*10;

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

  pdmode^.dmpapersize:=dmpaper_user;

  end;

  globalunlock(hdmode);

  printer.setprinter(device,driver,port,hdmode);

  except

  result:=false;

  end;

  end else begin

  result:=false;

  end;

  end;

  end;


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

 
学习软件编程开发技术,推荐加入以下软件编程培训班:
易语言软件编程培训班(简单易学)  Delphi软件编程培训班  VC++软件编程培训班
VB软件编程培训班  JAVA高端编程就业研发班

学习网站开发制作技术,推荐加入以下网站开发培训班:
ASP.net网站开发项目实战班  ASP语言网站建设培训班

学习网络安全入侵防护技术,推荐加入以下技术培训班:
大型网络安全入侵防护班  网站脚本程序全方位安全检测班

学习网络管理、网吧运营维护技术(网管),推荐加入以下培训班:
大型网吧技术管理人才特训班  Linux网络嵌入架构工程师培训班

学习专项特殊技术,推荐加入以下专项技术培训班:
软件与游戏外挂脱壳破解班(逆向工程)  赚钱王道-网赚技能培训班  Flash动画设计师就业特训班

 
相关编程
一日一文章
 
一日一软件
一日一动画