Donnez vie à vos documents numériques !
 

Attribution de script sur bouton via les terminaisons de nom. – RÉSOLU

abracadabraPDF Forums PDF – Général Attribution de script sur bouton via les terminaisons de nom. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44669
    nekosan3
    Participant

    Bonjour à tous,

    Je voudrais attribuer dans un PDF interactif, des scripts de direction de page sur des boutons qui amènent vers une même destination.

    Par exemple : plusieurs boutons ont une même destination mais ils ont un nom différent

    seule la terminaison est commune de type : MS.ACA.J1 , LP.INT.J1

    Dans un autre post j’avais posé le problème suivant : Attribution de script sur bouton

    ici les boutons doivent avoir exactement le même nom, pour que le script voulu soit donné.

    Aurait-il un moyen pour attribuer un script javascript, mais cette fois que sur les boutons ayant une terminaison commune ?

    Merci.

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

    Oui, c’est possible.
    Mais pour en savoir plus il va falloir attendre le passage d’un Javascript-Jedi, ou bien une bonne semaine parce-qu’en ce moment je suis surbooké…
    :joker:

    #55974
    nekosan3
    Participant

    Aaaah cool si déjà c’est possible ! Maintenant va falloir attendre, mais j’attendrais le jour et la nuit j’attendrais.
    Mais, quand même, en attendant comme un apprenti sorcier, je vais tenté des formules, on ne sait jamais.

    Jedi Alex ? par exemple  :priere:

    #55975
    nekosan3
    Participant

    J’ai essayé ça mais bien sûr ça ne fonctionne pas :

    //si le nom fini par  “.A$” on lui associe le script
          if(nomDeChamp.substring(0,3)== “.A1$”& this.getField(nomDeChamp).type==”button”)
          {
          console.println(“Ajout du script au bouton “+nomDeChamp)
          this.getField(nomDeChamp).setAction(“MouseUp”,”activeboomA()”);
          indexBouton=indexBouton+1;
          }

    L’objet substring y est surement pour quelque chose…
    C’est bon je sors mon kit d’incantation.  :geek:

    #55976
    alex
    Participant

    On est sur la voie, voici comment procéder:
    //Script d’application ou de document
    //On passe en revue tous les champs du document… si leur nom fini par  “.A$” et si c’est un bouton on lui associe le script

    indexField=0;
    while(indexField{
    nomDeChamp=this.getNthFieldName(indexField);
    //substring à vérifier
          if(nomDeChamp.substring(nomDeChamp.length-4,nomDeChamp.length)== “.A1$”& this.getField(nomDeChamp).type==”button”)
          {
          console.println(“Ajout du script au bouton “+nomDeChamp)
          this.getField(nomDeChamp).setAction(“MouseUp”,”activeboomA()”);
          indexBouton=indexBouton+1;
          }
    indexField=indexField+1;
    }

    #55977
    nekosan3
    Participant

    :Smiley08: merci Alex d’être passé par ici et surtout de m’avoir donné Le script qu’il fallait !

    J’adore les ours. :soleil:

    Petite modification pour ceux que le script intéresse,suite à ma demande, avant que Alex ne poste sa réponse j’avais proposé à cette ligne de code ceci :
    if(nomDeChamp.substring(0,3)== “.A1$”& this.getField(nomDeChamp).type==”button”)

    parmi ma modeste recherche, je cru à tord que le javascript pouvait s’appliquer au javascript pour Acrobat,
    hors le signe $ signifie la fin d’une chaîne… mais bon peut-être que ceci est possible avec ce signe, je l’ai certainement mal “codifié”…

    Bref, pour ceux que cela intéresse la ligne que propose Alex :
    if(nomDeChamp.substring(nomDeChamp.length-4,nomDeChamp.length)== “.A1$”& this.getField(nomDeChamp).type==”button”)

    doit être changé en ceci :
    if(nomDeChamp.substring(nomDeChamp.length-3,nomDeChamp.length)== “.A1″& this.getField(nomDeChamp).type==”button”)

    #55978
    nekosan3
    Participant

    Bonjour à tous et bonne année ! santé avec plein de script !

    J’ai un problème pour l’attribution de script sur mes boutons (sur Acrobat XI),

    j’ai bien repris le script en respectant la syntaxe, mais la console me donne ce message :

    Code:
    TypeError: this.getField(nomDeChamp) is null
    9:Field:Mouse Up

    Quand je regarde sur les boutons en question,
    le code a été attribué que sur les premiers boutons de la première page de mon PDF (qui en comporte 500 pages en tout
    les 5 première pages ont des boutons de direction), comme si les autres pages ont étés oubliées ?
    j’ai surement mal codifié mais à quel endroit ?

    Voici mon code :

    Code:
    //Script d’application ou de document
    //On passe en revue tous les champs du document… si leur nom fini par  “.R1” et si c’est un bouton on lui associe le script
    console.clear();
    indexField=0;
    while(indexField{
    nomDeChamp=this.getNthFieldName(indexField);
    //substring à vérifier
          if(nomDeChamp.substring(nomDeChamp.length-3,nomDeChamp.length)== “.R1″& this.getField(nomDeChamp).type==”button”)
          {
          console.println(“Ajout du script au bouton “+nomDeChamp)
          this.getField(nomDeChamp).setAction(“MouseUp”,”activeGOR1()”);
          indexBouton=indexBouton+1;
          }
    indexField=indexField+1;
    }
    console.println(“Ajout du script activeGOR1″+indexBouton+” boutons”);
    console.show();
    this.getField(“direct.ficheR1”).display = display.hidden;

    Je precise les boutons activent des scripts de document.

    #55979
    alex
    Participant

    Bonjour,
    Si les boutons des pages suivant la page 1 sont des copies des boutons de la page 1, ce script ne fonctionnera pas. Il faut que les noms de champs soient différents, exemple: A.R1, B.R1, C.R1 etc…

    #55980
    nekosan3
    Participant

    Bonjour Alex, d’abord merci de prendre du temps.

    Les noms des champs des boutons sur les pages suivantes, comme je l’ai mis sur le billet précédant,

    sont bien différent.

    Après j’ai fait un test en isolant une seule page qui contient une arborescence de boutons, et la page qui attribue les scripts (avec ses scripts de documents),

    rien ne se passe, a part le message de la console. Pourtant j’ai bien une terminaison de type par exemple :

    Code:
    .A1

    Je peux t’envoyer cet exemple en MP si c’est possible.

    #55981
    alex
    Participant

    Oui, il me suffit d’avoir les 10 premières pages pour localiser le problème.

    #55982
    nekosan3
    Participant

    Dès lundi je t’envois un exemplaire sur une dizaine de page !
    Merci d’avance et bon w.e !

    #55983
    nekosan3
    Participant

    Voilà je t’ai envoyé par la messagerie du Forum, un lien vers un morceau du PDF en question avec des explications.

    #55984
    nekosan3
    Participant

    Merci Alex mon soucis est résolu. Tous les boutons ont bien eus leurs scripts de direction de page… la console me l’a en + confirmé.
    :bonjour:

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