【问题标题】:Problems when printing a SWF in browser在浏览器中打印 SWF 时出现问题
【发布时间】: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


    【解决方案1】:

    您需要在 FlexPrintJobScaleType 中缩放您的打印作业:

    匹配宽度

    (默认)缩放要填充的对象 可用的页面宽度。如果 产生的物体高度超过 页面高度,输出跨越多个 页面。

    匹配高度

    缩放对象以填充 可用页面高度。如果 结果对象宽度超过 页面宽度,输出跨越多个 页面。

    显示全部

    缩放对象以适合单个对象 页面,填充一维;那是, 它选择较小的 MATCH_WIDTH 或 MATCH_HEIGHT 比例 类型。

    FILL_PAGE

    缩放对象以填充至少一个 页面完整;也就是说,它选择 MATCH_WIDTH 或 MATCH_HEIGHT 比例类型。

    不缩放输出。印刷的 页面的尺寸与 屏幕上的对象。如果对象 高度、宽度或两个维度 超过页面宽度或高度, 输出跨越多个页面。

    http://livedocs.adobe.com/flex/3/html/help.html?content=printing_3.html 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多