知识大全 Delphi开发WEB应用程序打印组件[2]

Posted

篇首语:一知半解的人,多不谦虚;见多识广有本领的人,一定谦虚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi开发WEB应用程序打印组件[2]相关的知识,希望对你有一定的参考价值。

Delphi开发WEB应用程序打印组件[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  四 调用

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

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

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

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

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

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

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

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

  ( ) 利用prtend结束打印任务

  < script language=vbscript>

  < !

  sub testprtobject

  dim prtobject

  set prtobject=createobject(prttest prttest )

  prtobject prtcustompage

  prtobject prtstart

  if prtobject isinit then

  prtobject prtdrawline

  prtobject prtdrawline

  prtobject prtsetfont 宋体

  prtobject prttextrect web应用程序打印测试

  prtobject prtend

  end if

  set prtobject=nothing

  end sub

  testprtobject()

  // >

  < /script>

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

  五 代码解析

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

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

  function tprttest initprintpaper: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

  设置打印机段

  printer getprinter(device driver port hdmode);

  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);

  printer setprinter(device driver port hdmode);

  except

  result:=false;

  end;

  end else begin

  result:=false;

  end;

  end;

  end;

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

[ ]  [ ]  [ ]  

 

cha138/Article/program/Delphi/201311/24793

相关参考