Donnez vie à vos documents numériques !
 

Publipostage PDF avec Excel

abracadabraPDF Forums PDF – Général Publipostage PDF avec Excel

  • Créateur
    Sujet
  • #45571
    marie
    Membre

    Bonjour,
    Très bonne année à ceux qui me liront.
    Je dois régulièrement remplir des PDF à la chaîne : même formulaire à remplir en 20 exemplaires par exemple. Savez-vous si il est possible de faire un publipostage à partir d’un fichier XLSX ?
    Si oui, pouvez-vous m’indiquer la marche à suivre ?
    Merci beaucoup

Affichage de 25 réponses de 1 à 25 (sur un total de 121)
  • Auteur
    Réponses
  • #61945
    Merlin
    Maître des clés

    Bonjour et bienvenue.

    Sur le principe c’est simple : il faut que le nom du champ qui doit récupérer une donnée soit exactement le même que celui de la colonne dans laquelle il se trouve dans le fichier XLSX.
    Ensuite il faut convertir (enregistrer sous) le XLSX au format CSV* pour pouvoir l’importer dans Acrobat (Importer les données).

    * Il faut régler l’encodage sur Unicode / UTF-8

    #61946
    marie
    Membre

    Bonjour Merlin,

    Merci beaucoup.
    Mais comment récupérer le nom du champs du formulaire PDF ?

    #61947
    Merlin
    Maître des clés

    Dans l’esprit c’est l’inverse qu’il faut faire : c’est le nom du champ qui doit correspondre au nom de la colonne.

    Pour connaitre/modifier les noms des champs il faut trouver le panneau d’outils « Formulaire » dans Acrobat, mais faute de savoir laquelle tu utilises il est difficile de te dire comment puisque ça change à chaque version, ou presque.

    #61948
    Ballou
    Membre

    Bonjour,

    Je me permets de reprendre ce sujet car il semble se rapprocher du problème que je rencontre actuellement.

    J’ai testé votre solution et cela m’a bien permis de remplir certains champs d’un formulaire PDF à partir des informations contenues dans un fichier Excel, convertit au préalable au format .txt.

    Cela ne génère cependant pas un publipostage. Lors de l’import de données je dois choisir parmi la liste la ligne de mon fichier txt que je souhaite importer. J’aimerai en fait obtenir un fichier PDF distinct par ligne de mon tableur.

    Plus concrètement :

    • J’ai un formulaire F qui contient différents champs, dont certains doivent être pré-remplis
    • J’ai un tableur Excel de X lignes
    • [/list]

      Je souhaite générer X formulaires F avec pour chaque fichier un pré-remplissage des données de certains champs (nom, prénom,…) importés du tableur Excel.

      Cela vous semble-t-il réalisable ?

    #61949
    Merlin
    Maître des clés

    Bonjour.

    Oui c’est réalisable, actuellement le meilleur tuto est celui-ci : http://khkonsulting.com/2015/10/batch-import-excel-data-into-pdf-forms/
    Si tu ne lis pas l’anglais Googol Traduction sera utile, mais en tout cas un JavaScript reste un JavaScript.
    :Smiley15:

    #61950
    Ballou
    Membre

    Merci Merlin pour le lien et la rapidité de ta réponse. Il n’y a plus qu’a ce plonger là dedans.

    #61951
    Ballou
    Membre

    Ça marche !  :extra: C’est excellent !

    Merci encore pour ton aide, cela fait un bien fou de voir tous ces fichiers se générer pré-remplis en un rien de temps. Un gain de temps considérable ! Merci !!

    #61952
    Merlin
    Maître des clés

    Merci mais c’est surtout KHK qu’il faut remercier.

    #61953
    rachiiiid
    Membre

    Ça marche !  :extra: C’est excellent !

    Merci encore pour ton aide, cela fait un bien fou de voir tous ces fichiers se générer pré-remplis en un rien de temps. Un gain de temps considérable ! Merci !!

    Bonjour Ballou
    Je ne comprends pas comment le lien en anglais a pu te venir en aide.
    Pourrais-tu prendre 2 min pour me l’expliquer STP ?
    Merci

    #61954
    Ballou
    Membre

    Désolé pour le retard de ma réponse.

    Alors tu dois avoir un export excel des données que tu souhaites utiliser dans ton publipostage. Ce fichier excel tu en fait un fichier .txt. en prenant bien soin de noter les en-têtes de tes colonnes.

    Dans ton formulaire PDF tes champs à pré-remplir doivent reprendre le même nom que celui des en-têtes pour que le script sache quelle info mettre et à quel endroit.

    Après reste à adapter le script à ton formulaire et ton ordinateur :

    var fileName = « /Users/username/tmp/data.txt »; // the tab delimited text file containing the data
    var outputDir = « /Users/username/tmp/ »;    // make sure this ends with a ‘/’

    La première ligne c’est l’endroit où tu as stocké ton fichier .txt
    La deuxième c’est l’endroit où tu veux qu’il génère tous tes fichiers PDF

    this.saveAs(outputDir + this.getField(« Text1 »).value + « _ » + this.getField(« Text2 »).value + « .pdf »); // saves the file

    A la fin du script tu as cette ligne qui te permet de nommer les fichiers PDF générés, tu peux reprendre par exemple le champ « Nom » puis « Prénom » si tu as ça dans ton listing.

    En espérant que cela te sera utile.

    #61955
    adrith
    Participant

    Bonjour à tous,

    j’essaie également de faire comme vous.

    J’ai adapté les 3 lignes (où est stocké le fichier .txt, où je veux que ça génère les fichiers, et le noms des fichiers générés).
    J’utilise Adobe Acrobat XI Pro sous Mac.

    J’ai mis le javascript en script du document, afin que ça génère les fichiers à l’ouverture.
    Mais quand j’ouvre le fichier, j’ai cette erreur dans la console :

    Code:
    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
    Doc.importTextData:11:Document-Level:onopen

    Une idée pourquoi ?

    Voici la tête de mon fichier .txt :

    Code:
    Nom;Ville
    Nous;paris
    Moi;marseille

    Merci

    #61956
    Merlin
    Maître des clés

    Une idée pourquoi ?

    Pour des raisons de sécurité un script placé dans un document ne peut pas ouvrir ni importer un autre fichier silencieusement, potentiellement à l’insu de l’utilisateur.

    Il y a plusieurs façons de contourner le problème :
    – ne pas indiquer le chemin d’accès au fichier, ainsi Acrobat demandera à l’utilisateur de le sélectionner ;
    – exécuter le script directement depuis la Console (qui a tous les droits*) ;
    – placer le script en script d’application* à l’intérieur d’une « Trusted function », et l’appeler depuis le document.

    * Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    #61957
    adrith
    Participant

    Merci Merlin de ton retour.

    Oui pas si simple en fait.

    Si je comprends tout bien, mes solutions sont :
    – placer un .js sur les postes afin que ça puisse être exécuté => pas sûr que ça soit possible
    – faire jouer le script via la console => mais uniquement acrobat je suppose
    – faire en important les données par l’utilisateur via le menu => idem, c’est impossible avec le reader je pense ?

    Car je suis sur à 98% que ça sera avec le reader que la personne devra générer les pdf.

    Et autre point, c’est possible de gérer les cases à cocher directement ? Ou bien faut mettre un champ texte et mettre un « X » dedans  ?

    PS : Ballou, tu avais créer un .js sur ton poste ? et c’était bien directement avec Acrobat Pro ?

    Merci

    #61958
    Merlin
    Maître des clés

    Je n’ai pas relu tout le fil des messages mais il me semble qu’il est question de publipostage, et Acrobat Reader ne peut pas générer de nouveaux documents PDF.
    Il ne peut que remplir des formulaires et dupliquer des pages templates (depuis la version 11).

    – faire jouer le script via la console => mais uniquement acrobat je suppose

    Il existe une ruse pour Reader XI et DC…  :Smiley03:

    #61959
    adrith
    Participant

    show me the path  :Smiley03:

    J’ai placé le JS, par contre ça fonctionne avec la dernière version du reader ? Je ne vois ni le bouton, ni un nouveau menu ? Même après redémarrage.

    #61960
    Merlin
    Maître des clés

    Non, c’est Reader JavaScript Console Window
    À télécharger sur cette page : https://www.pdfscripting.com/public/Free_Acrobat_Automation_Tools.cfm

    #61961
    adrith
    Participant

    Bon j’ai beau tester un paquet de chose, je n’ai pas réussi à avoir la console sous le Adobe Reader, j’ai bien placé les 2 fichiers dans le dossier Javascript du Reader sur mon Mac, mais après je n’ai pas les nouveaux menus. Une idée ?

    Sinon j’ai réussi à publiposter avec Acrobat Pro XI, en plaçant un fichier js dans le dossier Javascript d’Acrobat, ça c’est cool.
    En faisant de la même manière avec le Reader, ça ne fonctionne pas. Est-ce que ça fonctionnerait via la console du Reader ? Ou avec le reader c’est complètement impossible ?

    Merci

    #61962
    Merlin
    Maître des clés

    j’ai bien placé les 2 fichiers dans le dossier Javascript du Reader sur mon Mac, mais après je n’ai pas les nouveaux menus.

    Ce n’est pas un menu, cet utilitaire ajoute une icône dans le panneau Outils Externes.
    Sinon, j’ai quelque part une version modifiée de cet utilitaire qui affiche la commande dans un menu… Mais sans possibilité d’associer un raccourci-clavier.

    #61963
    adrith
    Participant

    :doute:  je ne sais pas pourquoi je ne l’ai pas, mais ce n’est pas le plus important.

    Pour clore ce sujet, on est bien d’accord Merlin ou Ballou que sous le Reader, malgré le .js placé dans le dossier ou par n’importe qu’elle autre méthode, ce n’est pas possible de générer des fichiers PDF depuis un fichier txt ?

    Sous Acrobat : OK

    Sous Reader, j’ai :
    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.

    Merci

    #61964
    Merlin
    Maître des clés

    Acrobat Reader permet d’importer des données TXT, CSV, FDF et XFDF dans des champs de formulaires déjà existants et d’enregistrer-sous pour générer un nouveau document.

    As-tu placé ta fonction en « trusted function » ?

    #61965
    Merlin
    Maître des clés

    Voir aussi ce super document d’exemple fourni par Thom P., notre maitre à tous : http://www.pdfscripting.com/public/FreeStuff/PDFSamples/PopulateFieldsFromXML_Sample.pdf

    (Les fichiers annexes sont en pièces jointes dans le PDF)

    #61966
    Aurelia.k
    Membre

    Bonjour à tous et merci pour les informations sur le publipostage des formulaires PDF ….. C’est MAGIQUE. Merci MILLE fois!!!!

    Cependant, je rencontre un problème à l’envoi des fichiers pour remplissage et signature, je m’explique :
    – Il y a un formulaire par N° d’appareil.

    – J’envoi ce formulaire via DocuSign pour un retour rempli et signer.
    Tout marche à merveille à part un champs Texte : « commentaires » (champs texte libre)

    Lorsqu’une personne rempli plusieurs formulaires le champs « Commentaire » est un doublon et se rempli partout pareil.
    Je voudrais savoir s’il existe un code afin de renommer le nom du champs « Commentaire » en « Commentaire + N°appareil » (le n° d’appareil etant dans ma liste.txt) afin d’identifier le champs et supprimer les doublons.

    Je ne sais pas si je suis assez clair… Tout ça est nouveau pour moi.Mais comme grace à vous j’ai pu créer un publipostage de formulaire vraiment génial…. je me dis que je peux peut-être aller plus loin…
    Dans l’attente d’une réponse … Merci à tous pour ce super forum

    #61967
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Je ne comprend pas si le problème se pose lors de l’envoi ou lors de la réception des (données de) formulaires.
    :Euuuh:  :doute:

    #61968
    Aurelia.k
    Membre

    Bonjour,
    Et merci de répondre aussi rapidement :Smiley01:
    Les champs de mon formulaire reprennent les données de mon tableau excel, et sont en lecture seule.J’ai une case à saisir en texte libre : « commentaires »

    Le problème est quand j’envoi les formulaires pour signature.La personne qui doit signer les formulaires remplit cette case « commentaire », si je lui envois plusieurs formulaire d’un coup, la case commentaire est la même partout. Donc s’il ecrit un texte dans une des cases commentaire, le texte se répète dans toutes les cases commentaire de tous les formulaires.
    Il faudrait que je puisse nommer ce champs commentaire pour qu’il devienne unique dans chaque formulaire. donc le nommé commentaire + N° d’appareil.
    Pensez-vous que cela est possible?

    #61969
    Merlin
    Maître des clés

    J’ai bien l’impression que ce que tu appelles « plusieurs formulaire d’un coup » est en fait un seul document PDF.
    Me gourre-je ?

Affichage de 25 réponses de 1 à 25 (sur un total de 121)
  • Vous devez être connecté pour répondre à ce sujet.