2008-09-15 6 views

Antwort

21

Ein einfaches RMagick Beispiel ein PDF zu PNG wäre zu konvertieren:

require 'RMagick' 
pdf = Magick::ImageList.new("doc.pdf") 
thumb = pdf.scale(300, 300) 
thumb.write "doc.png" 

ein MS Word-Dokument zu konvertieren, es wird nicht so einfach sein. Die beste Option besteht darin, sie vor dem Erstellen der Miniatur in eine PDF-Datei zu konvertieren. Ihre Optionen zum Generieren der PDF hängen stark von dem Betriebssystem ab, auf dem Sie arbeiten. Man könnte OpenOffice und die Python Open Document Converter verwenden. Es gibt auch Online-Konvertierungsdienste, die Sie ausprobieren könnten, einschließlich http://Zamzar.com.

require 'rmagick' 
pdf_path = "/path/to/interesting/file.pdf" 
page_index_path = pdf_path + "[0]" # first page in PDF 
pdf_page = Magick::Image.read(page_index_path).first # first item in Magick::ImageList 
pdf_page.write("/tmp/indexed-page.png") # implicit conversion based on file extension 

Basierend auf dem Weg Anhaltspunkt in Antwort auf eine andere Frage:

+0

Es funktioniert. Aber es ist zeitaufwendig. Kann ich einfach die erste Seite der PDF-Datei lesen und die Bildversion herunterladen? – aisensiy

0

Nicht sicher .doc Unterstützung in jeder Open-Source-Bibliothek, aber ImageMagick (und die RMagick gem) zu erzeugen, mit pdf-Unterstützung kompiliert werden kann (Ich denke, es ist standardmäßig aktiviert)

0

PDF-Unterstützung ist ein kleiner Buggy in ImageMagick - aber es ist bei weitem die beste OS Weg für Ruby. Es gibt auch einen Google-Sommer Code-Projekt für die reine Ruby PDF-Unterstützung.

Ich habe Sachen über die Verwendung von OpenOffice ohne GUI gelesen, um .doc-Dateien zu transformieren - aber es wird bestenfalls kompliziert.

0

Wie die 2 vorherigen Poster sagten, ist ImageMagick wahrscheinlich der einfachste Weg, die Thumbnails zu generieren.

Sie könnte so etwas wie exec:

´convert -size 300x300 doc.pdf doc.png´ 

(Die einfachen Anführungszeichen Rubin sagen, es zu berappen).

Wenn Sie nicht möchten, dass exec die Konvertierung durchführt, könnten Sie das RMagick-Juwel verwenden, um es für Sie zu tun, aber es ist wahrscheinlich ein bisschen mehr Code.

0

Wenn Sie nichts dagegen haben, für die Zahlung Imgix, es handles PDFs auch. Sie erhalten alle Vorteile eines schnellen CDN damit.