设置大小、缩放和方向

打印页面一节详细介绍了基本打印作业的步骤,此作业的输出直接反映了与指定的 sprite 的屏幕大小和位置等效的打印。然而,打印机使用不同的分辨率进行打印,并且可以具有对打印 sprite 的外观有不利影响的设置。

Flash Player 可以读取操作系统的打印设置,但请注意,这些属性是只读的:虽然可以响应它们的值,但无法进行设置。例如,您可以查明打印机的页面大小设置,并调整内容以适当该大小。您还可以确定打印机的边距设置和页面方向。为响应打印机设置,您最好指定打印区域,调整屏幕的分辨率与打印机的磅度量单位之间的差异,或转换内容以符合用户打印机的大小或方向设置。

子主题

为打印区域使用矩形
比较磅和像素
缩放
横向或纵向打印
响应页面高度和宽度

为打印区域使用矩形

使用 PrintJob.addPage() 方法可以指定要打印的 sprite 的区域。第二个参数 printArea 为 Rectangle 对象的形式。您可以选择三种方法来提供该参数的值:

注意

 

如果您打算为打印尺寸指定矩形,请记住要导入 flash.display.Rectangle 类。

比较磅和像素

矩形的宽度和高度以像素为单位。打印机使用磅来作为打印的度量单位。磅的实际大小是固定的(1/72 英寸),但是在屏幕上,像素的大小取决于特定屏幕的分辨率。像素和磅之间的转换比率取决于打印机设置以及 sprite 是否经过缩放。一个 72 个像素宽的 sprite 在未经缩放的情况下打印输出将为一英寸宽,这时,一磅等于一个像素,且与屏幕分辨率无关。

您可以使用以下换算公式将英寸或厘米转换为缇或磅(1 缇为 1/20 磅):

如果省略了 printArea 参数或错误地传递了该参数,将打印 sprite 的整个区域。

缩放

如果要在打印前对 Sprite 对象进行缩放,请在调用 PrintJob.addPage() 方法之前设置缩放属性(请参阅处理大小和缩放对象),并在打印后将它们重新设置为原始值。Sprite 对象的缩放与 printArea 属性无关。也就是说,如果指定一个 50 x 50 个像素的打印区域,则会打印 2500 个像素。如果对 Sprite 对象进行缩放,则同样会打印 2500 个像素,但按缩放后的大小打印 Sprite 对象。

有关示例,请参阅示例:缩放、裁剪和拼接

横向或纵向打印

由于 Flash Player 可以检测方向设置,因此,您可以在 ActionScript 中构建逻辑来调整内容大小或旋转以响应打印机设置,如下例所示:

if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE)
{
    mySprite.rotation = 90;
}

注意

 

如果您打算读取纸张上内容方向的系统设置,请记住要按照以下准则导入 PrintJobOrientation 类:

import flash.printing.PrintJobOrientation;

PrintJobOrientation 类提供了定义页面上的内容方向的常量值。

响应页面高度和宽度

使用类似于处理打印机方向设置的策略,可以读取页面高度和宽度设置,并通过将某些逻辑嵌入 if 语句中来响应这些设置。下面的代码显示了一个示例:

if (mySprite.height > myPrintJob.pageHeight)
{
    mySprite.scaleY = .75;
}

此外,还可以通过比较页面尺寸和纸张尺寸来确定页面的边距设置,如下例所示:

margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2;
margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2;

Flash CS3

 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000334.html