Convertir un fichier .doc ou .pdf en image et afficher une miniature en Ruby?

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

  •  09-06-2019
  •  | 
  •  

Question

Convertissez un fichier .doc ou .pdf en image et affichez une vignette en Ruby?
Est-ce que quelqu'un sait comment générer des vignettes de documents en Ruby (ou C, python ...)

Était-ce utile?

La solution

Un exemple simple de RMagick pour convertir un fichier PDF en fichier PNG serait:

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

Pour convertir un document MS Word, ce ne sera pas aussi facile. La meilleure solution consiste peut-être à convertir le fichier au format PDF avant de générer la vignette. Vos options pour générer le PDF dépendent fortement du système d'exploitation sur lequel vous exécutez. L’un d’eux pourrait être d’utiliser OpenOffice et le Python Open Document Converter . Vous pouvez également essayer des services de conversion en ligne, notamment http://Zamzar.com .

Autres conseils

Exemple de code pour répondre au commentaire de @aisensiy ci-dessus:

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

Basé sur l'indice de chemin en réponse à une autre question:

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

Vous n'êtes pas sûr du support .doc dans les bibliothèques open source, mais ImageMagick (et le joyau de RMagick) peut être compilé avec le support pdf (je pense que c'est activé par défaut)

La prise en charge PDF est un peu problématique dans ImageMagick - mais c’est de loin le meilleur système d’exploitation pour Ruby. Il existe également un projet de code d'été Google pour le support Ruby PDF pur.

J'ai lu des articles sur l'utilisation d'OpenOffice sans l'interface graphique pour transformer les fichiers .doc - mais ce sera au mieux compliqué.

Comme l'ont dit les 2 affiches précédentes, ImageMagick est probablement le moyen le plus simple de générer des vignettes.

Vous pouvez exécuter quelque chose comme:

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

(Les citations arrières disent à Ruby de le décortiquer).

Si vous ne voulez pas utiliser exec pour la conversion, vous pouvez utiliser le joyau de RMagick pour le faire pour vous, mais c'est probablement un peu plus de code.

Si vous ne voulez pas payer pour Imgix, il gère également les PDF . Vous bénéficiez de tous les avantages d’un CDN rapide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top