2012-10-25 5 views

Antwort

9

Es gibt nichts sehr aktiv für die grafische Darstellung in Prawn direkt, aber Gruff ist ein aktives Juwel, das in hohem Maße konfigurierbar ist und Ihnen erlaubt, alle Arten von Graphen zu machen.

In der Tat ist Prawn-Graph im Grunde ein Wrapper um ruppig!

Mein Rat ist es, ruppig zu verwenden, um die erforderlichen Diagramme und Grafiken zu generieren und sie dann als Bilder in das Prawn-Dokument einzubetten.

So würde der Code wie folgt aussehen:

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

ist es eine Möglichkeit, Garnele passieren das Bild Bytes anstatt sie auf die Festplatte geschrieben und vorbei an zu garnelen? – eggie5

+0

@ eggie5 nicht möglich imo. –

2

ich eine Garnele Visualisierungs- Bibliothek erstellt PrawnCharts genannt, die auf Garnelen hängt nur und beruht nicht auf RMagick und ImageMagick. rMagick und ImageMagick sind lästige Abhängigkeiten (große Dateien, mühsam zu installieren, etc.) und erstellen größere Dateien im Vergleich zu einer nativen Lösung wie PrawnCharts. Hier

ist ein Beispiel eines Graphen I mit PrawnCharts generiert:

enter image description here

Fühlen Sie sich frei Pull-Anfragen einreichen - ich werde sie fusionieren.

2

@ eggie5 bezüglich der Verwendung von ruppig mit Garnelen ein Bild einzufügen, ohne sie auf die Festplatte zu speichern, ist es ziemlich einfach:

image StringIO.new(g.to_blob)