Sur ouvaton (php) transformer un pdf en images

Bonjour,

Je recopie une question déjà posée sur les news qui n’a pas eu de début de réponse, voyons si j’ai plus de chance ici :wink:

Sur la plate-forme ouvaton vous semble-t-il possible de transformer un fichier pdf en autant d’images qu’il a de pages ?

Plus concrètement :

  1. upload d’un fichier pdf,
  2. traitement “automatique” de celui-ci pour créer autant d’images qu’il a de pages (ça je n’ai jamais fait),
  3. de ces images, j’en fais ce que je veux, par exemple ceci : http://domec.net/lulu/ .

Ce point 2) vous paraît-il possible et, si oui, avez-vous quelques pistes ?

Merci,

Christian.

Salut Christian,

Une réponse pas vraiment utile: j’ai l’impression que oui, mais je ne sais pas comment faire :wink:

(1) Si tu regardes par exemple le quotidien Le Courrier (http://lecourrier.ch/), ils ont le journal du jour affiché par vignettes de pages (http://lecourrier.ch/index.php?name=NewsPaperPDF) issu visiblement du PDF. Et je doute qu’ils s’amusent chaque jour à le produire à la main… Maintenant, est-ce que c’est produit à la volée? Est-ce qu’une fonction php permet de le faire? Faut-il installer la librairie PDFlib?

(2) Autre possibilité: je ne connais pas les détails de l’intégration de imagemagick dans php, mais il me semble que c’est sur imagemagick qu’on s’appuie pour créer des vignettes… et imagemagick permet de convertir du pdf en formats images d’après la doc (http://www.imagemagick.org/script/index.php). Alors c’est peut-être une autre piste…

Coop,
Greg

[quote=greg]Salut Christian,

Une réponse pas vraiment utile: j’ai l’impression que oui, mais je ne sais pas comment faire :wink:

(1) Si tu regardes par exemple le quotidien Le Courrier (http://lecourrier.ch/), ils ont le journal du jour affiché par vignettes de pages (http://lecourrier.ch/index.php?name=NewsPaperPDF) issu visiblement du PDF. Et je doute qu’ils s’amusent chaque jour à le produire à la main… Maintenant, est-ce que c’est produit à la volée? Est-ce qu’une fonction php permet de le faire? Faut-il installer la librairie PDFlib?

(2) Autre possibilité: je ne connais pas les détails de l’intégration de imagemagick dans php, mais il me semble que c’est sur imagemagick qu’on s’appuie pour créer des vignettes… et imagemagick permet de convertir du pdf en formats images d’après la doc (http://www.imagemagick.org/script/index.php). Alors c’est peut-être une autre piste…

Coop,
Greg[/quote]

Merci Greg pour ces pistes (je sais que c’est possible sur un serveur web, mais ouvaton ???). Imagemagick on en avait déjà débattu par ici (à l’époque de vhffs, puis après), mais n’ayant aucun besoin, je n’avais pas trop suivi les évolutions de cette demande. Je vais tâcher de retrouver ça dans les archives qui me restent. En attendant si un des utilisateurs potentiel de ce type de logiciel passe par ici, cela me permettrait de savoir sur quel pied danser. Mais, comme d’habitude, je n’y vois aucune urgence (rien sous le coude), juste une possibilité intéressante.

Christian.

Plop,

Avec « pdftoppm » issu du paquet xpdf-reader de debian, on peut facilement avoir une image par page d’un fichier pdf.
On peut télécharger facilement un fichier avec wget.
Pour la publication dans une page web, un CMS de type « album photos » traitant automatiquement des images dans un répertoire devrait sans sortir.

Après, est-ce que sous Ouvaton on peut le faire, ben, xpdf n’est pas forcément installé, et surtout, on n’a pas forcément les droits suffisant pour exécuter tout ça. Mais ça te donnera peut-être une piste d’outils.

Une autre façon de procéder serait d’avoir un robot(*) sur un ordi à toi qui récupère le pdf, le converti en image, puis envoie les images vers ton site web grace à une authentification adapté (un CMS « galerie de photos » utilisant des cookie pour identification devrait faire l’affaire).
C’est peut-être paraitre compliqué, mais ça l’est. Enfin pas forcément plus compliqué que de tout faire sur le werveur web.
La grosse contrainte est d’avoir un OS ou tourne un convertisseur pdf… Et je n’ai pas vu pdftoppm pour windows.

wget $1 # DL l'URL indiqué pdf=`echo $1 | grep -o -E "^/]*$"` # Extrait le nom de fichier de l'url pdftoppm $pdf $pdf # converti le pdf en image sous la forme nom-nnnnnn.ppm # où nnnnnn est le n° de page for fichier in `ls $pdf-*.ppm` ; do # commence la boucle pour chaque image wget --load-cookies cookies.txt \ # utile wget en indicant un cookie --post-file=$fichier \ # envoie le fichier http://www.tonsite.coop/gallerie/send.php # l'adresse d'envoi à ton CMS de gestion d'images done # fin de la boucle
Alors le fichier cookies.txt doit avoir été crée, une façon de le faire c’est :

wget --save-cookies cookies.txt \ --post-data 'user=unlogin&password=motsdepasse' \ http://www.tonsite.coop/gallerie/auth.php
où ‹ user › et ‹ password › sont les variable du formulaire ;
‹ unlogin › et ‹ motsdepasse › sont les identifiants ayant les droit d’envoie d’image ;
et http://www.tonsite.coop/gallerie/auth.php est la page d’ientification
Et la page doit accepter les identification par cookie (sinon, faut faire autrement, selon le site, c’est plus simple ou plus compliqué)

Attention, c’est un script que j’ai craché comme ça, pas testé, ni rien, marche pas forcément. Mais ça donne une idée de la complexité d’un script pour convertir un pdf en image et en l’envoyant vers un serveur web.
A noté qu’il faudra peut-être convertir le fichier ppm en un autre format, par exemple avec imagemagick

Un gros intérêt de faire ainsi est d’être complètement indépendant de l’hébergement quant aux outils de conversion/récupération. De plus, ça évite d’alourdir le serveur, vue que je ne parierai pas que la conversion soit économe en ressource.

Des CMS de galerie photos : http://www.framasoft.net/rubrique387.html

(*) je dis robot, parce que ça fait mieux que de dire script, ou mini-appli :slight_smile:

Cooperativement,
Aymerick

Aymerick,

Merci pour ta réponse : je vais essayer d’étudier ces pistes.

Christian.