2009-05-13 15 views
1

Ich bin auf der Suche nach einer einfachen Möglichkeit zum Generieren von Vorschauen für Etiketten als PDF generiert. Es wäre großartig, wenn ich diese PDFs in Bilder umwandeln und sie dem Benutzer vor dem eigentlichen Drucken/Herunterladen zeigen könnte.Konvertieren von PDF in Bilder mit Ruby/JRuby

Die Anwendung läuft derzeit in einer Jruby-on-Rails-Umgebung, aber es ist durchaus möglich, dass wir zu zwei Anwendungen wechseln, eine in nativem Ruby (der Hauptanwendung) und eine in jruby (die PDF-Funktion). Die Auswahl ist also nicht wirklich auf eine dieser Welten beschränkt.

Bisher sehe ich die folgenden Optionen:

  • RMagick: scheint reif, ImageMagick als Backend, wahrscheinlich nicht auf jruby Arbeits
  • RMagick4J: als RMagick aber für JRuby, inaktiv angezeigt wird, unterstützt nur Teilmenge .
  • JMagick: JNI-Schnittstelle für Java, funktioniert nur in JRuby

Die PDF-Generierung selbst wird immer in einer JRuby-Umgebung sein, deshalb JMagick klingt wie eine gute Idee (erwartet den möglichen JNI Aufwand). Auf der anderen Seite wäre es großartig, wenn die Lösung nicht auf eine Plattform beschränkt wäre.

Irgendwelche Ideen? Vorschläge? Schlechte erfahrungen? Vielleicht eine ganz andere Idee?

Danke!

+0

JMagick erscheint suchen off sein musste verbunden mit einer festen, ziemlich alten Version: /. – reto

+0

Ähnliches Thema http://stackoverflow.com/questions/653380/converting-a-pdf-to-png – Tarscher

+0

Danke für den Zeiger! Meine Frage betrifft auch die beste Art, sie zu integrieren. Aber es wird wahrscheinlich Convert/Imagemagick ... aber vielleicht hat jemand anderes eine bessere Idee. – reto

Antwort

1

Hier ist eine sehr dünne reine Ruby-Wrapper für ImageMagick.

www.misuse.org/science/2008/01/30/mojomagick-ruby-image-library-for-imagemagick/

It: Sie können über einige Modulmethoden, was Befehle, die Sie wollen ImageMagick leicht senden sollte auch auf Jruby gut funktionieren, da es keine DLL Magie oder irgendetwas unter der Haube gibt.

1

Ich verwende IText für PDF-Generierung/Manipulation. Es ist ein Java-Jar, aber es ist wirklich einfach von JRuby aus anzurufen. Wenn Sie es mit dem Projekt FlyingSaucer kombinieren, können Sie auch Bilder erzeugen. Beide sind sehr einfach zu bedienen.

2

Sind Sie auf Linux?

sudo apt-get install imagemagick 

In Ihrem Ruby-Code do

system "convert -colorspace rgb -density 150 ../path/whatever.pdf ../path/whatever.jpg" 

-Dichte ist die DPI des endgültigen Bildes

-colorspace behebt ich mit den Farben

+0

Wir haben am Ende vor langer Zeit mit konvertieren. :). – reto

+1

Cool! Gewinnt ich einen Preis für das richtige Erraten Ihrer Lösung? – InternalFX

+0

hier, nehmen Sie eine Verbesserung;) – reto