Donnez vie à vos documents numériques !
 

Script bloqué par la protection du document

abracadabraPDF Forums PDF – Général Script bloqué par la protection du document

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46301
    ARKED
    Participant

    Bonjour,
    J’ai créé un document, utilisable par un grand nombre d’utilisateur sur différentes machines, protégé par mot de passe, afin d’éviter qu’il puisse être modifié dans sa forme… jusque la rien d’extraordinaire….
    Dans ce document j’ai inséré deux scripts (voir ci-dessous..), l’un exécuté à l’ouverture permettant d’afficher un bouton « Signature », l’autre destiné à changer l’apparence du bouton une fois que la signature est importé (pour qu’il devienne « invisible »).
    Tout fonctionne correctement…..  sauf quand je remet la protection par mot de passe…. :mur:

    A l’ouverture du document le message suivant qui apparaît ….

    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
    Doc.removeField:3:Document-Level:SIGNATURE

    Les changements d’apparence du bouton ne s’opèrent pas…

    Y a-t-il un moyen de contourner ce blocage….?  après plusieurs recherches je sèche…..

    //function SIGNATURE()
    //{
    this.removeField(« BOUTON_SIGNE »);
    var aRect=new Array();
    aRect[0]=385;
    aRect[1]=346;
    aRect[2]=555;
    aRect[3]=289;
    var b=this.addField(« BOUTON_SIGNE », »button »,0,aRect);
    b.strokeColor = color.transparent;
    b.buttonPosition = position.overlay;
    b.borderStyle = border.b;
    b.fillColor = color.ltGray;
    b.textColor = color.black;
    b.textFont = font.Helv;
    b.textSize = 12;
    b.buttonSetCaption(« Signer »);
    b.setAction(« MouseUp », »event.target.buttonImportIcon() »);
    b.setAction(« MouseDown », »SIGNED() »);
    //}



    SIGNED (Passe le bouton transparent après signature)
    function SIGNED()
    {
    b.buttonSetCaption(«  »);
    b.borderStyle = border.s;
    b.strokeColor = color.transparent;
    b.fillColor = color.transparent;
    }
Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Auteur
    Réponses
  • #67467
    bebarth
    Maître des clés

    bonjour,
    De mon côté je n’ai pas de message d’erreur !Mot de passe du fichier : motdepasse
    Par contre, moi j’aurais juste créé un bouton visible à l’ouverture et rendu invisible après signature…
    @+
    :bonjour:

    #67468
    ARKED
    Participant

    J’aurai dû préciser les conditions de protection…
    Le mot de passe n’est pas requis à l’ouverture mais uniquement sur les droits de modification..
    Les modifications autorisées sont: « Remplir les champs de formulaires… »

    Ce fonctionnement par suppression et création d’un bouton vierge à l’ouverture est nécessaire… si le document est rouvert ça peut être par un autre utilisateur donc il faut le la signature soit réinitialisée…

    #67469
    Merlin
    Maître des clés

    Bonjour

    il faudrait que tu partages ton document, ou une maquette avec les champs concernés, sinon il sera très difficile de comprendre le problème.

    #67470
    ARKED
    Participant

    Bonjour,

    Ci joint une maquette avec le bouton concerné et les paramètres de protection.  MdP=motdepasse

    #67471
    Merlin
    Maître des clés

    On a encore une fois la preuve, si besoin était, que les « Restrictions d’utilisation » d’Adobe sont bidons et mal conçues.
    Les restrictions appliquées à ton document devraient interdire la suppression d’un champ (ça c’est OK) et aussi l’ajout d’un champ (et pourtant il le fait sans broncher).

    Si on utilise la restriction « Tout sauf extraire des pages », ton script fonctionne… Mais du coup il ne sert à rien d’utiliser des restrictions qui n’empêchent pas de modifier le formulaire.
    :mur:  :mur:

    Je ne sais pas contre quoi ou contre qui tu veux protéger ce formulaire mais il existe des méthodes plus fiables, et plus complexes, pour s’assurer de son intégrité.
    Par exemple, on peut utiliser un fichier texte placé en pièce jointe ou dans un champ masqué dans lequel on stocke le nombre de champs et leur position, et un script qui vérifie (à l’ouverture, avant la fermeture, ou quand on veut) l’intégrité du formulaire en comparant l’état actuel du formulaire avec le contenu du fichier.
    :geek:

    Tu devrais également t’intéresser à l’usage de la Console car elle renvoie une erreur lors de l’utilisation de la fonction SIGNED, parce-que la variable b n’est pas définie :
    TypeError: b is undefined
    26:Document-Level:init

    Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

    #67472
    bebarth
    Maître des clés

    bonjour,
    Je m’apprêtais répondre ça avant de voir la réponse de Merlin :
    Si tu fais une protection par mot de passe, c’est normal que tu ne puisses pas le modifier !
    C’est écrit dans le panneau « Sécurité ».
    Par contre, si tu affiche/masque le champ, ça fonctionne…
    Une chose que je ne comprend pas, pourquoi choisir une icône de bouton avant de le cacher ? C’est pour une prochaine ouverture (après avoir Enregistrer sous ») ?
    @+
    :bonjour:

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