2009-02-19 98 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