Donnez vie à vos documents numériques !
 

XML pour remplir un multi-formulaire.

abracadabraPDF Forums PDF – Général XML pour remplir un multi-formulaire.

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45751
    AQUOIBON
    Membre

    Bonjour à tous,

    Tout nouveau, je tente de me lancer dans la création de formulaires et leur remplissage depuis un XML, pour des conseils de classe.
    Je sais à peu prêt créer un formulaire en PDF (sous Indesign).
    J’ai compris comment remplir un (et un seul) formulaire en faisant concorder les noms de champs avec les balises XML…
    Là où ça se gâte, c’est que j’aimerais remplir plus d’une trentaine de formulaires (plus de 30 pages d’un seul PDF) identiques, avec un et un seul XML ! Comment baliser ce XML ?

    Merci à tous pour vos réponses et votre future clémence !

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

    Bonjour et bienvenue.

    Superbe avatar !
    Est-il “perso” où l’as tu trouvé dans les galeries du forum ?

    Pour répondre à ta question : Acrobat n’importe les données qu’aux formats FDF, XFDF et CSV.
    Donc il faudrait commencer par une conversion…
    Est-ce possible ?

    #63035
    AQUOIBON
    Membre

    Oui, j’ai trouvé cet avatar parmi ceux proposés !
    Sinon… Très étonné… Ou me suis-je mal exprimé ?
    Dans Acrobat Pro, lorsque j’ai un PDF avec formulaire ouvert, je peux faire : Outils / Formulaires / Autres options de formulaires / Gérer les données de formulaire / Importer des données ! Et là j’ai le choix du type d’import (FDF, XFDF, XML, FormFlow99 et TXT) et je peux importer mon XML… qui rempli mes champs si les noms de balises correspondent aux noms de champs…

    #63036
    Merlin
    Maître des clés

    Oups !
    Je me suis concentré sur l’avatar et du coup j’ai écrit n’importe quoi…  :geek:

    Je crois que ce tuto devrait bien t’aider, le principe est le même avec des données en XML : http://khkonsulting.com/2015/10/batch-import-excel-data-into-pdf-forms/

    #63037
    AQUOIBON
    Membre

    Super ! Top !
    C’est presque à peu prêt (;)) ce que je cherchais !
    Par contre vu que je suis plus qu’une brelle, je vais avoir besoin de détails.
    Pour lancer ce script (ou un autre) j’ai over mon fichier PDF, suis allé dans la vignette de ma première page, puis Propriétés de la page et dans la popup j’ai choisi “Actions”.
    – Déclencheur : “Ouverture de la page”.
    – Action : “Executer un Javascript”, puis “Ajouter”.
    Dans la nouvelle Popup je colle mon Javascript genre : “app.alert(“Hello !”);”
    Je sauve, je quitte, je réouvre mon PDF… Personne pour me dire bonjour :(
    Y’a que’que chose qui cloche là d’dans !
    Help ! Merci

    #63038
    Merlin
    Maître des clés

    Difficile de répondre sans voir ledit PDF…  :joker:

    Par-contre ce script serait certainement mieux placé en script de document, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    #63039
    AQUOIBON
    Membre

    Difficile de répondre sans voir ledit PDF…  :joker:

    Par-contre ce script serait certainement mieux placé en script de document, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    Bon…
    1) J’ai passé mon script en script de document. et j’ai un “Hello” c’est mieux ! Cool merci !
    2) Par contre, impossible d’importer un txt comme l’indique notre ami Karl ! et même plus simplement d’utiliser la fonction “importTextData()” !!
    Je joins donc pour ce faire mes fichiers… attention à bien changer le “MonNom” (nom d’utilisateur) et de mettre les fichiers dans un dossier appelé “TEST” sur le bureau !
    Merci de m’éclairer (je suis sous Acrobat pro 10.1)

    #63040
    AQUOIBON
    Membre

    en fait, le débogueur m’indique :
    “NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
    Doc.importTextData:3:Document-Level:TEST”
    Merci de votre aide (je débute) !

    #63041
    AQUOIBON
    Membre

    Tops ! compris, je devrais en faire un script d’application et non de document ! Mais c’est triste, j’aurais aimé lier ce script à un fichier PDF.

    #63042
    Merlin
    Maître des clés

    Sécurité oblige !

    #63043
    AQUOIBON
    Membre

    J’ai trouvé le dossier “externe” des JavaScripts, dans lequel j’ai mis mon .js
    Mais maintenant, comment lancer ce script depuis Acrobat Pro 10.1 ??? Mystère !

    #63044
    Merlin
    Maître des clés

    1. Il faut emballer tout le script entre deux accolades précédées des caractères magiques qui vont transformer le script en fonction, exemple :

    Code:
    function maSuperFonction() {
    // ici on place le script
    }

    2. Depuis n’importe quel champ ou n’importe quel autre script on appelle la fonction avec :

    Code:
    maSuperFonction();

    Et puis c’est tout !

    Attention :
    function : mot-clé JavaScript invariable qui doit nécessairement être suivi d’une espace.
    maSuperFonction : peut importe le nom tant qu’il est suivi des deux parenthèses et qu’il respecte la syntaxe JS (pas de caractères spéciaux, pas d’espace, pas de mot-clé, ne pas commencer par un chiffre…)

    #63045
    AQUOIBON
    Membre

    Merci (encore) Merlin.
    Mais :
    – J’ai mis le script dans Applications/Adob Acrobat X Pro/Contents/Resources/Javascripts/
    – J’ai appelé le script comme tu me l’as indiqué, en l’inscrivant dans une fonction.
    – Ca marche… MAIS j’ai toujours en réponse :
    “Fonctions intégrées d’Acrobat EScript v.10.0
    Acrobat SOAP 10.0

    TypeError: this.importTextData is not a function
    8:Folder-Level:User:test.js
    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
    Doc.importTextData:9:Document-Level:AA”

    #63046
    Merlin
    Maître des clés

    Voilà ce qu’en dit la documentation :
    For security reasons, this property or method may be available only during certain events. These
    events include batch processing, application start, or execution within the console. (See the
    event object for details of the Acrobat events.)
    Beginning with Acrobat 7.0, to execute a security-restricted method through a menu event, one
    of the following must be true:
    – The JavaScript user preferences item Enable Menu Items JavaScript Execution Privileges is
    checked.
    – The method is executed through a trusted function. For details and examples, see the
    app.trustedFunction method.
    See Privileged versus non-privileged context for more information.
    Note: (Acrobat 6.0 or later) Methods marked with S will execute without restriction in a certified
    document provided the certifier’s certificate is trusted for running embedded high
    privilege JavaScript and other limitations in the quick bar fields are met.

    En clair il faut utiliser une “trusted function”, on en a déjà parlé quelques fois sur le forum.

    #63047
    AQUOIBON
    Membre

    Bon, merci à toi Merlin, mais je crois que je vais laisser tomber !
    J’ai refais mon script avec le app.TrustedFunction quand même compliqué à mettre en place !
    Et voilà que j’ai maintenant un message au deboguage :
    “TypeError: this.importTextData is not a function
    8:Folder-Level:User:test.js” !
    !!!!!

    #63048
    Merlin
    Maître des clés

    Et voilà que j’ai maintenant un message au deboguage :

    C’est Acrobat Reader ou Acrobat Pro qui dit ça ?
    Ou les deux ?

    #63049
    AQUOIBON
    Membre

    Pro 10.1 !
    Je serai curieux de savoir comment Karl a réussi ! Il aurait pu mettre les sources sur son site !

    #63050
    Merlin
    Maître des clés

    “TypeError: this.importTextData is not a function

    À vue de nez je dirais que le problème vient du “this”.
    Quand on l’utilise depuis un document ça pose rarement des problèmes car le document source et le document cible sont considérés par défaut comme étant les mêmes.

    Mais quand le script est exécuté au niveau de l’application ça change tout.
    Donc il faudrait essayer en remplaçant “this” par “doc” :

    doc.importTextData

    #63051
    AQUOIBON
    Membre

    Marche pas non plus “ReferenceError :doc is not defined”.

    #63052
    AQUOIBON
    Membre

    Je  désespère ! A tout hasard, je joins le script, la base et mon PDF.
    Attention à bien changer les adresses dans le script (MAC).
    Merci

    #63053
    Merlin
    Maître des clés

    1. Essaye en utilisant :
    this.doc.importTextData(fileName, 0);

    2. Sinon en utilisant :
    var myDoc = event.target.doc;
    myDoc.importTextData(fileName, 0);

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