Donnez vie à vos documents numériques !
 

Peut on modifier le script d’un champ de formulaire avec l’outil Actions ?

abracadabraPDF Forums PDF – Général Peut on modifier le script d’un champ de formulaire avec l’outil Actions ?

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46008
    bescoff
    Membre

    Bonjour, je cherche mais ne trouve pas.  Je dois modifier le script d’un champ de formulaire pdf sur plus de 1000 fichiers. J »ai essayé avec un générateur de macros mais celà ne fonctionne pas bien. Est il possible de le faire avec l’outil Actions ?
    Merci d’avance pour votre aide.

5 réponses de 1 à 5 (sur un total de 5)
  • Auteur
    Réponses
  • #65251
    bebarth
    Maître des clés

    bonjour,

    Je dois modifier le script d’un champ de formulaire pdf sur plus de 1000 fichiers.

    C’est selon ce que tu entends par le mot « modifier » que cela dépend !
    On ne peut pas récupérer le script d’un champ, mais on peut lui en attribuer un :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_setAction2bc-17&rhtocid=_6_1_8_31_2_16
    @+
    :bonjour:

    #65252
    bescoff
    Membre

    Merci pour la réponse,

    j’ai le script suivant dans un champ de formulaire :

    Code:
    (var f = this.getField(« nom_sauve »);
    f.value = (this.getField(« no_contr »).value
    + « – » + this.getField(« contr_nom »).value);
    d = this.getField(« date_recept »); if(d.value == null || d.value == «  ») {d.value = util.printd(« dd-mm-yyyy », new Date())};

    et j’aimerais le remplacer par le suivant :

    Code:
    var f = this.getField(« nom_sauve »);
    var a = this.getField(« annee_fiscale »);
    var d = this.getField(« Date_recept »);
    var e = this.getField(« annee_25ans »);
    f.value = (this.getField(« no_contr »).value
    + « – » + this.getField(« contr_nom »).value)+ »-« +util.printd(« yyyy », new Date());
    a.value = util.printd(« yyyy », new Date())-1
    d.value = util.printd(« dd-mm-yyyy-HH:MM », new Date());
    e.value = util.printd(« yyyy », new Date())-26

    Ceci dans l’ensemble de mes fichiers, plus de 1000 !
    Évidement je ne tiens pas à les faire un par un manuellement.
    Merci

    #65253
    bebarth
    Maître des clés

    bonjour,
    Il va falloir être sûr de ton sript et le transformer en unicode pour pouvoir l’insérer dans le script de l’action.
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
    L’utilitaire :
    https://abracadabrapdf.net/utilitaires/utilitaires-pdf/abra-txt2unicode-texte-vers-unicode/
    Ensuite, voici le script de l’action :

    Code:
    var g=this.getField(« nomduchampAmodifier »);
    // Tu colles le texte unicode entre les guillemets
    var leScript= »u0076u0061u0072u0020u0066u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u006Eu006Fu006Du005Fu0073u0061u0075u0076u0065u0022u0029u003Bu000Du0076u0061u0072u0020u0061u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0061u006Eu006Eu0065u0065u005Fu0066u0069u0073u0063u0061u006Cu0065u0022u0029u003Bu000Du0076u0061u0072u0020u0064u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0044u0061u0074u0065u005Fu0072u0065u0063u0065u0070u0074u0022u0029u003Bu000Du0076u0061u0072u0020u0065u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0061u006Eu006Eu0065u0065u005Fu0032u0035u0061u006Eu0073u0022u0029u003Bu000Du0066u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0028u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u006Eu006Fu005Fu0063u006Fu006Eu0074u0072u0022u0029u002Eu0076u0061u006Cu0075u0065u000Du002Bu0020u0022u002Du0022u0020u002Bu0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0063u006Fu006Eu0074u0072u005Fu006Eu006Fu006Du0022u0029u002Eu0076u0061u006Cu0075u0065u0029u002Bu0022u002Du0022u002Bu0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u003Bu000Du0061u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u002Du0031u000Du0064u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0064u0064u002Du006Du006Du002Du0079u0079u0079u0079u002Du0048u0048u003Au004Du004Du0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u003Bu000Du0065u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u002Du0032u0036″;
    g.setAction(« Calculate », leScript); // pour un script de calcul
    this.saveAs({
        cPath: this.path,
        bPromptToOverwrite: false,
    });

    …puis tu lances l’action après avoir ajouté tous les fichiers dans la liste. Si tu en as 1000, fait déjà un essai avec quelques uns…
    @+
    :bonjour:

    #65254
    bescoff
    Membre

    :bravo: Merci infiniment bebarth, je vais tester ceci le plus vite possible.
    Tu me fait économiser un temps fou !
    Depuis plusieurs jours je pataugeait dans les nombreux exemples de scripts et actions sans trouver, c’est vrai qu’a 67 ans j’ai déjà perdu pas mal de neurones  :Smiley08:

    Merci encore, a+
    Bernard

    #65255
    bebarth
    Maître des clés

    c’est vrai qu’a 67 ans j’ai déjà perdu pas mal de neurones  :Smiley08:

    j’espère pas trop !!! j’y arrive à grands pas !
    @+
    un autre Bernard
    :bonjour:

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