打印和打印机设置函数.docx

上传人:b****6 文档编号:7283501 上传时间:2023-01-22 格式:DOCX 页数:20 大小:24.35KB
下载 相关 举报
打印和打印机设置函数.docx_第1页
第1页 / 共20页
打印和打印机设置函数.docx_第2页
第2页 / 共20页
打印和打印机设置函数.docx_第3页
第3页 / 共20页
打印和打印机设置函数.docx_第4页
第4页 / 共20页
打印和打印机设置函数.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

打印和打印机设置函数.docx

《打印和打印机设置函数.docx》由会员分享,可在线阅读,更多相关《打印和打印机设置函数.docx(20页珍藏版)》请在冰豆网上搜索。

打印和打印机设置函数.docx

打印和打印机设置函数

打印和打印机设置函数

打印函数用于在打印机上格式化输出数据。

这组函数与各对象的Print()函数有所不同,程序在使用这组函数时,需要使用PrintOpen()函数打开一个打印作业,然后根据需要执行这组函数中的一个或多个函数,最后使用PrintClose()函数关闭打印作业。

打印机设置函数用于得到当前的打印机名称,设置应用程序使用的打印机,得到系统中包含的所有打印机,显示打印机设置对话框等。

1、Print()

功能:

以当前字体在打开的打印作业中打印一行或多行文本。

语法:

Print(printjobnumber,{tab1,}string{,tab2})

参数:

printjobnumber:

用PrintOpen()函数打开的打印作业号;

tab1:

Integer类型,可选项,指定文本开始打印的位置,在开始打印字符串之前将打印光标移动到该位置,从打印区的左边界开始计算,以千分之一英寸为单位。

如果打印光标已经位于指定位置、或打印光标已经超过了指定位置、或省略了该参数,那么,Print()函数从打印光标的当前位置开始打印string:

string类型,指定要打印的字符串。

如果字符串中包括回车换行字符(~r~n),那么该字符串将被分成多行输出,但是,除第一行之外,其它行忽略tab1参数指定的起始打印位置;

tab2:

Integer类型,可选项,指定字符串打印结束后打印光标移动到的位置,从打印区的左边界开始计算,以千分之一英寸为单位。

如果打印光标已经超过了指定位置,那么Print()函数忽略该参数,打印光标位于已打印字符串的尾部。

如果省略了该参数,Print()函数把打印光标移动到下一行的起始位置;

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果任何参数的值为NULL,Print()函数返回NULL。

用法:

在打印作业中,PowerBuilder使用打印光标来跟踪打印位置。

打印光标保存了即将打印区域左上角的坐标。

使用Print()函数打印文本后,PowerBuilder自动更新打印光标。

PowerBuilder使用行距来决定打印出的两行文本之间的距离,行距与字符的高度成比例,缺省的行距是字符高度的1.2倍。

使用PrintSetSpacing()函数可以改变行距。

当Print()函数在下一行打印输出时,它把打印光标的x坐标设置为0、y坐标增加当前行距指示的数值。

由于每打印一行时Print()函数都自动调整打印光标的y坐标位置,因此,该函数会自动处理分页,因此,应用程序没有必要调用PrintPage()函数进行分页。

打印区由纸张的物理尺寸和边界空白决定,PrintSend()函数能够发送具体打印机的ESC控制序列,使用这个函数可以改变边界空白的大小。

另外,在打印开始之前,使用PrintDefineFont()和PrintSetFont()函数可以改变Print()使用的字体。

示例:

Thisexampleopensaprintjob,printsthestringSybaseCorporationinthedefaultfont,andthenstartsanewline:

longJob

//DefineablankpageandassignthejobanID

Job=PrintOpen()

//Printthestringandthenstartanewline

Print(Job,"SybaseCorporation")

...

PrintClose(Job)

Thisexampleopensaprintjob,printsthestringSybaseCorporationinthedefaultfont,tabs5inchesfromtheleftedgeoftheprintareabutdoesnotstartanewline:

longJob

