l’Almanet doLys Gnu/Linux – Open Source – Entreprises › Forums › L’almanet doLys Open Source › Mini-app pour nettoyer les métadonnées d’un PDF sous Arch/XFCE
- This topic is empty.
- AuteurArticles
- septembre 8, 2026 à 12:29 pm #13354
Vous voulez un PDF tout propre qui n’indique pas que vous l’avez créé à 2 h du matin, en le scannant sur l’imprimante de votre cousin depuis une feuille de calcul ?
Les nettoyeurs de métadonnées graphiques existent, mais certains prennent le marteau-pilon : ils rasterisent le PDF, suppriment la couche texte et transforment parfois quelques dizaines de kilo-octets en un gros pseudo-scan.
Ici, ExifTool supprime les métadonnées et qpdf réécrit le fichier sans dégrader le document. L’original reste à sa place.
1. Installer les trois outils
Sous Arch Linux ou EndeavourOS :
sudo pacman -S qpdf perl-image-exiftool zenityzenitysert uniquement à obtenir une petite fenêtre de sélection de fichiers. Pas besoin de lancer un terminal à chaque fois.2. Créer la mini-app
Créez le fichier :
mkdir -p ~/.local/bin nano ~/.local/bin/pdfclean-safeEt collez ceci :
#!/usr/bin/env bash set -euo pipefail EXIFTOOL="$(command -v exiftool || true)" if [[ -z "$EXIFTOOL" && -x /usr/bin/vendor_perl/exiftool ]]; then EXIFTOOL=/usr/bin/vendor_perl/exiftool fi QPDF="$(command -v qpdf || true)" if [[ -z "$EXIFTOOL" || -z "$QPDF" ]]; then zenity --error \ --title="PDFClean Safe" \ --text="Il manque qpdf ou ExifTool." exit 1 fi unique_output() { local in="$1" local stem="${in%.*}" local out="${stem}.clean.pdf" local n=2 while [[ -e "$out" ]]; do out="${stem}.clean-${n}.pdf" ((n++)) done printf '%s\n' "$out" } if (($#)); then files=("$@") else selection="$( zenity \ --file-selection \ --multiple \ --separator=$'\n' \ --file-filter="PDF | *.pdf *.PDF" \ --title="Choisir les PDF à nettoyer" )" || exit 0 mapfile -t files <<< "$selection" fi success=() failed=() for in in "${files[@]}"; do if [[ ! -f "$in" || "${in,,}" != *.pdf ]]; then failed+=("$in") continue fi out="$(unique_output "$in")" tmp="$(mktemp --suffix=.pdf)" cp -- "$in" "$tmp" before="$("$QPDF" --show-npages "$in" 2>/dev/null || true)" if ! "$EXIFTOOL" \ -overwrite_original \ -all= \ "$tmp" >/dev/null 2>&1 then rm -f -- "$tmp" failed+=("$in") continue fi if ! "$QPDF" \ --remove-info \ --remove-metadata \ --object-streams=generate \ "$tmp" "$out" 2>/dev/null then rm -f -- "$tmp" "$out" failed+=("$in") continue fi rm -f -- "$tmp" after="$("$QPDF" --show-npages "$out" 2>/dev/null || true)" if [[ -n "$before" && -n "$after" && "$before" != "$after" ]]; then rm -f -- "$out" failed+=("$in") continue fi if ! "$QPDF" --check "$out" >/dev/null 2>&1; then rm -f -- "$out" failed+=("$in") continue fi success+=("$out") done message="" if ((${#success[@]})); then message+="PDF nettoyé(s) :\n\n" for f in "${success[@]}"; do message+="• $f\n" done fi if ((${#failed[@]})); then message+="\nÉchec(s) :\n" for f in "${failed[@]}"; do message+="• $f\n" done fi if ((${#failed[@]})); then zenity --warning \ --title="PDFClean Safe" \ --text="$message" \ --width=600 else zenity --info \ --title="PDFClean Safe" \ --text="$message" \ --width=600 fiPuis rendez-le exécutable :
chmod +x ~/.local/bin/pdfclean-safe3. Ajouter le lanceur XFCE
mkdir -p ~/.local/share/applications cat > ~/.local/share/applications/pdfclean-safe.desktop <<EOF [Desktop Entry] Type=Application Name=PDFClean Safe Comment=Nettoyer les métadonnées d'un PDF sans le rasteriser Exec=$HOME/.local/bin/pdfclean-safe %F Icon=application-pdf Terminal=false Categories=Utility;Office; MimeType=application/pdf; StartupNotify=true EOF chmod +x ~/.local/share/applications/pdfclean-safe.desktopLe programme apparaît alors dans le menu des applications XFCE. Un clic ouvre directement la fenêtre de sélection des PDF.
4. Mettre également un raccourci sur le Bureau
desktop="$(xdg-user-dir DESKTOP)" cp ~/.local/share/applications/pdfclean-safe.desktop \ "$desktop/PDFClean Safe.desktop" chmod +x "$desktop/PDFClean Safe.desktop" gio set \ "$desktop/PDFClean Safe.desktop" \ metadata::trusted true 2>/dev/null || trueVous avez maintenant votre gros bouton « nettoie-moi ça » sur le Bureau.
5. Utilisation
Sélectionnez un ou plusieurs PDF. Pour :
rapport.pdfl’application produit :
rapport.clean.pdfSi ce fichier existe déjà :
rapport.clean-2.pdf rapport.clean-3.pdf ...L’original n’est jamais modifié.
Métadonnées supprimées
La mini-app vise notamment les champs PDF/XMP du genre :
Author Creator Producer CreateDate ModifyDate MetadataDate DocumentID InstanceID OriginalDocumentIDCe sont les petites miettes qui peuvent raconter que le document vient de Word, LibreOffice, Firefox, tel scanner, tel profil utilisateur ou tel logiciel ou poste qui a produit le PDF.
Limites
La mini-app ne rasterise pas le document. Un PDF contenant du vrai texte doit conserver son vrai texte : recherche, copier-coller, accessibilité et qualité d’impression restent intactes. Elle n’efface évidemment pas les traces externes au PDF, comme les dates du système de fichiers, et le nom que vous donnez au fichier reste visible.
On nettoie le PDF, on ne le détruit pas.
Pour les curieux : vérifier avant et après
exiftool -a -u -G1 document.pdf exiftool -a -u -G1 document.clean.pdf qpdf --check document.clean.pdfEt pour vérifier qu’un « nettoyeur » ne vous a pas discrètement transformé le PDF en deux JPEG déguisés :
pdffonts document.clean.pdf pdfimages -list document.clean.pdfUn peu de paranoïa technique ne nuit pas — surtout quand le « nettoyeur » transforme 50 ko de PDF en 500 ko d’images.
Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc
- AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.