Script d’ajout de filigrane sur un fichier PDF en Bash
Posted by pierre on Juin 20, 2023 in Bibliothèque, Shell Bash

Fonctionnalité : Ce script Bash a été conçu pour faciliter l’ajout d’un filigrane sur un fichier PDF. Il permet d’intégrer un filigrane personnalisé (généralement une image ou un texte) sur toutes les pages d’un document PDF, garantissant ainsi la traçabilité ou la confidentialité dudit document.
- Interface en ligne de commande : Le script s’exécute dans un terminal et nécessite uniquement l’usage de commandes simples pour fonctionner.
- Compatibilité : Le script est conçu pour fonctionner sur la majorité des distributions Linux où les dépendances nécessaires (comme
pdftk
ouImageMagick
) peuvent être installées. - Paramètres d’entrée :
- Fichier PDF source : Le document sur lequel le filigrane doit être appliqué.
- Filigrane (sous forme d’image ou de texte) : Le contenu qui sera superposé sur chaque page du PDF.
- Fichier PDF de sortie : Le nom du nouveau PDF qui sera généré avec le filigrane.
- Performance : Le script est optimisé pour traiter les documents rapidement, bien que la durée puisse varier selon la taille du document d’origine et la complexité du filigrane.
Utilisation : Après avoir défini les droits d’exécution nécessaires, le script peut être lancé directement depuis le terminal. Les utilisateurs doivent fournir les trois paramètres mentionnés pour obtenir le PDF avec le filigrane.
Sécurité : Le script fonctionne en local, garantissant ainsi que le document source ne quitte jamais la machine de l’utilisateur, ce qui assure une protection maximale contre d’éventuelles fuites de données
Le script filligrane.sh
#!/bin/bash
# Vérification du nombre d'arguments
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <input.pdf> <watermark.png> <output.pdf>"
exit 1
fi
input_pdf="$1"
watermark_png="$2"
output_pdf="$3"
# Convertir le PNG en PDF pour pouvoir l'utiliser comme filigrane
pdftoppm -png "$input_pdf" /tmp/page
# Pour chaque page du PDF
for page in /tmp/page-*.png; do
# Utiliser ImageMagick pour superposer le filigrane sur chaque page
convert "$page" "$watermark_png" -gravity center -composite "${page%.png}_watermarked.png"
done
# Convertir les images watermarked en PDF
img2pdf $(ls /tmp/page-*_watermarked.png | sort -V) -o "$output_pdf"
# Supprimer les fichiers temporaires
rm /tmp/page-*.png
echo "Watermark added successfully to $output_pdf"