//DefineablankpageandassignthejobanID

Job=PrintOpen()

//Printthestringbutdonotstartanewline

Print(Job,"SybaseCorporation",5000)

...

PrintClose(Job)

ThefirstPrintstatementbelowtabshalfaninchfromtheleftedgeoftheprintarea,printsthestringSybaseCorporation,andthenstartsanewline.ThesecondPrintstatementtabsoneinchfromtheleftedgeoftheprintarea,printsthestringDirectors:

andthenstartsanewline:

longJob

//DefineablankpageandassignthejobanID

Job=PrintOpen()

//Printthestringandstartanewline

Print(Job,500,"SybaseCorporation")

//Tab1inchfromtheleftedgeandprint

Print(Job,1000,"Directors:

")

...

PrintClose(Job)

ThefirstPrintstatementbelowtabshalfaninchfromtheleftedgeoftheprintareaprintsthestringSybaseCorporation,andthentabs6inchesfromtheleftedgeoftheprintareabutdoesnotstartanewline.ThesecondPrintstatementprintsthecurrentdateandthenstartsanewline:

longJob

//DefineablankpageandassignthejobanID

Job=PrintOpen()

//Printstringandtab6inchesfromtheleftedge

Print(Job,500,"SybaseCorporation",6000)

//Printthecurrentdateonthesameline

Print(Job,String(Today()))

...

PrintClose(Job)

InawindowthatdisplaysadatabaseerrormessageinaMultiLineEditmle_message,thefollowingscriptforaPrintbuttonprintsatitlewiththedateandtimeandthemessage:

longli_prt

li_prt=PrintOpen("DatabaseError")

Print(li_prt,"Databaseerror-"+String(Today(),"mm/dd/yyyy")&

+"-"+String(Now(),"HH:

MM:

SS"))

Print(li_prt,"")

Print(li_prt,mle_message.text)

PrintClose(li_prt)

2、PrintBitmap()

功能:

在打印区域的指定位置打印位图。

语法:

PrintBitmap(printjobnumber,bitmap,x,y,width,height)

参数:

printjobnumber:

用PrintOpen()函数打开的打印作业号;

bitmap:

string类型,指定要打印的位图文件的文件名;

x:

integer类型,指定位图起始打印位置的x坐标,以千分之一英寸为单位;

y:

integer类型,指定位图起始打印位置的y坐标,以千分之一英寸为单位;

width:

integer类型,指定位图的打印宽度,以千分之一英寸为单位。

如果该参数的值指定为0,那么按图像的原始宽度打印;

height:

integer类型,指定位图的打印高度,以千分之一英寸为单位。

如果该参数的值指定为0,那么按图像的原始高度打印。

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果任何参数的值为NULL,PrintBitmap()函数返回NULL。

用法:

执行PrintBitmap()函数后,打印光标的位置不变,依然停留在执行该函数前的位置上。

示例:

Thesestatementsdefineanewblankpageandthenprintthebitmapinfiled:

\PB\BITMAP1.BMPinitsoriginalsizeatlocation50,100:

longJob

//Defineanewblankpage.

Job=PrintOpen()

//Printthebitmapinitsoriginalsize.

PrintBitmap(Job,"d:

\PB\BITMAP1.BMP",50,100,0,0)

//SendthepagetotheprinterandcloseJob.

PrintClose(Job)

3、PrintCancel()

功能:

取消用PrintOpen()函数启动的打印作业。

语法:

PrintCancel(printjobnumber)

参数:

printjobnumber:

要取消的打印作业的作业号。

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果参数printjobnumber的值为NULL,PrintCancel()函数返回NULL。

用法:

PrintCancel()函数取消指定的打印作业,删除相应的打印池文件,关闭打印作业,所以,应用程序执行了PrintCancel()函数之后,不需要再执行PrintClose()函数关闭打印作业了。

示例:

Inthisexample,ascriptforaPrintbuttonopensaprintjobandthenopensawindowwithacancelbutton.Iftheuserclicksonthecancelbutton,itsscriptsetsaglobalvariablethatindicatesthattheuserwantstocancelthejob.AftereachprintingcommandinthePrintbutton'sscript,thecodecheckstheglobalvariableandcancelsthejobifitsvalueisTRUE.

Thedefinitionoftheglobalvariableis:

booleangb_printcancel

ThescriptforthePrintbuttonis:

longjob,li

gb_printcancel=FALSE

job=PrintOpen("TestPageBreaks")

IFjob<1THEN

MessageBox("Error","Can'topenaprintjob.")

RETURN

ENDIF

Open(w_printcancel)

PrintBitmap(Job,"d:

\PB\bitmap1.bmp",5,10,0,0)

IFgb_printcancel=TRUETHEN

PrintCancel(job)

RETURN

ENDIF

...//Additionalprintingcommands,

...//includingcheckinggb_printcancel

PrintClose(job)

Close(w_printcancel)

Thescriptforthecancelbuttoninthesecondwindowis:

gb_printcancel=TRUE

Close(w_printcancel)

4、PrintClose()

功能:

关闭打印作业并把打印页面发送到打印机上。

语法:

PrintClose(printjobnumber)

参数:

printjobnumber:

要关闭的打印作业的作业号。

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果参数printjobnumber的值为NULL,PrintClose()函数返回NULL。

用法:

应用程序使用PrintOpen()函数启动打印作业后,必须使用PrintClose()在完成打印任务后关闭打印作业,或根据需要使用PrintCancel()函数取消打印作业。

示例:

Thisexampleopensaprintjob,whichcreatesablankpage,printsabitmaponthepage,thensendsthecurrentpagetotheprinterorspoolerandclosesthejob:

ulongJob

//Beginanewjobandanewpage.

Job=PrintOpen()

//Printthebitmapinitsoriginalsize.

PrintBitmap(Job,d:

\PB\BITMAP1,5,10,0,0)

//SendthepagetotheprinterandcloseJob.

PrintClose(Job)

5、PrintDataWindow()

功能:

打印数据窗口控件的内容,用该函数可以在一个打印作业中打印多个数据窗口控件的内容,每个都从新的一页开始打印。

语法:

PrintDataWindow(printjobnumber,dwcontrol)

参数:

printjobnumber:

用PrintOpen()函数打开的打印作业号;

dwcontrol:

要打印其内容的数据窗口控件名或子数据窗口控件名。

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果参数printjobnumber的值为NULL,PrintDataWindow()函数返回NULL。

用法:

应用程序通过多次执行PrintDataWindow()函数可以在一个打印作业中一次打印多个数据窗口的

内容,并且每个数据窗口都从新的一页开始打印。

当数据窗口的表现风格为RichTextEdit时,数据窗口中的每一行都在新的一页上开始打印。

需要注意的是,PrintDataWindow()函数在打印数据窗口时使用数据窗口本身定义的字体以及风格,使用PrintDefineFont()和PrintSetFont()函数为当前作业定义的字体不起作用。

示例:

ThesestatementssendthecontentsofthreeDataWindowcontrolstothecurrentprinterinasingleprintjob:

longjob

job=PrintOpen()

//EachDataWindowstartsprintingonanewpage.

PrintDataWindow(job,dw_EmpHeader)

PrintDataWindow(job,dw_EmpDetail)

PrintDataWindow(job,dw_EmpDptSum)

PrintClose(job)

6、PrintDefineFont()

功能:

定义打印作业使用的字体,对每个打印作业PowerBuilder支持八种字体。

语法:

PrintDefineFont(printjobnumber,fontnumber,facename,height,weight,fontpitch,fontfamily,

italic,underline)

参数:

printjobnumber:

用PrintOpen()函数打开的打印作业号;

fontnumber:

指定赋给当前定义字体的编号,有效值在1到8之间facename:

string类型,指定字体名称,该字体应该是你的打印机支持的字体,比如“宋体”;

height:

Integer类型,使用正值指定字体的高度,以千分之一英寸为单位;使用负值指定字体点数,比如,-18代表18点。

一般来说,使用点数更精确些;

weight:

指定字体的磅数,正常字体为400磅,粗体为700磅;

fontpitch:

FontPitch枚举类型,指定字体标准。

有效取值为:

Default!

--缺省值;

Fixed!

--固定形式;

Variable!

--可变形式;

fontfamily:

FontFamily枚举类型,指定字体系列。

有效取值为:

AnyFont!

、Decorative!

、Modern!

、Roman!

、Script!

、Swiss!

italic:

boolean类型,指定是否使用斜体样式。

有效取值为:

TRUE--使用斜体样式;

FALSE--不使用斜体样式;

缺省值为FALSE;

underline:

boolean类型,指定是否加下划线。

有效取值为:

TRUE--加下划线;

FALSE--不加下划线;

缺省值为FALSE。

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果任何参数的值为NULL,PrintDefineFont()函数返回NULL。

用法:

在一个打印作业中,应用程序能够最多同时定义8种字体。

当应用程序需要使用更多的字体时,可以在使用了某个字体号输出内容后使用PrintDefineFont()函数将该字体号对应的字体更换为其它字体。

示例:

Thesestatementsdefineanewblankpage,andthendefineprintfont1forJobasCourier10Cpi,18point,normalweight,defaultpitch,Decorativefont,withnoitalicorunderline:

longJob

Job=PrintOpen()

PrintDefineFont(Job,1,"Courier10Cpi",-18,400,Default!

Decorative!

FALSE,FALSE)

7、PrintLine()

功能:

在当前打印页上绘出指定厚度的一条线。

语法:

PrintLine(printjobnumber,x1,y1,x2,y2,thickness)

参数:

printjobnumber:

用PrintOpen()函数打开的打印作业号;

x1:

integer类型,指定直线起点的x坐标,以千分之一英寸为单位;

y1:

integer类型,指定直线起点的y坐标,以千分之一英寸为单位;

x2:

integer类型,指定直线终点的x坐标,以千分之一英寸为单位;

y2:

integer类型,指定直线终点的y坐标,以千分之一英寸为单位;

thickness:

integer类型,指定直线的厚度,以千分之一英寸为单位。

返回值:

Integer。

函数执行成功时返回1,发生错误时返回-1。

如果任何参数的值为NULL,PrintLine()函数返回NULL。

用法:

应用程序执行了PrintLine()函数后,该函数并不改变打印光标的位置。

示例:

Thesestatementsstartanewpageinaprintjobandthenprintalinestartingat0,5andendingat7500,5withathicknessof10/1000ofaninch:

longJob

Job=PrintOpen()

...//variousprintcommands

//Startanewpage.

PrintPage(Job)

//Printalineatthetopofthepage

PrintLine(Job,0,5,7500,5,10)

...//Otherprinting

PrintClose(Job)

8、PrintOpen()

功能:

启动打印作业并返回作业号。

语法:

PrintOpen({jobname})

参数:

jobname:

string类型,可选项,指定要打开打印作业的名称,该名称将显示在打印管理器窗口中。

返回值:

Long。

函数执行成功时返回打印作业号,发生错误时返回-1。

如果任何参数的值为NULL,

PrintOpen()函数返回NULL。

用法:

应用程序执行PrintOpen()函数后,启动新的打印作业并走纸到下一页,同时将打印机缺省字体设置为该打印作业的字体。

打印光标的位置位于打印区的左上角。

其它同组的打印函数使用PrintOpen()函数返回的作业号来标识作业。

需要注意的是,使用PrintOpen()函数打开打印作业、使用同组的其它函数完成打印任务后,必须使用PrintClose()关闭打印作业,或根据需要使用PrintCancel()函数取消打印作业。

示例:

Thisexampleopensajobbutdoesnotgiveitaname:

ulongli_job

li_job=PrintOpen()

Thisexampleopensajobandgivesitaname:

ulongli_job

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1