2008-09-15 15 views

Respuesta

21

Un ejemplo sencillo RMagick para convertir un PDF a un PNG sería:

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

Para convertir un documento de MS Word, no va a ser tan fácil. Su mejor opción puede ser primero convertirlo a PDF antes de generar la miniatura. Sus opciones para generar el PDF dependen en gran medida del SO en el que se esté ejecutando. Uno podría ser usar OpenOffice y el Python Open Document Converter. También hay servicios de conversión en línea que puede probar, incluido http://Zamzar.com.

+0

Funciona. Pero lleva mucho tiempo. ¿Puedo leer la primera página del pdf y obtener su versión de imagen? – aisensiy

0

No estoy seguro sobre el apoyo .doc en cualquier biblioteca de código abierto, pero ImageMagick (y la gema RMagick) puede ser compilado con soporte pdf (Creo que está activado por defecto)

0

El soporte de PDF es un poco problemático en ImageMagick, pero es de lejos la mejor forma de OS para ruby. También hay un verano de google de Google Code para el soporte puro de Ruby PDF.

He leído cosas sobre el uso de OpenOffice sin la GUI para transformar archivos .doc, pero será complicado en el mejor de los casos.

0

Como dijeron los 2 carteles anteriores, ImageMagick es probablemente la forma más fácil de generar las miniaturas.

Se podría exec algo como:

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

(Las comillas inversas dicen Rubí para bombardear a cabo).

Si no quiere usar exec para hacer la conversión, puede usar la joya RMagick para hacerlo por usted, pero probablemente sea un poco más código.

4

Código de ejemplo para responder a la observación formulada por @aisensiy arriba:

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 

Sobre la base de la idea de trayectoria en respuesta a otra pregunta: ¿

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

0

Si no te importa pagar por Imgix, es handles PDFs también. Obtienes todos los beneficios de un rápido CDN con él.

Cuestiones relacionadas