Donnez vie à vos documents numériques !
 

Pdf – Action afficher et masquer des calques en javascript

abracadabraPDF Forums PDF – Général Pdf – Action afficher et masquer des calques en javascript

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44806
    leurre
    Membre

    Bonjour
    Je suis graphiste, nouveau sur le forum et novice en javascript, j’aimerais obtenir ce genre d’action sans passer par les actions présentes dans les menus d’acrobat, mais en utilisant du javascript.
    Est ce quelqu’un peut-il mayday ?

    A l’ouverture du document, les calques ont ces états :
    header = activé
    boutons = activé
    layerA = activé
    layerB = désactivé
    layerC = désactivé
    layerD = désactivé

    Comment obtenir en javascript les états suivant :

    Clic sur bouton A =
    Afficher calque header, boutons, layerA, footer

    Clic sur bouton B =
    Afficher calque header, boutons, layerB, footer

    Clic sur bouton C =
    Afficher calque header, boutons, layerC, footer

    Clic sur bouton D =
    Afficher calque header, boutons, layerD, footer

    Je remercie d’avance mon sauveteur !

    [attachment deleted by admin]

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

    Bonjour et bienvenue,

    Avant d’aller plus loin il faut que tu saches une chose et moi aussi :

    – Pourquoi vouloir utiliser JavaScript plutôt que les fonctions intégrées de l’interface d’Acrobat ?

    – Dans un PDF les champs de formulaires, et donc les boutons, ne sont pas “attachés” à un calque, ils sont “flottants”.
    InDesign permet de placer des champs de formulaire sur un calque et dans le PDF généré on a l’impression qu’ils sont bien chacun sur leur calque*, mais dès qu’on y touche dans Acrobat les champs se désolidarisent et deviennent flottants.

    Tout ça pour dire que gestion JavaScript = gestion séparée des calques et des boutons.

    :Smiley15:

    * A mon avis c’est une erreur, vu le nombre d’utilisateurs que cela embrouille plus qu’autre chose.

    #56846
    leurre
    Membre

    Merci Merlin pour ta réponse/question.

    Je voudrais utiliser le javascript car je dois traiter des tableaux avec beaucoup de boutons et de calques.
    En passant par les actions d’Acrobat, cela me prend beaucoup de temps, mon client me donnent beaucoup de corrections et je dois refaire la navigation à chaque fois, alors qu’elle, ne change pas.
    Un simple copier/coller de code sur chaque bouton serait plus rapide, à mon avis.
    Voilà pourquoi…

    #56847
    Merlin
    Maître des clés
    Code:
    var ocgArray1 = this.getOCGs();
    for (var i=0; i < ocgArray1.length; i++)
    {
    if (ocgArray1.name == “NOM-DU-CALQUE1”) {ocgArray1.state = false;}
    if (ocgArray1.name == “NOM-DU-CALQUE2”) {ocgArray1.state = true;}
    }

    Il faut renseigner les noms des calques et l’état (true ou false).
    Dans l’exemple il y en a 2 mais on peut en ajouter à loisirs.

    Attention cependant : quelle que soit la méthode choisie, l’état d’affichage des calques n’est pas conservé. On remet tout à zéro à chaque fermeture/ouverture.

    :Smiley01:

    #56848
    leurre
    Membre

    Merci Merlin,
    je m’en vais de ce pas essayer cette formule magique.
    Bonne soirée  :Smiley01:

    #56849
    Merlin
    Maître des clés

    PS : Petite particularité des calques, alias OCG, c’est que JavaScriptement il faut toujours s’adresser à eux après avoir testé et s’être assuré de leur existence, contrairement au champs.
    C’est complètement logique, et donc parfois déconcertant.
    :geek:

    #56850
    leurre
    Membre

    Cela fonctionne  à merveille ! :Smiley15:

    #56851
    Merlin
    Maître des clés

    :bonjour:

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