Donnez vie à vos documents numériques !
 

Enregistrer la visibilité des Calques OGC apres le remplissage du formulaire

abracadabraPDF Forums PDF – Général Enregistrer la visibilité des Calques OGC apres le remplissage du formulaire

  • Créateur
    Sujet
  • #73146
    DOWNSTAR
    Participant

    Bonjour,

    Est-il possible de figer la visibilité des calques OGC après le remplissage du formulaire : aplatissement, ou autre solution ?

    Pour le moment je gère la visibilité desdits calques via des cases à cocher, mais bien sur à la réouverture du document les calques s’affichent selon leur état initial.

    Merci d’avance

     

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

    Bonjour

     

    Avec Reader on ne peut pas aplatir ni modifier l’état de base (affiché/masqué) des calques.

    Il n’y a que deux solutions :

    • la signature numérique, qui fige le document.
    • utiliser JavaScript pour enregistrer l’état des calques à la fermeture et le rétablir à la réouverture du document.

     

    Exemple de script, la fonction GestionCalques() doit être utilisée lors de chaque modification de l’état des calques, ou bien en Action « Quand le document sera enregistré » (Document will save), et la fonction Ouverture() doit être exécutée à chaque ouverture du document :

     

    function GestionCalques() {
    ocg = this.getOCGs(this.pageNum);
    indexCalque = 0;
    code = "";
    while (indexCalque < this.ocg.length)
    {
    if (ocg[indexCalque].state)
    {
    code=code + "1";
    }
    else
    {
    code=code + "0";
    }
    indexCalque = indexCalque + 1;
    }
    this.getField("CalqCode").value = code;
    }

     

    function Ouverture() {
    ocg = this.getOCGs(this.pageNum);
    code = this.getField("CalqCode").valueAsString;
    indexCalque = 0;
    while (indexCalque<this.ocg.length)
    {
    statut = code.substring(indexCalque,(indexCalque+1));
    console.println("Rang " + indexCalque + " statut :" + statut)
    if (statut==1)
    {
    ocg[indexCalque].state=true;
    }
    else
    {
    ocg[indexCalque].state=false;
    }
    indexCalque = indexCalque+1;
    }
    }

    #73148
    Merlin
    Maître des clés

    PS : le script ci-dessus utilise un champ texte (masqué) nommé « CalqCode« , à placer n’importe où dans le document.

    #73149
    DOWNSTAR
    Participant

    Merci Merlin je vais tester çà.

    Bonne journée à vous

     

     

    #73340
    DOWNSTAR
    Participant

    Bonjour Merlin
    J’ai mis un peu de temps mais ça y est ça marche…

    Merci beaucoup

     

    #73342
    Merlin
    Maître des clés

    👍

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