Script d’ajout de filigrane sur un fichier PDF en 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 ou ImageMagick) 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"
    
Avatar de pierre