Forums Développement Multimédia

Aller au contenu

Attribution de script Javascript sur bouton dans PDF interactif

javascript pdf interactif PAO InDesign Acrobat PDF

9 réponses à ce sujet

#1 nekosan3

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 11 October 2013 - 16:29 PM

Bonjour à tous,

Je voudrais attribuer dans un PDF interactif, des scripts javascript sur des boutons qui ont la même terminaison et qui dirigent vers une même destination de page au sein de ce même PDF.

Par exemple : plusieurs boutons ont une même destination, mais ils ont un nom différent, seule leurs terminaisons est commune de type : MS.ACA.J1 , LP.INT.J1

Je voudrais détecter la terminaison des boutons afin d'attribuer un script javascript spécifique qui serait une direction de page genre :
this.pageNum = 8;

Auriez-vous une idée sur un début de script javascript ?

#2 nekosan3

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 05 February 2014 - 12:07 PM

Bon je vais tenté de me répondre et d'expliquer le clairement possible, vu que ma solution a été trouvé sur un autre forum de Merlin ( abracadabrapdf via l'aide de Alex):

1. Tout d'abord on pourrait commencer à installer les scripts d'attribution (de direction de page ou autre…)
via : Scripts JavaScript du document (dans Acrobat XI : outils/Javascript/ Scripts Javascript du document)

Dans mon exemple on va prendre une script qui va diriger sur une autre page :
Au nom du script : active_btn (peut importe pourvu qu'il soit court et concis) :



function active_btn()
{
this.pageNum= 5;  
}
 
Vous l'aurez compris this.pageNum dirige vers la page voulu sauf que JavaScript est gourmand et rajoute une page en +, donc dans l'exemple donné, le script dirigera sur la page 6.

Une fois que l'on a mis tous ces scripts dans Script Javascript de document, on va recherché les boutons qui auront une terminaison
commune.

Sur un bouton nouvellement créé, dans Actions, sur l'action Souris relâché par exemple, on Exécute un code Javascript qui sera le suivant :

//Si leur nom des boutons fini par  ".A0" et si c'est un bouton on lui associe le script active_btn
console.clear();
indexField=0;
while(indexField<this.numFields)
{
nomDeChamp=this.getNthFieldName(indexField);
//substring à vérifier
          if(nomDeChamp.substring(nomDeChamp.length-3,nomDeChamp.length)== ".A0"& this.getField(nomDeChamp).type=="button")
          {
          console.println("Ajout du script au bouton "+nomDeChamp)
          this.getField(nomDeChamp).setAction("MouseUp","active_btn()");
          indexBouton=indexBouton+1;
          }
indexField=indexField+1;
}
console.println("Ajout du script active_btn sur "+indexBouton+" boutons");
console.show();
 

Cette ligne :


if(nomDeChamp.substring(nomDeChamp.length-3,nomDeChamp.length)== ".A0"& this.getField(nomDeChamp).type=="button")


indique le nombre de caractères que le script va recherché -3 etseront .A0 si de type bouton type=="button"
après libre à vous d'indiquer la terminaison que vous voulez recherché, et modifier en conséquence cette ligne.

Après avoir Fermer la fenêtre de modification, et quand vous aurez cliqué sur le bouton, le script active_BTN aura été attribué
à tous les boutons se terminant par .A0 le Débogueur de scripts Javascript vous le dira.

Quand on se retrouve avec des séries de minimum 20 à 30 boutons dirigeant vers la même page et ne commençant pas pareil en ayant la même terminaison, on gagne un temps fou.

#3 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 05 February 2014 - 13:23 PM

Nekosan3,

Un grand merci pour la démonstration.

Je me pose toutefois la question : Pourquoi cette fonctionnalité n'est-elle prévue qu'en Flash dans ID ?
Que la Force soit avec nous !...

#4 JRB

    abracadabrantesque

  • Members
  • PipPipPipPipPipPipPipPip
  • 1864 messages

Posté 05 February 2014 - 14:35 PM

Voir le messageObi-wan Kenobi, le 05 February 2014 - 13:23 PM, dit :

Pourquoi cette fonctionnalité n'est-elle prévue qu'en Flash dans ID ?

Quelle fonctionnalité ?
Acrobate du PDF, InDesigner et Photoshopographe
abracadabraPDF.net

#5 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 05 February 2014 - 14:44 PM

Bonjour JRB,

Choisir une page donnée comme cible du bouton.
Que la Force soit avec nous !...

#6 nekosan3

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 05 February 2014 - 15:07 PM

oui mais quel serait ton souhait comme autre format ou moyen ? ah ok… pouvoir mettre du code Javascript au bouton via Indesign ? peut-être que c'est possible dans le Indesign CC ? je n'ai pas la version.

Tient en parlant des possibilité qu'offre la palette des boutons dans Indesign, je n'ai jamais réussi à mettre en destination un autre document Indesign via les options de la palette des boutons, même en ayant pris soin d'indiquer le signet.

#7 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 05 February 2014 - 15:22 PM

1/ Tout à fait. Apparemment toujours pas possible sur ID CC.

2/ Script d'action : accéder à la cible ou ouvrir le fichier. Diiférence ??
Que la Force soit avec nous !...

#8 nekosan3

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 05 February 2014 - 16:32 PM

De ce que je comprends : Accéder à la cible ça sera à l'aide de signets défini dans la palette Signets donc dans le même document.

Ouvrir le document peut (mais comme je l'ai dit je n'ai jamais réussi) ouvrir un document autre que celui dans lequel tu travailles.
Sur Indesign dans la palette de bouton, au niveau du mot Document clic sur le petit dossier, tu as le choix sur un doc Indesign (c'est le seul format autorisé) disposant au préalable de signet.
Après pour l'exportation je ne vois comment on peut les mettre en relation (il y a une histoire de nom de document à respecter mais même avec ça…pas de résultat ). Vois tu ce que je veux dire ? si d'autres on réussi…

#9 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 05 February 2014 - 17:41 PM

Pour revenir au sujet (qui me disait vaguement quelque chose), je me souviens avoir utilisé un "hyperlien" pour créer des boutons qui renvoient à n'importe quelle page d'un pdf (transformé plus tard en epub fixed-layout). Les 2 fichiers réagissaient de la même façon.
Que la Force soit avec nous !...

#10 JRB

    abracadabrantesque

  • Members
  • PipPipPipPipPipPipPipPip
  • 1864 messages

Posté 05 February 2014 - 23:50 PM

Effectivement, dans les actions PDF il manque "aller à la page" et "Aller à la vue".
:eusa_doh:

Voir le messageObi-wan Kenobi, le 05 February 2014 - 15:22 PM, dit :

accéder à la cible ou ouvrir le fichier. Diiférence ??
Accéder à la cible : lien interne au document.
Ouvrir le fichier : lien externe.

Mais dans tous les cas, concernant les PDF je crois qu'on a toujours intérêt à finir le boulot avec Acrobat.
;-)
Acrobate du PDF, InDesigner et Photoshopographe
abracadabraPDF.net



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP