|
|
@@ -20,6 +20,7 @@ import os, json, subprocess, zipfile, sys |
|
|
|
from PIL import Image, ImageDraw, ImageFont |
|
|
|
import piexif |
|
|
|
from pdf2image import convert_from_path |
|
|
|
import argparse |
|
|
|
|
|
|
|
def generate_image_with_text(text, font_size=40, line_spacing=50, transparency=0.40): |
|
|
|
text = "Document exclusivement destiné à " + text |
|
|
@@ -180,37 +181,48 @@ def zip_directory(directory, zip_file): |
|
|
|
if __name__ == '__main__': |
|
|
|
# Creation du répertoire sources pour mettre les documents |
|
|
|
create_original_files_directory() |
|
|
|
|
|
|
|
|
|
|
|
# Configure le parseur d'arguments |
|
|
|
parser = argparse.ArgumentParser(description='read arguments') |
|
|
|
parser.add_argument('--filigramme', type=str, help='Valeur du filigramm comme "agence (juillet 2024)"') |
|
|
|
|
|
|
|
# Analyse les arguments |
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
# Lecture de la configuration |
|
|
|
config = load_config() |
|
|
|
text = config["filigrame"] |
|
|
|
|
|
|
|
# Utilise la valeur du filigramme fournie ou celle par défaut de la configuration |
|
|
|
filigramme = args.filigramme if args.filigramme else config.get('filigrame', 'Protection par filigrame') |
|
|
|
|
|
|
|
source_directory = config["source_directory"] |
|
|
|
destination_directory = os.path.join(source_directory, text.replace(" ", "_")) |
|
|
|
destination_directory = os.path.join(source_directory, filigramme.replace(" ", "_")) |
|
|
|
temp_directory = os.path.join(source_directory, "temp") |
|
|
|
|
|
|
|
# Extrait les pages des pdf |
|
|
|
try: |
|
|
|
print("Extrait les pages des pdf") |
|
|
|
process_pdf_files(source_directory, text) |
|
|
|
process_pdf_files(source_directory, filigramme) |
|
|
|
|
|
|
|
# Rajoute le tag dans les images des pages du pdf |
|
|
|
print("Rajoute le tag dans les images des pages du pdf") |
|
|
|
merge_image_with_text(temp_directory, destination_directory, text) |
|
|
|
merge_image_with_text(temp_directory, destination_directory, filigramme) |
|
|
|
except: |
|
|
|
print(f"Aucun fichier PDF") |
|
|
|
|
|
|
|
# Rajoute le tag sur les images du répertoire courant |
|
|
|
try: |
|
|
|
print("Rajoute le tag sur les images du répertoire courant") |
|
|
|
merge_image_with_text(source_directory, destination_directory, text) |
|
|
|
merge_image_with_text(source_directory, destination_directory, filigramme) |
|
|
|
|
|
|
|
# Ouverture du répertoire contenant toutes les images tagées |
|
|
|
open_in_file_explorer(destination_directory) |
|
|
|
|
|
|
|
# Compression du répertoire |
|
|
|
if( is_key_defined_in_json("config.json", "zipfile")): |
|
|
|
fichierZip = os.path.join(config["zipfile"], text.replace(" ", "_") + ".zip") |
|
|
|
if( is_key_defined_in_json("config.json", "zipfileDirectory")): |
|
|
|
fichierZip = os.path.join(config["zipfileDirectory"], filigramme.replace(" ", "_") + ".zip") |
|
|
|
print("Compression du répertoire et sauvegarde dans ", fichierZip) |
|
|
|
zip_directory(destination_directory, fichierZip) |
|
|
|
|
|
|
|
# Ouverture du répertoire contenant toutes les images tagées |
|
|
|
open_in_file_explorer(config["zipfileDirectory"]) |
|
|
|
except: |
|
|
|
print(f"Aucune image à taguer") |