Applescript ->Remplir automatiquement un pdf modifiable (dates et numéro)

Mattdu62

Membre confirmé
19 Décembre 2022
30
0
43
Bonjour,

J'ai un pdf modifiable avec 3 champs :
  • la date actuelle (format : mois année -> exemple : mai 2024),
  • la date d'envoi par courrier du colis,
  • un numéro à 7 chiffres.

J'aimerai créer un applescript qui me demande :
  • de sélectionner le pdf modifiable à traiter,
  • la date d'envoi du colis,
  • le numéro à 7 chiffres
  • l'endroit d'enregistrement
Il devra changer automatiquement si possible la date actuelle.

Les champs se nomment : "dactuelle" , "ddepot" et "num".

Je pense que cet Applescript devra lancer un javascript pour modifier le pdf dans Acrobat.

Pouvez-vous m'aider à créer ce script?

Cordialement

Matt
 
Dernière édition:
Salut,
Je ne maitrise suffisamment pas Applescript pour ce genre de script, mais par contre, c'est réalisable avec Python et quelques pré-requis.
  • Installation de Python 3.12
  • Installation de la bibliothèque PyQt
  • Installation de la bibliothèque PyPDF2
On pourrait obtenir ce genre d'interface :
autofillPDF.png
 
Bonjour Garkam.
Je te remercie pour ton aide. J'aimerais que ce soit un applescript pour pouvoir l'intégrer dans un autre applescript.
Si je comprends bien, tu fais tout le script sur python. est-il possible que ton script reprenne des données applescript?
J'aimerai que l'applescript me demande les variables et que le python fasse le boulot...

Mais l'interface graphique est sympa. J'avais déjà essayé de faire un python pour créer un datamatrix mais les lignes de commande rendaient l'utilisation compliquée. Mais avec une interface graphique ça rend la chose plus digeste à mes yeux...

Peux-tu révéler le script pour que je l'essaye stp?

Cordialement
 
Salut,
Je pense que Python et Applescript peuvent communiquer, dans le pire des cas, Python peut récupérer les variables via un fichier d'échange ou le presse-papier.
Pour les modules à installer :
Bash:
pip install pyqt5
pip install pypdf
Voilà le lien du script :
https://github.com/diablo76600/Autofill_PDF/archive/refs/heads/main.zip
Edit: Applescript sait exécuter un script Python, donc je ne pense pas que ça pose un problème pour récupérer tes variables.
 
Bonjour
J'ai continué mes recherches. J'ai fait un Applescript qui crée un fichier .fdf avec les données à insérer dans le formulaire malheureusement la gestion de l'accentuation et des caractères spéciaux est catastrophique.


tell application "Finder"
-- Chemin vers le dossier principal
set lechemin to POSIX file "/Users/Matt/Travaux en cours/NOUVEAUTES" as alias
set newnomledossier to "Films" as text
-- Création du dossier principal
set mainFolder to make new folder at lechemin with properties {name:newnomledossier}
-- Création des sous-dossiers "_ex1" et "_ex2" dans le dossier principal
set folder_fl1 to make new folder at mainFolder with properties {name:newnomledossier & "_ex1"}
set folder_fl2 to make new folder at mainFolder with properties {name:newnomledossier & "_ex2"}
-- Définir le chemin du fichier source
set posixPath to "/Users/Matt/Travaux en cours/NOUVEAUTES/GABARITS/Utile script/Fiche form.pdf"
try
set
cheminFichierAcheve to POSIX file posixPath as alias
on error
display dialog "Le fichier source est introuvable : " & posixPath
return
end
try
-- Copier le fichier source dans le dossier principal
try
duplicate
cheminFichierAcheve to mainFolder
on error errMsg
display dialog "Une erreur s'est produite lors de la copie du fichier source : " & errMsg
return
end try
-- Chemin pour le fichier FDF
set fdfPath to POSIX path of (folder_fl1 as text) & "data.fdf"
-- Générer le fichier FDF
set fdfContent to "%FDF-1.2
1 0 obj
<< /FDF << /Fields [
<</T (Texte1) /V (en décembre)>>
<</T (Texte2) /V (dépôt légal)>>
<</T (Texte3) /V (N° d'édition)>>
] >> >>
endobj
trailer
<< /Root 1 0 R >>
%%EOF"
do shell script "echo " & quoted form of fdfContent & " > " & quoted form of fdfPath
-- Chemin pour le fichier PDF rempli
set filledPDFPath to POSIX path of (folder_fl2 as text) & "Fiche form_filled.pdf"
-- Utiliser pdftk pour remplir les champs PDF
do shell script "/opt/homebrew/bin/pdftk " & quoted form of POSIX path of posixPath & " fill_form " & quoted form of fdfPath & " output " & quoted form of filledPDFPath & " flatten"
-- Vérifier si le fichier PDF complété a été créé
if (do shell script "test -f " & quoted form of filledPDFPath & " && echo 'yes' || echo 'no'") = "yes" then
display dialog
"Le fichier PDF a été rempli et enregistré dans : " & filledPDFPath
else
display dialog
"Une erreur s'est produite lors de la création du fichier PDF complété."
end if
end
tell
 

Fichiers joints

  • Pdf obtenu avec erreurs.webp
    Pdf obtenu avec erreurs.webp
    5,7 KB · Affichages: 4
  • arborescence OK.webp
    arborescence OK.webp
    4,8 KB · Affichages: 4
  • formulaire.webp
    formulaire.webp
    6,4 KB · Affichages: 4