Convertire un .doc o .pdf in un'immagine e visualizzare una miniatura in Ruby?

StackOverflow https://stackoverflow.com/questions/65250

  •  09-06-2019
  •  | 
  •  

Domanda

Convertire un .doc o .pdf in un'immagine e visualizzare una miniatura in Ruby?
Qualcuno sa come generare miniature di documenti in Ruby (o C, Python...)

È stato utile?

Soluzione

Un semplice esempio RMagick per convertire un PDF in PNG sarebbe:

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

Convertire un documento MS Word non sarà così facile.La soluzione migliore potrebbe essere quella di convertirlo in PDF prima di generare la miniatura.Le opzioni per generare il PDF dipendono fortemente dal sistema operativo su cui stai utilizzando.Uno potrebbe essere quello di utilizzare OpenOffice e il Convertitore di documenti aperti Python.Esistono anche servizi di conversione online che potresti provare, inclusi http://Zamzar.com.

Altri suggerimenti

Codice di esempio per rispondere al commento di @aisensiy sopra:

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

In base all'indizio del percorso in risposta ad un'altra domanda:

https://stackoverflow.com/a/6369524/765063

Non sono sicuro del supporto .doc in qualsiasi libreria open source, ma ImageMagick (e la gemma RMagick) possono essere compilati con il supporto pdf (penso che sia attivo per impostazione predefinita)

Il supporto PDF è un po' difettoso in ImageMagick, ma è di gran lunga il miglior sistema operativo per Ruby.C'è anche un progetto Google Summer of Code per il puro supporto di Ruby PDF.

Ho letto cose sull'uso di OpenOffice senza la GUI per trasformare i file .doc, ma nella migliore delle ipotesi sarà complicato.

Come hanno detto i 2 poster precedenti, ImageMagick è probabilmente il modo più semplice per generare le miniature.

Potresti eseguire qualcosa del tipo:

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

(Le virgolette dicono a Ruby di sborsare tutto).

Se non vuoi usare exec per fare la conversione potresti usare RMagick gem per farlo per te ma probabilmente è un po' più di codice.

Se non ti dispiace pagare per Imgix, it gestisce i PDF pure.Con esso ottieni tutti i vantaggi di un CDN veloce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top