Générer des miniatures de fichiers pdf sur son site

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 :

  • 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 :

  • 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 :

  • 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

crédit photo

Générer des miniatures de fichiers pdf sur son site

3 commentaires sur “Générer des miniatures de fichiers pdf sur son site

  • 7 avril 2014 à 0 h 15 min
    Permalink

    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 ?

    Répondre
  • 24 août 2021 à 8 h 13 min
    Permalink

    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

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Merci de faire ce calcul pour valider votre commentaire *

Bear