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

  • Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par Merlin, le il y a 7 mois.
  • 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.