Donnez vie à vos documents numériques !
 

Supprimer une action

abracadabraPDF Forums PDF – Général Supprimer une action

  • Créateur
    Sujet
  • #75611
    jctremblay
    Participant

    Est-ce vrai ce que je lis?

    Il serait impossible de supprimer un javascript d’action à l’aide d’un script?

    Ceci ne fonctionne pas…
    var f = this.getField("txt");
    f.setAction("MouseUp", "");

    Alors que pour ces autres emplacement oui:
    var f = this.getField("txt");
    f.setAction("Format", "");
    f.setAction("Keystroke", "");
    f.setAction("Validate", "");
    f.setAction("Calculate", "");

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

    Bonjour

     

    Oui et non.

    Acrobat a un comportement curieux, si on remplace un script par rien ça ne fonctionne pas toujours.

    Alors quand je veux “nettoyer” un document je remplace les scripts par un double-slash, ce n’est pas rien mais c’est comme rien, et ça fonctionne à tous les coups :

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    oFld.readonly = true; // verrouiler les champs
    oFld.setAction("Format", "//");
    oFld.setAction("Keystroke", "//");
    oFld.setAction("Calculate", "//");
    oFld.setAction("Validate", "//");
    oFld.setAction("MouseExit", "//");
    oFld.setAction("MouseEnter", "//");
    oFld.setAction("MouseUp", "//");
    oFld.setAction("MouseDown", "//");
    oFld.setAction("OnBlur", "//");
    oFld.setAction("OnFocus", "//");
    }

    this.setAction("WillSave", "//"); // actions de document
    this.setAction("WillPrint", "//");
    this.setAction("DidSave", "//");
    this.setAction("DidPrint", "//");
    this.setAction("WillClose", "//");

    this.addScript("init", "//"); // script de document

    #75616
    jctremblay
    Participant

    Bonjour Oui et non. Acrobat a un comportement curieux, si on remplace un script par rien ça ne fonctionne pas toujours. Alors quand je veux “nettoyer” un document je remplace les scripts par un double-slash, ce n’est pas rien mais c’est comme rien :

    C’est ce que je fais en ce moment aussi. C’est bête quand même un peu…

    #75617
    Merlin
    Maître des clés

    PS : le script ci-dessus ne génère pas d’erreurs bien qu’il s’applique à tous les champs, quel que soit leur type.

    Par exemple, ce n’est pas parce-que l’interface d’Acrobat ne propose pas de “Format” ou de “Validation” pour les boutons qu’ils ne peuvent pas avoir un script de Format ou de Validation. Rien n’empêche de le faire avec JavaScript.

    Donc je ne me casse pas la tête à détecter le type de champ avant de nettoyer les scripts. J’utilise la méthode “brutale”.

    #75618
    jctremblay
    Participant

    Oui, c’est brutal en effet. Ce que je n’aime pas, c’est que ce script va mettre des scripts «vide» partout. C’est inoffensif, mais ça m’énerve (comme les espaces en fin de paragraphes). 🙂

    #75619
    Merlin
    Maître des clés

    Oui, c’est un peu bête mais les machines s’en moquent pas mal, elles n’ont aucun sens du correct ou de l’esthétisme.

    Et comme disait Arnaud Amalric, abbé de Cîteaux, pendant la croisade contre les albigeois :

    “Scriptez les tous, Dieu reconnaitra les siens”.

    🙂

    #75620
    Merlin
    Maître des clés

    Précision : pour le(s) script(s) de document il faut connaitre son(leurs) nom(s) pour les écraser.

    Ci-dessus c’est “init” parce-que je met tous mes scripts ensemble, sous ce nom que j’utilise toujours. Mais ça peut varier en fonction des habitudes de chacun.

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