Je parle très souvent de l’utilisation des fichiers pdf sur les sites web.
Il est vrai que pour une entreprise il peut être intéressant de proposer au visiteurs de télécharger ou de consulter en ligne, un catalogue ou une plaquette. de plus (pour peu qu’il ai bien été optimisé) un fichier pdf peut ajouter un plus en matière de contenu à un site web.
Quand vous proposez un téléchargement de fichier pdf, vous pouvez soit :
- Faire un lien textuel sur le fichier
- mettre une icone representant un fichier pdf pour indiquer le télechargement
- mettre une miniature représentant la couverture du fichier à télécharger.
Dans ce dernier cas, vous pouvez créer cette miniature, avec un logiciel comme photoshop, the gimp ou xnview (par exemple)
cependant si vous avez beaucoup de documents en téléchargement, vous pouvez être tenté de générer ces vignettes à la volée.
Il n’existe pas de fonction PHP qui permette de le faire (désolé) cependant, si votre hébergeur a installé sur ces serveurs le logiciel (ou que vous disposiez d’un serveur dédié sur lequel vous l’avez installé), il est possible de réaliser la conversions des fichiers pdf en image à la volée.
pour cela on utilise la fonction « convert » d’imagemagick
1/ un exemple de conversion de pdf en image simple
pour convertir la couverture d’un pdf en image on utilise la ligne de commande suivante :
1 |
|
1 |
convert nomdufichierpdf.pdf[0] -resample 72 nomdufichierimage.png |
- Le paramètre –resample 72 sert à générer une image dans une résolution adapté à l’écran.
- le paramètre [0] indique qu’on veut extraire la première page du fichier (donc [1] pour la seconde, [2] pour la troisième, etc.)
- vous pouvez voir un exemple ici
2/ Conversion et redimensionnement
imagemagick est un puissant programme qui propose de nombreuse option on peut donc profiter de ces option pour adapter exactement notre image à nos besoins, par exemple, si on souhaite redimensioner l’image pour qu’elle ext une largeur de 250 pixel, on procede de la maniére suivante :
1 |
convert nomdufichierpdf.pdf[0] -resample 72 -resize 250 nomdufichierimage.png |
- Le paramètre -resize 250 indique qu’on souhaite une largeur d’image de 250 pixels
- pour modifier la hauteur on utiliserai le paramètre -resize x250
- vous pouvez voir un exemple ici
3/ Conversion , redimensionnement et ajout d’un filet gris
Parmi les options qu’il propose imagemagick autorise la création de cadre et de filet, nous allons par exemple pouvoir rajouter u fin filet à notre vignette en procédant de la manière suivante :
1 |
convert nomdufichierpdf.pdf[0] -resample 72 -resize 248 -bordercolor "#DFDFDF" -border 1 nomdufichierimage.png |
- Le paramètre -bordercolor indique la couleur souhaitée pour le contour
- Le paramètre -border indique l’épaisseur du contour en pixel
- vous pouvez voir un exemple ici
4/ Pour aller plus loin
- Les exemples de cet article sont ici
- outre le traitement de PDF, Imagemagick est capable de traiter de nombreux format de fichiers image et de leur appliquer de nombreux effets, la liste des options de ligne de commande est disponible sur le site d’imagemagick
- je vous invite aussi à découvrir ce tutoriel qui explique de manière très simple comment dompter la bête ;o)
Bonjour,
Merci pour cet article, ca me donne des idées. J’ai quelques questions pour toi:
est ce qu’elle (imagemagick) ne s’utilise que sur des fichiers pdf ?
Bonjour, mimi,
non, imagemagick est un logiciel de traitement d’images qui gére de nombreux formats, on trouve de nombreux exemple sur le site officiel http://www.imagemagick.org/ (en anglais) et sur des sites consacrés au logiciels libre en français là http://linuxfr.org/users/libre/journaux/documentation-dimagemagick-en-fran%C3%A7ais par exemple
Bonjour. Désolée d’avoir déterré un article de 10 ans d’âge.
Depuis quelques mois, mon hébergeur a désactivé la création de miniature de fichier non-image comme le pdf avec ImageMagick. pour des raisons de « sécurité » , mais c’est aussi, je pense, pour ne pas surcharger le travail du serveur. En fait, il s’agit de External ImageMagick et mon serveur est mutualisé, donc je n’ai pas la main sur la config.
D’où mes 3 questions :
1 – quel est ce souci de sécurité qui a dû être signalé courant 2020 ?
2 – si je prends un serveur dédié, est-ce que j’aurais la main sur la configuration d’Image Magick ? Il est possible que l’hébergement dédié sera équipé de ImageMagick (sans « extaernal)
3 – Quelle autre solution pour la création automatique de miniatures côté serveur ?
Actuellement je prépare pour chaque PDF la création en local d’une miniature avec la fonction Exporter vers image de mon logiciel PDF Xchange viewer