Flash Player 7。
my_pj
.addPage(target
[,printArea
] [,options
] [,frameNumber
])
target
要打印的影片剪辑的级别或实例名称。传递一个数字来指定级别(例如,0 是 _root
影片)或传递一个字符串(括在引号中)来指定影片剪辑的实例名称。
printArea
一个指定要打印的区域的可选对象,格式如下:
{xMin:topLeft
, xMax:topRight
, yMin:bottomLeft
, yMax:bottomRight
}
您为 printArea
指定的坐标表示屏幕像素,这些屏幕像素相对于 _root
影片(如果 target
= 0)的注册点或 target
指定的级别或影片剪辑的注册点。您必须提供所有四个坐标。宽度 (xMax-xMin
) 和高度 (yMax-yMin
) 必须都大于 0。
磅是用于打印的度量单位,像素是屏幕的度量单位;一磅的大小等于一个像素的大小。您可以使用以下换算公式将英寸或厘米转换为缇、像素或磅(1 缇为 1/20 像素):
注意:如果以前曾使用 print()、printAsBitmap()、printAsBitmapNum() 或 printNum() 从 Flash 进行打印,则使用了 #b
帧标签来指定打印区域。当使用 addPage()
方法时,您必须使用 printArea
参数来指定打印区域;#b
帧标签将被忽略。
如果省略了 printArea
参数或错误地传递了该参数,则将打印 target
的整个舞台区域。如果不想为 printArea
指定值,但想为 options
或 frameNumber
指定值,则为 printArea
传递 null
。
options
一个可选参数;指定是作为矢量打印还是作为位图打印,格式如下:
{printAsBitmap:Boolean
}
默认情况下,将以矢量格式打印页。若要作为位图打印 target
,则为 printAsBitmap 传递 true
。默认值是 false
,该值表示要求进行矢量打印。当确定要使用的值时,请记住以下建议:
{printAsBitmap:true}
以包括任何透明和色彩效果。{printAsBitmap:false}
以较高品质的矢量格式打印内容。如果省略或错误地传递了 options
,则执行矢量打印。如果您不想为 options
指定值,但想为 frameNumber
指定值,则为 options
传递 null
。
frameNumber
一个可选数字,用于指定要打印的帧;请注意,将不调用该帧上的任何动作脚本。如果省略此参数,则打印 target
中的当前帧。
注意:如果以前曾使用 print()、printAsBitmap()、printAsBitmapNum() 或 printNum() 从 Flash 进行打印,则可能在多个帧上使用了 #p
帧标签指定要打印哪些页。若要使用 PrintJob.addPage()
打印多个帧,您必须对每个帧发出 PrintJob.addPage()
命令;#p
帧标签将被忽略。有关以编程的方式实现此目的的方法,请参见本条目稍后部分中的示例。
如果页被成功发送到打印后台处理程序,则为布尔值 true
;否则为 false
。
方法;将指定的级别或影片剪辑作为单个页发送到打印后台处理程序。在使用此方法之前,您必须使用 PrintJob.start();在对打印作业调用了一次或多次 PrintJob.addPage()
之后,您必须使用 PrintJob.send() 将经过后台处理的页发送到打印机。
如果此方法返回 false
(例如,如果您未调用 PrintJob.start()
或者用户取消了打印作业),则对 PrintJob.addPage()
的任何后续调用都将失败。但是,如果此前对 PrintJob.addPage()
的调用成功,则结束的 PrintJob.send()
命令会将经成功后台处理的所有页发送到打印机。
如果为 printArea
传递了一个值,则 xMin
和 yMin
坐标对应于页上可打印区域的左上角(坐标 0,0);可打印区域是由 PrintJob.start()
设置的 pageHeight
和 pageWidth
属性确定的。因为打印输出会和页上可打印区域的左上角对齐,所以如果 printArea
中定义的区域大于页上的可打印区域,则打印输出在右边和/或底部会被截断。如果没有为 printArea
传递值并且舞台大于可打印区域,则发生同样类型的截断操作。
如果要在打印前对影片剪辑进行缩放,可在调用此方法前设置其 MovieClip._xscale 和 MovieClip._yscale 属性,并在打印后将它们设回原始值。影片剪辑的缩放与 printArea
无关。也就是说,如果指定打印大小为 50 x 50 像素的区域,则将打印 2500 像素。如果对影片剪辑进行了缩放,同样会打印 2500 像素,但是将以缩放的大小进行打印。
Flash Player 打印功能支持 PostScript 和非 PostScript 打印机。非 PostScript 打印机将矢量转换成位图。
下面的示例说明了发布 addPage()
命令的多种方式。
my_btn.onRelease = function() { var pageCount = 0; var my_pj = new PrintJob(); if (my_pj.start()) { // 以矢量格式打印 _root 影片的全部当前帧 if (my_pj.addPage(0)) { pageCount++; // 从 0,0 开始,以矢量格式打印 _root 影片当前帧的 // 400 像素宽 500 像素高的区域 if (my_pj.addPage(0, {xMin:0,xMax:400,yMin:0,yMax:500})) { pageCount++; // 从 0,0 开始,以位图格式打印 _root 影片第 1 帧的 // 400 像素宽 500 像素高的区域 if (my_pj.addPage(0, {xMin:0,xMax:400,yMin:0,yMax:500}, {printAsBitmap:true}, 1)) { pageCount++; // 从 0,0 右侧 50 像素、下方 70 像素开始, // 以矢量格式打印级别 5 的第 4 帧的 // 500 像素宽 600 像素高的区域 if (my_pj.addPage(5, {xMin:50,xMax:550,yMin:70,yMax:670},null, 4)) { pageCount++; // 从 0,0 开始,以位图格式打印 // “dance_mc”影片剪辑的第 3 帧的 // 400 像素宽 400 像素高的区域 if (my_pj.addPage("dance_mc", {xMin:0,xMax:400,yMin:0,yMax:400},{printAsBitmap:true}, 3)) { pageCount++; // 从 0,0 开始,以矢量格式打印 // “dance_mc”影片剪辑的第 3 帧的 400 像素宽 600 像素高的区域, // 大小为实际大小的 50% var x = dance_mc._xscale; var y = dance_mc._yscale; dance_mc._xscale = 50; dance_mc._yscale = 50; if (my_pj.addPage("dance_mc", {xMin:0,xMax:400,yMin:0,yMax:600},null, 3)) { pageCount++; } dance_mc._xscale = x; dance_mc._yscale = y; } } } } } } if (pageCount) { my_pj.send(); } delete my_pj; }
PrintJob.send()、PrintJob.start()