2010-09-23 67 views
1

我在Python中使用reportlab來渲染pdf服務器端。Highcharts SVG從Python服務器端導出代碼

我真的很喜歡highcharts圖的外觀。但我正在建立一個需要包含一些圖表的pdf服務器端。服務器端的圖形(reportlabmatplotlib)對於格式化/設計來說沒有太多選擇。

有沒有一種方法可以從服務器端運行客戶端JavaScript圖形解決方案(highcharts)?

這裏是一個post這一請求,這是什麼,他們說: 你給這個Java工具的URL,它會調用其內部WebKit瀏覽器,執行JavaScript代碼和轉儲渲染頁面的PDF。

我正在尋找關於如何在python中完成的資源。

回答

-1
  1. 在服務器上打開Web瀏覽器。

  2. 將網頁瀏覽器指向加載highcharts並呈現圖表的預製頁面。

  3. 抓取瀏覽器的輸出。

  4. 發送給客戶。

哪些步驟似乎令人困惑?

請注意,這會比僅使用matplotlib慢得多,因爲您需要啓動完整的Web瀏覽器來渲染圖。我快速瀏覽了您鏈接的高圖頁面,我認爲您可以在matplotlib中重現該頁面。

+0

我將在matplotlib中看到有關再現該問題的內容。 – jhanifen 2010-09-23 22:02:41

+0

P.S.具體哪一步似乎令人困惑#2。我沒有從服務器上運行瀏覽器,渲染內容並在本地保存。 – jhanifen 2010-09-23 22:03:28

+0

它應該與本地執行相同,具體取決於服務器。你可以使用像'selenium'或甚至'pywin32'(在Windows上)來打開瀏覽器。 – katrielalex 2010-09-23 22:22:36

1

我有類似的要求,找不到現有的解決方案,所以我創建了一個小概念驗證解決方案here

該實現的工作原理是讓python進程創建一個節點子進程,該進程使用highchart-export-server節點模塊,然後生成一個PhantomJS實例來呈現圖表。那裏有幾個俄羅斯娃娃,但它的確是這個工作。