Donnez vie à vos documents numériques !
 

Navigation

abracadabraPDF Forums PDF – Général Navigation

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45552
    passifacile
    Participant

    Bonjour,

    Je souhaite faciliter la navigation dans un gros document pour permettre aux utilisateurs de passer d’une page à l’autre (uniquement si elle contient un champ « hidden »).

    Description :

    • Document de plusieurs centaines de pages
    • [/list]

    • Toutes les pages sont différentes
    • [/list]

    • Selon les actions de saisie et les choix faits par l’utilisateur, des pages « cachées » par des champs blancs sont affichées (paramètre des champs changé en « hidden »)
    • [/list]

      Pour compléter les pages « visibles », et plutôt que de faire défiler tout le document ou toutes les vignettes pour rechercher les pages non vides, je voudrais obtenir les effets suivants, à choix :
      Afficher des vignettes (ou des signets) de pages uniquement pour les pages qui contiennent des champs (blanc.0, Blanc.1 etc.) « hidden », ou
      insérer des script dans des boutons de navigation qui permettent aux utilisateurs de pointer directement sur la page suivante (ou précédente) avec un tel champ « hidden »

      Le document initial étant très lourd, et confidentiel, je joins un petit exemple.

      Pourriez-vous, svp, m’aider ? :priere:

      Bonne journée à toutes et à tous

      P.S : passant de PC à MAC, je m’emmêle un peu le clavier, raison pour laquelle j’ai dû modifier plusieurs fois mon message… désolé. :Ooops:

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

    Bonjour.

    Je crois que la « bonne » réponse pourrait venir de l’abandon de la « mauvaise » question.  :doute:

    Plutôt que de masquer des pages avec des caches et de créer une mécanique complexe pour sauter les pages blanches, pourquoi ne pas simplement faire disparaitre la page ?
    Ce qui résoudrait tous les problèmes de navigation du même coup.  :idee:

    Ce document est un cas typique d’utilisation des pages modèles, qu’on peut faire apparaitre et disparaitre à volonté, mais il y a un impératif : l’utilisateur final doit avoir Acrobat Reader XI (11) ou DC, ça ne fonctionne pas avec les versions antérieures (de Reader, ça fonctionne avec toutes les versions d’Acrobat Pro et Standard).

    #61813
    passifacile
    Participant

    Bonjour Merlin.

    La disponibilité de Reader XI devrait pouvoir devenir une condition « obligatoire » pour tous les utilisateurs (déploiement systématique à l’intérieur de l’entreprise).

    Pour ce qui est des pages, celles, disparues, doivent pouvoir « réapparaître » automatiquement selon les choix faits, avec les valeurs saisies précédemment dans es différents champs propres à ces pages.

    Compte tenu que le document fait plusieurs centaines de pages, est-ce que les pages modèles peuvent toutes être différentes ?

    #61814
    Merlin
    Maître des clés

    En fait une page modèle reste toujours masquée, ce qui apparait/disparait dans le document c’est un double/duplicata du modèle. (to spawn en anglais)
    Si on n’active pas le renommage des champs, les données saisies sur une page dupliquée se retrouvent en double dans le modèle, parce-que les champs ont les même noms.
    Que l’on supprime le duplicata ou non, les données restent stockées dans le modèle et réapparaissent à chaque duplication.

    Regarde cet exemple : https://files.acrobat.com/a/preview/3df0dcac-a987-4d6a-94a5-2783838584bf

    #61815
    bebarth
    Maître des clés

    bonsoir,
    Est-ce bien cela que tu voulais faire ?
    Les flèches ne renvoient que sur les pages contenant un champ dont le nom comprend « Blanc. » et qui est visible (cf. fichier joint).
    Pour plusieurs centaines de pages, tu copies ces boutons sur la première page et clique droit « dupliquer dans toutes les pages ».
    @+
    :bonjour:

    #61816
    Merlin
    Maître des clés

    Mesdames, messieurs, chapeau bas !
    :bonjour:

    Là je m’incline devant autant de bon sens.
    :joker:

    #61817
    passifacile
    Participant

    Oui, c’est exactement ça.
    Bravo et merci !
    :bravo:

    Ce qui ne va pas, c’est que je sais ce que fait le script, mais que je ne le comprends pas…  :Smiley08:

    Va falloir que je le re-re-relise et le dé-dé-décortique :oh:

    #61818
    passifacile
    Participant

    Aïe, j’ai un problème quand je l’adapte à mon projet.  :Euuuh:

    Tous mes champs « Blanc. » existent systématiquement en duo minimum. J’ai ainsi les champs suivants (avec dès dièses) :
    Blanc.0#1
    Blanc.0#2
    Blanc.1#1
    Blanc.1#2
    Blanc.1#3
    Etc.

    Et, dans cette configuration, le script ne s’applique malheureusement pas  :Smiley02:

    Y a-t-il un moyen de contourner cette difficulté par une adaptation du script, ou est-il préférable de « dédoubler » les champs et de ne créer que des champs « xxx.nn » ?

    #61819
    bebarth
    Maître des clés

    bonjour,
    S’il y a systématiquement un # dans le nom, il faut aussi tester cette condition.
    J’ai remplacé la propriété « hidden » par la propriété « display » comme conseillé par l’api reference.

    // Bouton « Aval »
    var nomChamp= » »;
    var laPage=this.pageNum; // Numéro de la page courante
    var allerPage=this.numPages; // Numéro de la page cible, temporairement la dernière page
    for (var i = 0; i var nomChamp=this.getNthFieldName(i); // Nom du champ testé
    var f = this.getField(nomChamp); // Champ testé
    var str=nomChamp;
    var OK = str.indexOf(« Blanc. »); // Le nom du champ testé contient-il « Blanc. »
    var diese = str.indexOf(« # »); // Le nom du champ testé contient-il « # »
    if (OK > -1 & diese > -1 & f.page>laPage & f.hidden==true) { // Teste 4 conditions :
    // OK > -1 : Le nom du champ testé contient « Blanc. »
    // diese > -1 : Le nom du champ testé contient « # »
    // f.page>laPage: Le numéro de page du champ testé est supérieur à celui de la page courante
    // f.display==display.hidden : Le champ testé (carré planc) n’est pas visible
    var pageToGo = f.page; // Variable temporaire égale au numéro de page du champ testé
    switch (pageToGo case true: // si OUI
    var allerPage=pageToGo; // Le numéro de la page cible devient celui du champ testé
    this.pageNum=allerPage; // Affichage de la page cible
    break;
    default:
    break;
    }
    }
    }

    // Bouton « Amont »
    var nomChamp= » »;
    var laPage=this.pageNum;
    var allerPage=0; // Numéro de la page cible, temporairement la première page
    for (var i = 0; i var nomChamp=this.getNthFieldName(i);
    var f = this.getField(nomChamp);
    var str=nomChamp;
    var OK = str.indexOf(« Blanc. »);
    var diese = str.indexOf(« # »);
    if (OK > -1 & diese > -1 & f.page // f.page var pageToGo = f.page;
    switch (pageToGo > allerPage) {
    case true:
    var allerPage=pageToGo;
    this.pageNum=allerPage;
    break;
    default:
    break;
    }
    }
    }

    @+
    :bonjour:

    #61820
    passifacile
    Participant

    Bonsoir, Bebarth.

    Merci infiniment : pour l’adaptation ainsi que pour les explications détaillées. C’est vraiment super.
    :bravo:

    Je vais mettre en pratique dès demain matin  :Smiley08:

    Cordialement

    #61821
    bebarth
    Maître des clés

    On peut même supprimer (2 fois) les lignes :

    default:
    break;

    Elles ne servent à rien et j’ai oublié de les enlever !
    @+
    :bonjour:

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