【发布时间】:2010-02-10 12:14:31
【问题描述】:
我正在尝试打印 SWF,但遇到了一些问题。 在浏览器中使用打印功能时,SWF 会失真,并且无法正确缩放。所以我尝试使用 Actionscript 来实现打印功能。
我采取的不同方法是:
- 使用 Flash Player 的右键单击上下文菜单进行打印,然后选择“打印”。这几乎可以按预期工作,但它会使透明 PNG 变平并且没有正确缩放。
- 创建 FlexPrintJob 并将组件添加到作业中。即使我在打印作业上设置了 FlexPrintJobScaleType.SHOW_ALL,也不会缩放组件以适应页面。
- 创建包含图像的 PrintView。然后截取组件的屏幕截图并将其设置为 PrintView 中的图像。完成后,我创建一个新的 FlexPrintJob 并发送它。这似乎在大多数情况下都有效,但缩放会扭曲并使小元素(如文本)看起来非常糟糕。
打印代码如下:
var pj:FlexPrintJob = new FlexPrintJob();
if (pj.start())
{
pj.addObject(componentToBePrinted, FlexPrintJobScaleType.SHOW_ALL);
pj.send();
}
我想做的是让右键单击上下文菜单工作,我的意思是设置 SWF 的缩放。这可能吗?打印 SWF 时还有其他选择吗?我做错了什么?
在测试时,我正在打印为 PDF,但我认为这不会改变结果。
【问题讨论】:
标签: apache-flex actionscript-3