2012-10-25 73 views

回答

9

直接在Prawn裏面繪製圖形沒有什麼特別的活動,但Gruff是一個高度可配置的活動gem,可以讓你製作各種圖形。

其實蝦圖基本上是一個粗糙的包裝!

我的建議是使用粗糙生成所需的圖表和圖形,然後將它們作爲圖像嵌入到Prawn文檔中。

因此,代碼會是這個樣子:

g = Gruff::Line.new(400) 
g.title = "Transparent Background" 
g.theme = { 
    :colors => ['black', 'grey'], 
    :marker_color => 'grey', 
    :font_color => 'black', 
    :background_colors => 'transparent' 
} 
g.labels = { 
    0 => '5/6', 
    1 => '5/15', 
    2 => '5/24', 
    3 => '5/30', 
} 
g.data(:apples, [-1, 0, 4, -4]) 
g.data(:peaches, [10, 8, 6, 3]) 
g.write(path_to_save) 

Prawn::Document.generate("graphed-pdf.pdf") do 
    text "The image will go right below this line of text." 
    image "#{path_to_save}" 
end 
+1

是有辦法通過大蝦圖像字節寫入磁盤,並傳遞給代替對蝦? – eggie5

+0

@ eggie5不可能imo。 –

2

我創建了一個蝦圖形庫調用PrawnCharts,只有依賴於蝦和不依賴於rMagick和ImageMagick的。與像PrawnCharts這樣的本地解決方案相比,rMagick和ImageMagick是煩人的依賴項(大文件,安裝痛苦等),並創建更大的文件。

這裏是我PrawnCharts生成的圖表的實例:

enter image description here

隨時提交引入請求 - 我將它們合併。

2

@ eggie5使用粗暴的大蝦沒有把它保存到磁盤插入圖像至於,這是很簡單的:

image StringIO.new(g.to_blob)