Database 版 (精华区)
发信人: lizhenguo (夸父·追日), 信区: Database
标 题: 5
发信站: 哈工大紫丁香 (2001年09月26日18:37:29 星期三), 站内信件
DataWindow的打印输出(续)
打印控制函数
PowerBuilder提供了一组打印控制函数来控制要交给打印机打印的对象。第一个函数Pr
intOpen()在这章的前面我们已介绍过了,其它还有:
PrintCancel(print_job_number)
这个函数将中止打印作业号所打印的作业,不发送任何内容给打印机。
datawindowcontrol.PrintCancel()
这个函数与上一函数的区别是:这个函数取消的是用Datawindowcontrol.Print()提交的
作业。
PrintClose(print_job_number)
这个函数将关闭指定的打印作业并且把它发给打印机(或者假脱机程序)。为了避免挂起
打印作业,所有打开的打印作业都应在应用的结束前被关闭或取消。
PrintDefineFont(print_job_number,fontnumber,facename,height,weight,font-pitc
h,fontfamily,italic,underline)
你可以用这个函数定义字型。Power-Builder允许在一个打印作业中使用八种字型,用这
个函数可定义其中的任一个。这个字型所属的打印作业号由Print_job_number参数指定
,font_number参数是这个打印作业所采用的字型号(1-8)。其余的参数描述了字型如何显
示,是否斜体字、粗体和下划线等。facename参数是一个包含了你所定义的字体名字的字
符串(例:courier 100CPI)。height参数是你所需的以千分之一寸为单位的字体的高度(
例:250将是一个18点阵courier 10 CPI字体),height参数也可使用一负值来表示点阵数
指定点尺寸(例:-18是18点阵)。weight参数值是您所要的字型的笔画权值(例:400是平常
正文,700是粗体)。fontpitch参数是一个枚举数据类型,它指定了字体的间距(Default!
,Fixed!或variable!);fontfamily参数也是一个枚举类型,指定了字体系列(AnyFont!,D
ecorative!,Mod-ern!,Roman!,Script!,Swiss!)。这两种参数只在基于Windows的操作系
统中使用,在Macintosh等机器中不能使用。italic参数是一个布尔型变量,指定字体是斜
体(True)或非斜体(False),underline参数也是一个布尔值,用法同上。
PrintOpen()
这个函数已在这章的开始讲述过了,它定义一个打印作业以便将所有的打印项成组发送给
打印机。它的返回值是唯一的打印作业ID,如果返回值为负,则意味着产生错误。
PrintPage(print_job_number)
这个函数将指定的打印作业的当前页传送给打印机(或假脱机程序),并另起一页用于之后
的打印集。
PrintSend(print_job_number,string{,zero_character})
这个函数在打印作业中发送一个特定的字符串给打印机。这个字符串一般是一个包含转
义字符的命令串用来启动或操作打印机。这些打印机的控制代码因打印机的不同而不同
,您应查询您的打印机手册来得到正确的代码。
这个与打印机进行通信的字符串应是一个ASCII码集,并以ASCII码0来结束。如果你需要
发送ASCII码0,你可以用另外的一个字符来替代0,给定的这个替代字符的ASCII值由可选
参数zero-character来指定。这个函数一般用于改变纸的定向(Landscape或por-trait)
或者改变打印用的纸盘等。
PrintSetFont(print_job_number,fontnumber)
这个函数设置当前打印机字体,它是你使用PrintDefineFont()函数中定义的八个字体中
的一个。
PrintSetSpacing(print_job_number,spacing)
这个函数使用Spacing参数来决定正文行之间的行距。这个值乘以当前字体高得到行距,
缺省值是1.2。
PrintSetup()
这个函数调用Windows的Print Setup对话框,实际显示的Setup窗口依赖于你所安装的打
印机驱动程序。
PrintWidth(print_job_number,string)
这个函数的sting参数返回字符串的宽度(以千分之一寸为单位)。返回值的大小是依赖于
当前选择的字体。
PrintX(print_job_number)
这个函数返回当前打印光标的X坐标(水平)值。
PrintY(print_job_number)
这个函数返回当前打印光标的Y坐标(垂直)值。
除非特别说明,上述函数的返回值1意味着成功,-1意味着失败。
DataWindow控件的打印属性
使用modify函数,我们可以改变DataWindow的打印属性。在打印DataW-indow之前,我们可
以调用如图所示的窗口,从而得到我们想让用户设置的参数。这个窗口在PowerBuilder
Enterprise的实例库中,您也可以在直接调用它前对其显示界面进行汉化和作适当修改。
例如,我们使用下面语句来改变我们想打印的份数。
dw_data..Modify("DataWindow.Print.Copies=3")
你可以使用PowerBuilder Enterprise打包软件DWSYN40.EXE----DataWindow语法生成器
来建立Modify语句。
下面所列的可以修改的参数全部以DataWindow.print为前缀,后接这个属性。
Collate=Yes or No(缺省为no,不作校对)
这个属性用来指示是否要对打印进行校对。校对通常较慢,因为整个打印过程必须反复几
次以得到一个校对后的结果。
Color=1(彩色)or 2(单色)
这个属性指示传送给打印输出的是彩色(如果你有一台彩色打印机)还是单色。
Columns=<an integer>(缺省为1)
这个属性用来指示DataWindow以报纸风格打印在一页上的栏的数量。
Columns.Width=<an integer>
这个属性指示以报纸风格打印的栏的宽度(基于为DataWindow指定的单位)。
Copies=<an integer>
这个属性指示你所需的打印的数量。
DocumentName=<a string>
这个属性可以让你为文件设置一个名字。这个名字在DataWindow传送给打印机时在打印
序列中出现。
Duplex=1(单一)or 2(水平)or 3(垂直)
这个属性指示打印输出的方向。
Filename=<filename string>
这个属性仅当把DataWindow输出为一个文件时才有用。这个属性包含的字符串是将在磁
盘中存储的文件的名字。
Margin.Bottom=<an integer>
这个属性为一整型指示页面下部空白的宽度(用DataWindow指定的单位)
Margin.Left=<an integer>
功能与Margin.Botton相同,但指示的是左侧空白宽度。
Margin.Right=<an integer>
功能与Mangin.Bottom相同,但指示的是右侧空白宽度。
Margin.Top=<an integer>
功能与Mangin.Bottom相同,但指示的是顶端空白宽度。
Orientation=0(打印机的缺省设置)或2(横向打印)或3(纵向打印)这个属性用来指示打印
定向。你可以使用打印机缺省设置,或者设置成Landscape或Portrait模式,覆盖缺省的打
印设置。
Page.Range=<page range string>
这个属性为一字符串指明你要打印的页数。在字符串中的数字用逗号分隔,或者数字之间
用由一横线分隔表示一范围或两者同时使用,例如:"1,2,3,6-12",空字符串表示要打印所
有的页。
Page.RangeInclude=0(全部打印)或1(打印奇数页)或2(打印偶数页)
这个属性用来指示在Page.Range指示的范围中哪些页要打印。你可以先选择打印偶数页
,然后将纸放入打印机中,再选择奇数页打印。这一功能像在打印书时那样,需在纸的两面
打印时非常有用。
Paper.Size=<an integer>
这一属性用来指示打印纸的尺寸。可接受的值如下:
0-缺省
1-Letter 8 1/2 x 11 in
2-LetterSmall 8 1/2 x 11 in
3-Tabloid 17 x 11 inches
4-Ledger 17 x 11 in
5-Legal 8 1/2 x 14 in
6-Statement 5 1/2 x 8 1/2 in
7-Executive 7 1/4 x 10 1/2 in
8-A3 297 x 420 mm
9-A4 210 x 297 mm
10-A4 Small 210 x 297 mm
11-A5 148 x 210 mm
12-B4 250 x 354
13-B5 182 x 257 mm
14-Folio 8 1/2 x 13 in
15-Quarto 215 x 275 mm
16-10 x 14 in
17-11 x 17 in
18-Note 8 1/2 x 11 in
19-Envelope #9 3 7/8 x 8 7/8
20-Envelope #10 4 1/8 x 9 1/2
21-Envelope #11 4 1/2 x 10 3/8
22-Envelope #12 4 x 11 1/276
23-Envelope #14 5 x 11 1/2
24-C size sheet
25-D size sheet
26-E size sheet
27-Envelope DL 110 x 220 mm
28-Envelope C5 162 x 229 mm
29-Envelope C3 324 x 458 mm
30-Envelope C4 229 x 324 mm
31-Envelope C6 114 x 162 mm
32-Envelope C65 114 x 229 mm
33-Envelope B4 250 x 353 mm
34-Envelope B5 176 x 250 mm
35-Envelope B6 176 x 125 mm
36-Envelope 110 x 230 mm
37-Envelope Monarch 3.875 x 7.5 in
38-6 3/4 Envelope 3 5/8 x 6 1/2 in
39-US Std Fanfold 14 7/8 x 11 in
40-German Std Fanfold 8 1/2 x 12 in
41-German Legal Fanfold 8 1/2 x 13 in
Paper.Source=<an integer>
这一属性是一个整型值,指明纸的来源。可接受的值如下:
0-Default
1-Upper
2-Lower
3-Middle
4-Manual
5-Envelope
6-Envelope manual
7-Auto
8-Tractor
9-Smallfmt
10-Largefmt
11-Large capacity
14-Cassette
Preview=Yes(进入打印预览状态)或No(缺省-退出打印预览状态)
这个属性允许您的DataWindow进入和退出打印预览状态。这种状态可以所见即所得地看
到用户即将打印的结果。
Preview.Rulers=Yes(显示标尺)或No(缺省-不显示标尺)
这个属性是指Print Preview状态下,是否要在DataWindow对象上显示标尺。
Preview.Zoom=<an integer>
这个属性是Print Preview状态下,为预览的DataWindow指定一个放缩因子。缺省值为10
0%(Preview.zoom=100%)
Prompt=Yes(缺省-显示提示)或No(无提示)
这个属性可以控制PowerBuilder显示一个允许用户在作业打印前取消打印作业的提示。
Quality=0(缺省)or 1(高)or 2(适中)or 3(低)or 4(草稿)
这个属性可以选择打印输出的质量。
Scale=<an integer>
这个属性指定打印输出放大或缩小的比例。
制作一个屏幕打印:如何打印全屏
PowerBuilder 4.0的一个新特征是可以把屏幕图像提交打印作业,在纸上的任一点打印屏
幕。我们使用PrintScreen()函数实现这一功能。
PrintScreen()的语法如下:
PrintScreen(print_job_number,x,y{,width,height})
执行这一函数,在指定的打印作业中将当前屏在由X,Y参数(千分之一寸为单位)指定的坐
标处打印。width和height参数指示你所要的打印屏幕的宽和高。最后这两个参数是可选
的,如果缺省,屏幕将按初始的宽度和度打印。
--
《列子·汤问》:“夸父不量力,欲追日影,逐之于隅谷之际。渴欲 得饮,赴饮河渭
。河渭不足,将走北饮大泽。未至,道渴而死。”
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.229.154]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.053毫秒