服务器端使用Flash进行PDF打印?

时间:2009-02-19 13:32:30

标签: flash

是否有人知道可以将网页打印/保存为PDF(包括嵌入式Flash组件)的服务器端技术?

基本上我想模拟客户端打印到PDF功能,但在服务器上实现“下载PDF”链接,但我不相信HTML到PDF解决方案支持Flash。

1 个答案:

答案 0 :(得分:1)

也许......如果你可以在服务器上打开一个窗口。试试这个:获取SWT(它包含一个浏览器组件)。使用browser snippet确保它可以显示Flash(有关如何使插件正常工作的详细信息,请参阅下面的常见问题解答)。如果是,则you can use JavaScript to print

browser.execute("window.print();");

在Unix上,这应该足够了。在Windows上,您必须安装PDF打印机驱动程序并使用UI自动化工具按下打印对话框的“确定”按钮。

有关如何让浏览器小部件在各种环境中运行的详细信息,请参阅SWT FAQ

如果可行,您可以尝试创建shell但不要打开它(因此屏幕上不会弹出窗口)。打印无需在屏幕上实际绘制任何内容,但您必须进行一些实验。

我使用此技术通过按下按钮创建我们webapp的所有页面的屏幕截图(打开URL,等待加载,复制主要的drawable,将图像保存到文件)。

或者,您可以使用ActiveX桥通过JDIC将Internet Explorer嵌入Java应用程序中。然后,应用程序可以等待远程打印请求。

[编辑]或者,如果您的HTML-> PDF解决方案缺乏Flash支持,只需在嵌入式浏览器中打开Flash元素即可。将浏览器小部件的屏幕截图保存为图像,并修改HTML以使用图像而不是真实的Flash(搜索embed标记并将其替换为img)。

[EDIT2]如果SWT不起作用,请查看QtJambi(包含WebKit)。请注意,QtJambi目前正在迁移到LGPL。我不确定Flash插件是否适用于WebKit。