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.

Affichage de 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:

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