2012-05-27 55 views
0

打印包含Flash内容的网页是否可行?也许使用jQuery?如何打印网页包含闪存

我有一个页面需要打印一些SWF对象,但我找不到在Firefox中打印它们的方法。

我可以使用插件,但我不想强制访问者使用任何插件为了能够打印页面。

+0

对我来说最好的选择是'object {display:none}' – undefined

+0

你能解释一下吗?我不能看到如何设置显示到没有人可以打印闪光灯... – HabibS

+0

你是什么意思的'印刷'? – wong2

回答

2

像ThiefMaster说的那样。 不使用闪光灯可能是最好的方法。

但是,如果你仍然想打印闪光灯。您可以尝试ping a server-side script (php)这将snap shot您想要的页面,并显示图像哪些闪光可以使用闪光灯的printjob功能打印。

  • 使用Loader类加载将显示URL快照的页面(使用 php拍摄的快照)。 确保页面在 php页面上正确(所以浏览器认为它是一个图像)。
  • 使用闪光灯的PrintJob打印图像

希望帮助!

+2

需要更多的jQuery。 –

1

嗯,这是一个相当复杂的方法,但它可能工作。为此,您必须能够编辑页面上的所有Flash文件,并且这必须是支持Base64编码图像源的浏览器(我认为IE不支持它)。

  • 用户按下网页
  • 您的自定义JavaScript调用使用ExternalInterface的每一个Flash对象“getScreenshot”功能上的打印按钮。
  • Flash文件的getScreenshot函数(您创建的)会创建一个与舞台一样大的BitmapData,使用BitmapData.draw(..)方法将其自身绘制,并使用Base64对其进行编码并将其返回。
  • JavaScript隐藏flash对象并将图像元素放在顶部并使用Base64编码的字符串填充它。
  • 现在,由于所有的Flash对象已被图像取代,请通过javascript调用文档打印功能。
  • 当用户完成打印后,她可以按网页上的按钮来“恢复”flash内容,这会删除动态创建的图像元素并再次显示flash对象。

尽管如此,但如果真的需要人们能够打印页面和flash对象,这将是实现这一目标的一种方式。