2009-02-19 108 views
2

有谁知道可以打印/保存网页为PDF格式的服务器端技术,包括嵌入式Flash组件?服务器端PDF使用Flash打印?

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

回答

1

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

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

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

查看SWT FAQ了解如何让浏览器小部件在各种环境中工作的大量细节。

如果这样,你可以尝试创建shell但不打开它(所以没有窗口弹出屏幕上)。打印工作没有实际绘制屏幕上的任何东西,但你必须做一些实验。

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

或者,您可以使用ActiveX桥通过JDIC将Internet Explorer嵌入到Java应用程序中。该应用程序可以等待远程打印请求。另外,如果你有一个缺乏Flash支持的HTML-> PDF解决方案,只需在嵌入式浏览器中打开Flash元素即可。将浏览器小部件的屏幕截图保存为图像,并修改HTML以使用该图像而不是真正的Flash(搜索embed标记并将其替换为img)。

[编辑2]如果SWT不起作用,看看QtJambi(其中包含WebKit)。请注意,QtJambi目前正在迁移到LGPL。不过,我不确定Flash插件是否可以在WebKit中使用。

+0

不知道这是否可行,但我会给它一个镜头,看看会发生什么。 – 2009-02-19 15:47:32