Convertir un PDF en PNG en ligne de commande

pdftoppm, Ghostscript, ImageMagick : les trois commandes qui convertissent un PDF en PNG en lot, avec les réglages de résolution et les pièges classiques.

Trois outils pour le même travail

Sur un poste de travail, la conversion par lot se fait très bien en ligne de commande. Trois outils dominent, et le plus simple est souvent celui qui est déjà installé : Poppler, présent sur la plupart des distributions Linux et installable sur macOS via Homebrew.

pdftoppm : le plus direct

L'outil de la suite Poppler rend une page PDF en image, avec une option de résolution explicite :

pdftoppm -png -r 300 rapport.pdf page

Le résultat produit une image par page, nommée page-1.png,page-2.png, etc. Pour n'extraire qu'une plage précise, ajoutez les bornes de pages :

pdftoppm -png -r 150 -f 3 -l 7 rapport.pdf extrait

L'option -f indique la première page, -l la dernière. C'est la commande la plus rapide et la plus prévisible pour un lot, sans dépendance graphique.

Ghostscript : partout, mais verbeux

Ghostscript est disponible sur Windows, macOS et Linux, ce qui en fait le choix par défaut quand on ne peut rien installer d'autre. La commande complète ressemble à ceci :

gs -dNOPAUSE -dBATCH -sDEVICE=png16m -r300 \
   -sOutputFile=page-%03d.png rapport.pdf

Deux points méritent l'attention : png16m produit un PNG en couleur 24 bits, et le motif %03d impose des numéros de page sur trois chiffres, ce qui garantit un tri alphabétique correct au-delà de neuf pages.

ImageMagick : pratique, avec un piège

ImageMagick convertit une page unique en une commande, mais la résolution se règle avant la lecture du fichier, sans quoi il utilise 72 DPI par défaut :

convert -density 300 rapport.pdf[0] page-1.png

Le crochet indique le numéro de page, en commençant à zéro. Attention : depuis quelques années, la politique de sécurité par défaut d'ImageMagick bloque la lecture des PDF, une mesure liée à des vulnérabilités historiques de Ghostscript. Si la commande renvoie « not authorized », c'est ce réglage qu'il faut assouplir, en connaissance de cause.

Un lot complet en une boucle

Pour traiter un dossier entier, une boucle shell suffit, en réutilisant le nom de chaque fichier comme préfixe :

for f in *.pdf; do
  pdftoppm -png -r 150 "$f" "${f%.pdf}"
done

L'expression ${f%.pdf} retire l'extension d'origine pour construire un nom lisible : rapport-1.png plutôt que rapport.pdf-1.png.

Ligne de commande ou navigateur ?

Les deux approches rendent la page localement, sans envoi à un serveur. Le terminal reste imbattable pour traiter cinquante fichiers d'un coup, ou pour intégrer la conversion à un script. Le navigateur garde l'avantage de ne rien installer, de fonctionner sur n'importe quel poste, et de proposer un aperçu des pages avant conversion — ce qui évite souvent de produire des images inutiles.

Un conseil qui vaut pour les deux : vérifiez toujours la dimension en pixels de la première image produite. C'est le seul moyen de savoir si la résolution demandée a réellement été appliquée.

Prêt à convertir ?

Gratuit, sans compte, et le fichier ne quitte pas votre appareil.

Convertir mon PDF maintenant

Guides associés

Partager cette page

LinkedIn