PDF commande Linux — Virtuozia
En bref : Linux dispose d’un écosystème riche d’outils en ligne de commande pour créer, convertir, fusionner, diviser, compresser et extraire du contenu depuis des fichiers PDF — sans interface graphique ni logiciel commercial.Les outils incontournables sont pdftk, pdfunite, pdfseparate, qpdf, ImageMagick (convert), wkhtmltopdf et Ghostscript (gs), chacun couvrant des cas d’usage spécifiques.La maîtrise des commandes PDF sous Linux permet d’automatiser des workflows documentaires complexes via des scripts Bash, ouvrant des possibilités de traitement en lot inaccessibles avec des outils graphiques.
PDF commande Linux : créer, convertir et manipuler des PDF en ligne de commande
Le format PDF — Portable Document Format — est omniprésent dans les environnements professionnels et académiques. Sous Linux, la manipulation de fichiers PDF depuis la ligne de commande est non seulement possible mais particulièrement puissante : elle permet d’automatiser des traitements en lot, d’intégrer la gestion documentaire dans des scripts Bash et de réaliser des opérations complexes (fusion, découpe, compression, extraction de texte, ajout de métadonnées) sans aucune interface graphique. Ce guide détaille les commandes Linux les plus utiles pour travailler avec des PDF, organisées par cas d’usage.
- Les outils PDF Linux essentiels et leur installation
- Fusionner et diviser des PDF sous Linux
- Convertir des fichiers vers et depuis le PDF
- Extraire, compresser et modifier des PDF
- Questions fréquentes — PDF commande Linux
Les outils PDF Linux essentiels et leur installation
Avant d’explorer les commandes, il est utile de connaître l’écosystème des outils disponibles sous Linux pour la manipulation de PDF. Ces outils sont majoritairement open source et disponibles dans les dépôts des principales distributions.
Présentation des outils principaux
pdftk — PDF Toolkit — est l’un des outils les plus complets et les plus populaires pour la manipulation de PDF en ligne de commande. Il couvre la fusion, la division, la rotation de pages, l’ajout de filigrane, le remplissage de formulaires et la gestion des métadonnées. Ghostscript (gs) est un interpréteur PostScript et PDF de référence, particulièrement puissant pour la conversion, la compression et le rendu de fichiers PDF. pdfunite et pdfseparate font partie du paquet poppler-utils et permettent respectivement de fusionner et de diviser des PDF. qpdf est un outil de bas niveau très efficace pour inspecter, transformer et réparer des fichiers PDF. wkhtmltopdf convertit des pages HTML vers le PDF. pandoc est un convertisseur universel de documents qui prend en charge le PDF parmi de nombreux autres formats. ImageMagick (commande convert) permet de convertir des images vers le PDF et vice versa.
Installation des outils selon la distribution
Sur les distributions basées sur Debian/Ubuntu :
# Installation des outils essentiels sudo apt update sudo apt install pdftk poppler-utils qpdf ghostscript imagemagick wkhtmltopdf # Installation de pandoc (convertisseur universel) sudo apt install pandoc # Vérification des installations pdftk --version gs --version qpdf --version
Sur les distributions basées sur Red Hat/Fedora :
sudo dnf install pdftk poppler-utils qpdf ghostscript ImageMagick wkhtmltopdf
Sur Arch Linux :
sudo pacman -S pdftk poppler qpdf ghostscript imagemagick wkhtmltopdf
🔍 Analyse
Sur Ubuntu 22.04 et versions ultérieures, pdftk n’est plus disponible directement dans les dépôts officiels. Deux alternatives existent : installer pdftk-java (version Java de pdftk, fonctionnellement équivalente) via sudo apt install pdftk-java, ou utiliser snap avec sudo snap install pdftk. Pour les scripts de production, pdftk-java est recommandé car il ne nécessite pas le daemon snap.
Fusionner et diviser des PDF sous Linux
La fusion et la division de fichiers PDF sont les opérations les plus fréquentes dans les workflows documentaires. Linux propose plusieurs outils pour ces tâches, avec des syntaxes et des niveaux de contrôle différents.
Fusionner des PDF avec pdfunite (poppler-utils)
pdfunite est la commande la plus simple pour fusionner des fichiers PDF. Elle fait partie du paquet poppler-utils, généralement installé par défaut sur les distributions Linux modernes.
# Fusionner deux fichiers PDF pdfunite fichier1.pdf fichier2.pdf resultat.pdf # Fusionner plusieurs fichiers dans un ordre précis pdfunite rapport1.pdf rapport2.pdf rapport3.pdf rapport_complet.pdf # Fusionner tous les PDF d'un répertoire (ordre alphabétique) pdfunite *.pdf fusion_complete.pdf # Fusionner avec un tri numérique des noms de fichiers ls -v *.pdf | xargs pdfunite - fusion_triee.pdf
Fusionner des PDF avec pdftk
pdftk offre davantage de contrôle que pdfunite, notamment la possibilité de sélectionner des plages de pages spécifiques dans chaque fichier source.
# Fusion simple de deux fichiers pdftk fichier1.pdf fichier2.pdf cat output resultat.pdf # Fusionner en sélectionnant des pages spécifiques # Pages 1-3 du fichier A, puis pages 5-7 du fichier B pdftk A=document1.pdf B=document2.pdf cat A1-3 B5-7 output selection.pdf # Fusionner toutes les pages impaires d'un fichier avec toutes les pages paires d'un autre pdftk A=recto.pdf B=verso.pdf shuffle A B output recto_verso.pdf # Fusionner en inversant l'ordre des pages d'un fichier pdftk A=fichier1.pdf B=fichier2.pdf cat A Bend-1 output fusion_inverse.pdf
Diviser un PDF avec pdfseparate
pdfseparate extrait chaque page d’un PDF dans un fichier distinct. Le motif de nommage utilise %d pour le numéro de page.
# Extraire toutes les pages dans des fichiers distincts pdfseparate document.pdf page_%d.pdf # Crée : page_1.pdf, page_2.pdf, page_3.pdf... # Extraire uniquement les pages 3 à 7 pdfseparate -f 3 -l 7 document.pdf page_%d.pdf # Extraire avec un nom de fichier padding (ex: page_001.pdf) pdfseparate document.pdf "page_%03d.pdf" # Extraire dans un répertoire dédié mkdir pages_extraites pdfseparate document.pdf pages_extraites/page_%d.pdf
Extraire des plages de pages avec pdftk
# Extraire les pages 1 à 10 pdftk document_complet.pdf cat 1-10 output pages_1_10.pdf # Extraire la dernière page pdftk document.pdf cat end output derniere_page.pdf # Extraire les pages 1, 3 et 5 (non contiguës) pdftk document.pdf cat 1 3 5 output selection.pdf # Extraire les pages impaires uniquement pdftk document.pdf cat odd output pages_impaires.pdf # Extraire les pages paires uniquement pdftk document.pdf cat even output pages_paires.pdf
Diviser avec qpdf
# Extraire les pages 5 à 10 d'un PDF
qpdf document.pdf --pages document.pdf 5-10 -- extrait.pdf
# Diviser un PDF en fichiers de N pages chacun
# (qpdf ne propose pas cette fonction nativement,
# combinaison avec un script Bash recommandée)
total=$(qpdf --show-npages document.pdf)
for ((i=1; i<=total; i+=5)); do
end=$((i+4))
[ $end -gt $total ] && end=$total
qpdf document.pdf --pages document.pdf ${i}-${end} -- "partie_${i}.pdf"
done
Convertir des fichiers vers et depuis le PDF sous Linux
La conversion de et vers le format PDF est l’une des opérations les plus fréquentes dans les environnements professionnels. Linux propose plusieurs outils selon le type de fichier source ou cible.
Convertir des images en PDF avec ImageMagick
# Convertir une image en PDF convert image.jpg document.pdf convert image.png document.pdf # Convertir plusieurs images en un seul PDF (dans l'ordre) convert image1.jpg image2.jpg image3.jpg document_multi.pdf # Convertir toutes les images d'un répertoire en PDF unique convert $(ls -v *.jpg) document_complet.pdf # Définir la résolution (DPI) pour la conversion convert -density 300 image.png document_hd.pdf # Convertir avec une taille de page spécifique (A4) convert -page A4 image.jpg document_a4.pdf # Convertir un PDF en images (une image par page) convert -density 150 document.pdf page_%04d.png # Convertir un PDF en images JPEG de haute qualité convert -density 300 -quality 90 document.pdf page_%04d.jpg
⚠️ Point de vigilance
Sur les distributions récentes, ImageMagick peut afficher une erreur « attempt to perform an operation not allowed by the security policy » lors de la manipulation de PDF. Cela est dû à une politique de sécurité par défaut restrictive. Pour résoudre ce problème, modifiez le fichier /etc/ImageMagick-6/policy.xml (ou ImageMagick-7 selon la version) : trouvez la ligne <policy domain="coder" rights="none" pattern="PDF" /> et changez rights="none" en rights="read|write". Rechargez ensuite ImageMagick. Cette modification expose potentiellement à des vulnérabilités de sécurité — évaluez ce risque selon votre contexte.
Convertir du HTML en PDF avec wkhtmltopdf
# Convertir une page web en PDF
wkhtmltopdf https://www.example.com page_web.pdf
# Convertir un fichier HTML local en PDF
wkhtmltopdf page_locale.html document.pdf
# Définir la taille de page et les marges
wkhtmltopdf --page-size A4 \
--margin-top 20mm \
--margin-bottom 20mm \
--margin-left 15mm \
--margin-right 15mm \
page.html document_formate.pdf
# Ajouter un en-tête et un pied de page
wkhtmltopdf --header-center "Mon Document" \
--footer-right "Page [page] sur [toPage]" \
--footer-font-size 9 \
page.html document_avec_entetes.pdf
# Conversion en mode paysage
wkhtmltopdf --orientation Landscape page.html document_paysage.pdf
# Convertir plusieurs pages HTML en un seul PDF
wkhtmltopdf page1.html page2.html page3.html document_multi.pdf
Convertir des documents Office en PDF avec LibreOffice
# Convertir un fichier Word en PDF (mode headless, sans interface graphique)
libreoffice --headless --convert-to pdf document.docx
# Convertir un fichier Excel en PDF
libreoffice --headless --convert-to pdf tableur.xlsx
# Convertir un fichier PowerPoint en PDF
libreoffice --headless --convert-to pdf presentation.pptx
# Convertir plusieurs fichiers à la fois dans un répertoire cible
libreoffice --headless --convert-to pdf *.docx --outdir /chemin/vers/pdf/
# Convertir en précisant le format de sortie détaillé
libreoffice --headless \
--convert-to "pdf:writer_pdf_Export" \
document.odt
Convertir du Markdown en PDF avec pandoc
# Conversion Markdown vers PDF (nécessite une installation LaTeX)
pandoc document.md -o document.pdf
# Avec des options de mise en page
pandoc document.md \
--pdf-engine=xelatex \
-V geometry:margin=2cm \
-V fontsize=11pt \
-o document_formate.pdf
# Avec un modèle personnalisé
pandoc document.md \
--template=mon_template.tex \
-o document_template.pdf
# Convertir avec table des matières
pandoc document.md \
--toc \
--toc-depth=3 \
-o document_avec_toc.pdf
# Installer les dépendances LaTeX si nécessaire
sudo apt install texlive-xetex texlive-fonts-recommended
Extraire, compresser et modifier des PDF sous Linux
Au-delà de la fusion et de la conversion, les commandes Linux permettent d’effectuer des opérations plus avancées sur les fichiers PDF : extraction de texte, compression, rotation de pages, ajout de métadonnées et suppression de mots de passe.
Extraire le texte d’un PDF
# Extraire le texte brut (pdftotext fait partie de poppler-utils) pdftotext document.pdf texte_extrait.txt # Extraire le texte en conservant la mise en page (colonnes) pdftotext -layout document.pdf texte_layout.txt # Extraire le texte d'une plage de pages pdftotext -f 3 -l 7 document.pdf texte_pages_3_7.txt # Extraire le texte vers la sortie standard (stdout) pdftotext document.pdf - # Utile dans les pipelines Bash : pdftotext document.pdf - | grep "terme_recherche" pdftotext document.pdf - | wc -w # Compter les mots # Extraire le texte avec positionnement XML (pour traitement avancé) pdftotext -bbox document.pdf texte_positionne.xml
Compresser un PDF avec Ghostscript
Ghostscript est l’outil de référence pour réduire la taille des fichiers PDF. Il propose différents niveaux de compression selon l’usage cible.
# Compression standard (screen : très compressé, pour écran uniquement)
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/screen \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=compresse_screen.pdf \
original.pdf
# Compression ebook (bon équilibre taille/qualité)
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=compresse_ebook.pdf \
original.pdf
# Compression printer (haute qualité pour impression)
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/printer \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=compresse_printer.pdf \
original.pdf
# Compression prepress (qualité maximale, fichier plus volumineux)
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/prepress \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=compresse_prepress.pdf \
original.pdf
# Script Bash pour compresser tous les PDF d'un répertoire
for pdf in *.pdf; do
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile="compresse_${pdf}" \
"$pdf"
echo "Compressé : $pdf → compresse_${pdf}"
done
Faire pivoter des pages avec pdftk
# Faire pivoter toutes les pages de 90° dans le sens horaire pdftk document.pdf rotate 1-endright output document_pivote.pdf # Faire pivoter toutes les pages de 90° dans le sens antihoraire pdftk document.pdf rotate 1-endleft output document_pivote.pdf # Faire pivoter toutes les pages de 180° pdftk document.pdf rotate 1-enddown output document_retourne.pdf # Faire pivoter uniquement les pages impaires de 90° (utile pour scans recto-verso) pdftk document.pdf rotate 1-endright output document_impair_pivote.pdf # Faire pivoter une page spécifique (page 3) de 90° pdftk A=document.pdf cat A1-2 A3right A4-end output page3_pivotee.pdf
Gérer les mots de passe et les permissions
# Protéger un PDF avec un mot de passe utilisateur (lecture)
pdftk document.pdf output protege.pdf user_pw "mot_de_passe"
# Protéger avec mot de passe propriétaire (modification)
pdftk document.pdf output protege.pdf owner_pw "mdp_proprio" user_pw "mdp_lecture"
# Supprimer le mot de passe d'un PDF (nécessite de connaître le mot de passe actuel)
pdftk protege.pdf input_pw "mot_de_passe" output sans_mdp.pdf
# Supprimer les restrictions avec qpdf
qpdf --password="mot_de_passe" --decrypt protege.pdf dechiffre.pdf
# Ajouter des restrictions (interdire l'impression, la copie)
pdftk document.pdf output restreint.pdf owner_pw "proprietaire" \
allow DegradedPrinting # Permet uniquement l'impression basse qualité
Gérer les métadonnées d’un PDF
# Afficher les métadonnées d'un PDF pdftk document.pdf dump_data output metadata.txt cat metadata.txt # Afficher le nombre de pages qpdf --show-npages document.pdf pdfinfo document.pdf | grep "Pages:" # Afficher toutes les informations (pdfinfo fait partie de poppler-utils) pdfinfo document.pdf # Modifier les métadonnées avec pdftk # 1. Extraire les métadonnées actuelles pdftk document.pdf dump_data output metadata.txt # 2. Modifier le fichier metadata.txt (exemple) # InfoBegin # InfoKey: Title # InfoValue: Mon Nouveau Titre # InfoBegin # InfoKey: Author # InfoValue: Nom Auteur # 3. Réimporter les métadonnées modifiées pdftk document.pdf update_info metadata.txt output document_meta.pdf
Script Bash complet : traitement en lot de PDF
#!/bin/bash
# Script de traitement en lot : compresser et ajouter un filigrane
# Usage : ./traitement_pdf.sh /chemin/vers/repertoire
REPERTOIRE="${1:-.}"
SORTIE="pdf_traites"
mkdir -p "$SORTIE"
for pdf in "$REPERTOIRE"/*.pdf; do
nom=$(basename "$pdf" .pdf)
echo "Traitement : $nom.pdf"
# Étape 1 : Compression avec Ghostscript
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile="/tmp/${nom}_compresse.pdf" \
"$pdf"
# Étape 2 : Déplacement vers le répertoire de sortie
mv "/tmp/${nom}_compresse.pdf" "$SORTIE/${nom}.pdf"
# Afficher la réduction de taille
taille_originale=$(du -k "$pdf" | cut -f1)
taille_finale=$(du -k "$SORTIE/${nom}.pdf" | cut -f1)
reduction=$(( (taille_originale - taille_finale) * 100 / taille_originale ))
echo " → Réduction : ${reduction}% (${taille_originale}Ko → ${taille_finale}Ko)"
done
echo "Traitement terminé. Fichiers dans : $SORTIE/"
✅ À retenir
La puissance des commandes PDF sous Linux réside dans leur composition : en enchaînant plusieurs outils dans des pipelines Bash (|) ou des scripts, il est possible d’automatiser des workflows documentaires complexes — par exemple, extraire le texte de tous les PDF d’un répertoire, les compresser, les fusionner et générer un index automatiquement — en quelques dizaines de lignes de script. Cette composabilité est l’avantage décisif de l’approche ligne de commande par rapport aux outils graphiques qui traitent généralement un fichier à la fois.
Questions fréquentes — PDF commande Linux
Quelle commande Linux utiliser pour fusionner des PDF simplement ?
Pour une fusion simple sans sélection de pages, pdfunite (paquet poppler-utils) est la commande la plus rapide et la plus légère. Sa syntaxe est directe : pdfunite fichier1.pdf fichier2.pdf resultat.pdf. Pour une fusion avec sélection de plages de pages ou des options avancées (ordre des pages, mélange recto-verso), pdftk est plus adapté. Si les deux outils produisent des résultats similaires pour une fusion basique, pdfunite est préférable pour sa légèreté et sa disponibilité dans les dépôts par défaut, tandis que pdftk est à privilégier dès que des manipulations de pages plus précises sont nécessaires.
Comment réduire la taille d’un PDF sous Linux sans perdre trop de qualité ?
Ghostscript avec le paramètre -dPDFSETTINGS=/ebook est la solution recommandée pour réduire la taille d’un PDF sous Linux avec un bon équilibre qualité/compression. Cette option réduit la résolution des images embarquées à 150 DPI — suffisant pour un affichage écran confortable — et compresse les autres éléments du fichier. Pour comparer les résultats, vous pouvez tester les différents niveaux : /screen (compression maximale, qualité minimale), /ebook (bon compromis), /printer (haute qualité) et /prepress (qualité maximale, compression minimale). La commande du -h fichier.pdf permet de comparer les tailles avant et après compression.
Comment extraire toutes les images d’un PDF sous Linux ?
La commande pdfimages (paquet poppler-utils) est spécialement conçue pour extraire les images embarquées dans un fichier PDF. La commande pdfimages document.pdf prefixe extrait toutes les images dans le répertoire courant avec le préfixe spécifié. L’option -j force la sortie en JPEG pour les images couleur, -png force la sortie en PNG. L’option -list affiche la liste des images sans les extraire, ce qui permet de connaître leur nombre, leur type et leurs dimensions avant extraction. Exemple complet : pdfimages -j -p document.pdf images/img extrait toutes les images en JPEG dans le répertoire images/ avec numéro de page inclus dans le nom de fichier.
Comment vérifier si un PDF est valide ou corrompu sous Linux ?
qpdf est l’outil le plus efficace pour vérifier l’intégrité d’un fichier PDF sous Linux. La commande qpdf --check document.pdf analyse la structure interne du fichier et signale les erreurs ou avertissements détectés. Un fichier valide retourne No syntax or stream encoding errors found. Si des erreurs sont détectées, qpdf peut tenter une réparation automatique via qpdf --repair document.pdf repare.pdf. pdfinfo document.pdf est une alternative plus légère pour vérifier qu’un PDF peut être lu — si la commande s’exécute sans erreur et affiche les métadonnées, le fichier est structurellement valide.
La manipulation de PDF en ligne de commande sous Linux est une compétence précieuse pour tout administrateur système, développeur ou professionnel de la gestion documentaire. L’écosystème d’outils disponibles — pdftk, poppler-utils, Ghostscript, qpdf, ImageMagick, wkhtmltopdf — couvre l’ensemble des opérations courantes et avancées sur les fichiers PDF. Leur composabilité dans des scripts Bash permet d’automatiser des workflows documentaires complets qui seraient laborieux avec des outils graphiques. La commande pdfunite pour les fusions simples, pdftk pour les manipulations de pages, Ghostscript pour la compression et pdftotext pour l’extraction de texte constituent le quartet essentiel à maîtriser pour traiter efficacement des PDF sous Linux en 2026.