2010-02-25 43 views
9

我需要能夠將動態HTML(通過javascript加載頁面時呈現的HTML)轉換爲PDF。我知道有很多HTML到PDF的轉換器,但我迄今爲止所發現的都沒有處理動態HTML。動態HTML爲PDF

給定的工具應該能夠成功轉換下頁 - http://www.simile-widgets.org/timeline/

乾杯 安東尼

UPDATE:

我不需要這裏的JavaScript功能...即我不不需要能夠交互屏幕...我只想要在PDF中捕獲屏幕的最終呈現 - 就像在頁面加載後拍攝照片一樣。在這個例子中,我提供的JavaScript只是將div渲染到屏幕上,所以它不應該能夠處理,只要它「讓」「頁面」首先渲染即可。

+1

因爲有這麼多類似這個問題但不完全相同的問題,我決定嘗試收集一個完整的HTML到PDF轉換器列表到一個社區wiki問題http://stackoverflow.com/questions/3178448/ list-of-html-to-pdf-converters – rjmunro 2010-07-05 12:56:11

+0

@rjmunro - 聽起來真的很有用,但頁面已經消失了 - 你是否設法在其他地方發佈列表? – EML 2015-01-16 11:59:35

+0

你找到答案了嗎? – EML 2015-01-16 12:00:41

回答

1

有沒有辦法可以做到。與在Web瀏覽器中享受完整的DOM和BOM訪問相比,PDF中用於腳本的接口極其有限。在PDF中實現這樣的交互可以很容易地從瀏覽器中的工作方式翻譯出來,並且幾乎肯定需要手寫創作。

您的示例頁面具有許多效果,PDF作爲基本靜態的文檔佈局格式根本無法完全重現。

編輯:

我只是想在屏幕的頂尖呈現在PDF

啊,OK,這是一個更容易,更普遍的問題,然後被捕獲。

在這種情況下,你將不得不使用和自動化一個真正的web瀏覽器(如Firefox),或提供了一個Web瀏覽器的所有邏輯(如WebKit的)工具包,然後:

  • 使用內置工具(例如Firefox中的「打印到文件」(打開背景圖像/顏色)或其中一個PDF導出附加組件)導出到PDF,或者使用其中一個PDF導出附加組件瀏覽器(並且如果必須,將圖像包含在PDF中)

請參閱thesequestions瞭解瀏覽器快照的一些討論。

+0

不正確。 Flash現在可以添加到pdf文件中。然而,我不知道JavaScript的動作/閃存轉換路徑。 :) – ghoppe 2010-02-25 02:12:53

-1

嘗試xhtml2pdf。這是project page at python.org

+0

他想要一個能夠理解JavaScript所做更改的解決方案。 – 2010-02-25 01:14:45

+0

我看不到我可以在哪裏測試一個實時HTML頁面,並且沒有多說javascript或dhtml。 – 2010-02-25 01:15:09

+0

對不起,有一個鏈接到比薩的python項目頁面。我改變了我的鏈接。 – ghoppe 2010-02-25 01:29:00

0

您可以使用JavaScript URI來提醒當前的DOM。例如:

javascript:alert("<html>" + document.documentElement.innerHTML + "</html>") 

複製HTML並保存到文件。
然後通過HTML2PDF轉換器運行它。

+0

它需要是一個自動化過程......即用戶點擊一個按鈕,他們可以下載報告... – 2010-02-25 04:00:31

+0

如果您的意思是頁面中的按鈕(而不是瀏覽器),那麼您顯然會控制該站點,以便您可以使用XMLHttpRequest將HTML張貼到服務器,並通過服務器上的轉換器運行它。 – 2010-02-27 23:12:03

0

它使用任何JavaScript的事實意味着很多轉換器將無法工作。 JavaScript可能很簡單,但你仍然需要一個解釋器來處理它。

我還沒有用過自己,但你可以試試wkhtmltopdf。它使用webkit渲染引擎,我相信它包含完整的JavaScript支持。您需要能夠安裝軟件並運行可執行文件,否則應該相當簡單。