有誰知道可以打印/保存網頁爲PDF格式的服務器端技術,包括嵌入式Flash組件?服務器端PDF使用Flash打印?
本質上我想模擬客戶端打印到PDF功能,但在服務器上實現「下載PDF」鏈接,但我不相信HTML到PDF解決方案支持Flash。
有誰知道可以打印/保存網頁爲PDF格式的服務器端技術,包括嵌入式Flash組件?服務器端PDF使用Flash打印?
本質上我想模擬客戶端打印到PDF功能,但在服務器上實現「下載PDF」鏈接,但我不相信HTML到PDF解決方案支持Flash。
也許......如果你可以在服務器上打開一個窗口。試試這個:獲取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中使用。
不知道這是否可行,但我會給它一個鏡頭,看看會發生什麼。 – 2009-02-19 15:47:32