2010-04-06 11 views
3

J'utilise un trombone pour télécharger un pdf. Une fois le fichier téléchargé, je dois diviser chaque page en png. Ceci est la commande que je pense que je dois utiliserDivision de PDF en png

convertir -size 640x300 filename.pdf slide.png

Maintenant, si je lance cette commande du terminal, il fonctionne très bien, mais je besoin d'un moyen d'obtenir chaque nom de diapositives donc je peux l'ajouter dans un modèle.

Quelle est la meilleure façon d'y parvenir?

+0

double possible de http://stackoverflow.com/questions/2581679/pdf-to-png-processor-paperclip – mercator

Répondre

2

utilisation `commande` pour exécuter commads système (`) de -quotes

`convertir -size 640x300 filename.pdf slide.png`

+0

J'utilise un trombone, alors je ne voudrais pas utiliser la commande Paperclip.run? L'utilisation de la commande pour l'exécuter me laisse toujours avec mon problème initial, comment puis-je obtenir tous les noms de fichiers? –

+2

Attaches.all.each {| attach | \ 'convert -size 640x300 # {attach.your_file_name} # {attach.your_file_name} .png \'} - vous pouvez exécuter des commandes système dans les rappels de modèle comme after_save et ainsi de suite. Donc, vous pouvez convertir vos fichiers PDF juste après avoir enregistré votre pièce jointe – fl00r

4

Vous devriez être en mesure d'avoir Paperclip faire cette conversion pour vous au moment du téléchargement, comme ceci:

has_attached_file :pdfupload, :styles => { :pinged => ["640x300", :png] } 

Ensuite, vous pouvez afficher la version PNG comme ceci:

<%= image_tag @mymodel.pdfupload.url(:pinged) %> 

(Il est évident que le nom du modèle et le fichier devra être modifié pour correspondre à la vôtre.)

+0

Je ne savais pas que je peux définir l'image fromat dans les styles. Fonctionnalité cool. – fl00r