Donnez vie à vos documents numériques !
 

Modifier un script

abracadabraPDF Forums PDF – Général Modifier un script

  • Créateur
    Sujet
  • #73902
    jatd
    Participant

    Bonjour,

    J’ai ce script dans un formulaire que j’aimerais protéger en impression/modification pour les destinataires (afin d’éviter les annotations et modifications), qui sert actuellement à verrouiller les champs une fois complétés de mon côté. J’aimerais toutefois laisser 4 champs actifs suivant l’exécution de ce script (2 champs signature et 2 champs textes) car ceux-ci doivent être complétés par les destinataires en question.

     

    //Masquer le bouton
    event.target.display = display.hidden;

    //Verrouiller tous les champs
    for (var i=0; i<this.numFields; i++) {
    var fname = this.getNthFieldName(i);
    var f = this.getField(fname);
    f.readonly = true;
    }

    Les 4 champs sont Signature1 , Signature2 (2 champs texte) et  Signataire1 , Signataire2 (les 2 champs signature).

    Comment faire pour intégrer ce changement au script? Est-ce une option possible à intégrer dans un tel script?

    Merci de votre aide!

     

    • Ce sujet a été modifié le il y a 2 mois et 3 semaines par jatd.
Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #73912
    Merlin
    Maître des clés

    Bonjour

    On peut protéger un PDF contre les modifications et l’ajout d’annotations tout en laissant la possibilité de remplir les champs de formulaire (voir capture).

    On ne peut pas ajouter cette protection via un script dans Acrobat Reader.

     

    Si l’idée c’est de verrouiller tous les champs sauf ceux indiqués il suffit d’ajouter quelques lignes au script existant :

    //Masquer le bouton
    event.target.display = display.hidden;

    //Verrouiller tous les champs
    for (var i=0; i<this.numFields; i++) {
    var fname = this.getNthFieldName(i);
    var f = this.getField(fname);
    f.readonly = true;
    }

    // déverrouiller les champs signature
    this.getField("signature1").readonly = false;
    this.getField("signature2").readonly = false;
    this.getField("signataire1").readonly = false;
    this.getField("signataire2").readonly = false;

    Attachments:
    You must be logged in to view attached files.
    #73916
    bebarth
    Maître des clés

    C’est le plus simple…

    @+
    😎

    #73923
    jatd
    Participant

    Bonjour,

    Merci pour le retour! Oui c’est exactement ce que je cherche à faire, verrouiller tous les champs à l’exception des 4 champs mentionnés.

    J’ai ajouté ces lignes à mon script et malheureusement, il verrouille quand même les champs que je désire laisser actifs.. 🙁

    Une autre idée?

    #73924
    Merlin
    Maître des clés

    La logique voudrait que la première ligne (qui masque le bouton) soit placée tout à la fin du script.

    Si ça n’y change rien il faudrait nous dire quel message d’erreur est retourné par la Console JS (voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/ ).

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