Ajouter une image à toutes les pages d’un PDF

Pour les « gros » fichiers PDF, il arrive parfois de devoir ajouter une image sur chacune des pages. Cet article vous propose une solution gratuite pour ajouter automatiquement une image à toutes les pages d’un fichier PDF. La solution proposée est un script Python :

Partie 1 : l’installation de Python et des modules complémentaires pour ajouter une image automatiquement à toutes les pages d’un PDF

Si vous ne vous y connaissez pas du tout en Python, il va d’abord falloir l’installer : https://www.python.org/downloads/ la dernière version vous est proposée. Installez la. Par défaut Python s’installera dans C:\Python\Pythonxy (xy : numéro de version).

Puis il vous faudra deux modules complémentaires Python :

Reportlab sur https://pypi.org/project/reportlab/ (download files sur la gauche) cherchez le nom contenant « win » (pour Windows) et 32 si vous avez un Windows 32 bits ou 64 si vous avez un 64 bits (si vous ne connaissez pas votre version, quelques infos ici)

Et PyPDF2 sur https://pypi.org/project/PyPDF2/ idem qu’avant download files sur la gauche. Il n’y a normalement qu’un fichier.

Pour l’installation si vous n’avez pas de connaissance en programmation la manipulation est un peu complexe. Placez les deux fichiers correspondant aux modules complémentaires dans le dossier d’installation de Python (C:\Python\Pythonxy). Puis cliquez droit sur le bouton Windows en bas à gauche :

Ajouter une image à un PDF en Python

Cliquez sur « Exécuter ». Tapez « cmd » (sans les guillemets) puis validez par Entrée. La boite de commande s’ouvre :

Boite de commande pour ajout images PDF

Il va alors falloir trouver votre dossier d’installation de Python :

La commande « cd.. » permet de revenir au dossier parent, et la commande cd « nomdudossier » (sans les guillemets, vous permet d’aller dans un dossier contenu dans le dossier actuellement actif).

Pour mon exemple je fais donc cd.. puis entrée pour revenir à :

Boite de commande

et à nouveau cd.. pour aller sur C:\, et je vais chercher ensuite mon dossier Python avec cd Python puis cd Python36 (car ma version de Python est la 3.6) :

Boite de commande finale PDF

je vais alors pouvoir installer mes deux modules complémentaires avec les commandes :

« python -m pip install reportlab » (sans guillemets puis validez par entrée, attendez ensuite l’installation)

« python -m pip install PyPDF2 » (idem)

 

Partie 2 : le script Python permettant d’ajouter un tampon à toutes les pages de votre fichier PDF

Maintenant que Python est installé vous allez pouvoir créer le script qui nous servira. Ouvrez le bloc-notes ou un éditeur de texte puis copiez-collez ce code :

import os
from reportlab.pdfgen import canvas
from PyPDF2 import PdfFileWriter, PdfFileReader

if not os.path.exists("temp"): #On vérifie si le dossier temporaire qu'on utilise pour nos tampons est déjà créé, sinon on le crée
	os.makedirs("temp")

# On prépare le fichier qui contiendra le tampon PDF
c1 = canvas.Canvas('temp/canvas.pdf')

# On insére l'image souhaitée dans le fichier précédent à la position souhaitée ('adresseimage.png', x, y)
c1.drawImage('montampon.png', 50, 50)

c1.save()

# On ouvre le fichier contenant le tamon
montampon = PdfFileReader(open("temp/canvas.pdf", "rb"))

# On ouvre le fichier sur lequel le tampon doit être inséré
output_file = PdfFileWriter()
input_file = PdfFileReader(open("fichieramodifier.pdf", "rb"))

# On récupère le nombre de pages du fichier
page_count = input_file.getNumPages()

# On ajoute à chaque page le tampon avec une boucle pour
for page_number in range(page_count):
    input_page = input_file.getPage(page_number)
    input_page.mergePage(montampon.getPage(0))
    output_file.addPage(input_page)

with open("fichier-final.pdf", "wb") as outputStream:
    output_file.write(outputStream)

print("Fini !")

os.system("pause")

Pensez à modifier le nom « montampon.png » par celui de votre image et celui du fichier « fichieramodifier.pdf ». Changez également les coordonnées de votre tampon (50, 50 dans mon exemple) par celles qui vous intéressent. Vous pouvez ensuite faire plusieurs essais : cliquez sur « Enregistrer sous » avec le nom tampon.py. Puis double cliquez sur le fichier tampon.py pour lancer le script. À chaque fois un document « fichier-final.pdf » est créé.

Le fonctionnement de ce code est le suivant :

  • on crée un fichier contenant le « tampon » qui ira sur chaque page.
  • on l’enregistre dans un fichier.
  • on ouvre le fichier à modifier et on ajoute le tampon sur chaque page.
  • on enregistre un nouveau fichier PDF !

Commentez pour toute remarque ou question sur le script ou Python !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.