2012-09-20 62 views
1

我正在嘗試生成包含由HighCharts生成的數據表和圖表的PDF文檔服務器端。我正在使用highchart-serverside-exportiText如何讓Highcharts放大圖像內容而不是添加更多細節?

我已經能夠生成文檔,但打印時圖表圖像有顆粒感。據我所知,iText在插入圖像時默認使用72dpi。獲得更高保真度圖像的正確方法是從較大的圖像開始,並使用縮放功能之一(例如scalePercent())縮小圖像的大小。

我可以通過將更大的高度和寬度參數傳遞給Highcharts來輕鬆生成更大的圖表圖像。問題在於,當您增加圖表的尺寸時,內容不會按比例放大(例如,標籤的字體大小)。事實上,你可以在某些地方獲得更多細節(例如更多的座標軸)。這是一個問題,原因是當你通過iText應用縮放時,這些項目變得非常小,難以閱讀。

我看了看Highcharts API,看不到一種方法讓Highcharts放大內容而不是添加更多細節。我如何得到這個工作?

如果我使用的方法是完全錯誤的,更廣泛的問題是如何獲得打印分辨率服務器端Highcharts圖表?我必須使用iText,但願意嘗試使用替代技術來完成圖表渲染。

+0

什麼是Highcharts出口圖表的格式?有沒有辦法獲得由矢量圖像而不是光柵圖像組成的輸出?這將解決您的低分辨率問題。 –

+0

highchart-serverside-export僅輸出jpeg/png/tiff。 Highcharts本身產生SVG輸出,但是這個工具不能讓我訪問生成的SVG。 –

+0

我認爲[該文檔](http://docs.highcharts.com/#export-module)將幫助你。嘗試設置exportin.scale和exportin.sourceWidth/height以獲得適當的圖像寬度。 –

回答

1

您可以使用exporting.width屬性指定導出圖像的寬度。

這不會增加div的大小或添加/刪除細節或任何類型的細節,它只會根據指定的寬度縮放生成的svg,並保持高寬比。因此,還縮放的一切,包括文字等

exporting: {  
    width:2000 // or scale down to 100 
}  

Upscaling exported images/pdf | Highcharts & Highstock @ jsFiddle

+0

這看起來很有前途。 API文檔沒有真正說明這個設置的影響。我在jsfiddle中玩它,看起來像我想要的。當我重新開始工作時,我會正確地測試它。 –

+0

是的,即使我花費了時間(儘管在學習SVG的過程中)數小時,試圖創建一個自定義實現,以擴展高圖生成的SVG,同時試圖解決您相當有趣的問題。最終偶然發現了這個:) @BurhanAli –

+0

不幸的是,這並沒有奏效。 highcharts-server-export完全忽略了導出部分。我想它不會使用它。據我所知,導出模塊純粹是一個客戶端的東西加上一個Web服務來渲染。有點合理,highcharts-server-export不使用它,因爲它不是客戶端,外部渲染是多餘的。 –

相關問題