0

是否可以打印包含 Flash 内容的网页?也许使用jQuery?

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

我可以使用插件,但我不想强迫访问者使用任何插件来打印页面。

4

2 回答 2

2

就像盗贼大师说的。不使用闪存可能是最好的方法。

但是如果你还想打印flash。您可以尝试ping 服务器端脚本 (php),该脚本将快照您想要的页面并显示图像,然后使用 flash 的打印作业功能可以打印该图像。

  • 使用 Loader 类加载将显示 url 快照(使用 php 拍摄的快照)的页面。确保 php 页面上的标题正确(因此浏览器认为它是图像)。
  • 使用 flash printjob 打印图像

希望有帮助!

于 2012-05-27T16:32:53.640 回答
1

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

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

虽然这有点矫枉过正,但如果你真的需要人们能够打印页面和 Flash 对象,这将是实现这一目标的一种方法。

于 2012-05-28T21:39:14.500 回答