Toutes mes réponses sur les forums
-
AuteurRéponses
-
alex
ParticipantLa solution à votre problème n’est pas simple car il faut parcourir l’arborescence des signets que l’on ne connait pas à priori, voilà donc le code à tester et vérifier …
var cDest = app.popUpMenu( « section 1″, »section 2 », [« section 3 », « section 3-1 », « section 3-2 », « section 3-3 »], [« section 4″, »section 4-1″, »section 4-2″, »section 4-3″, »section 4-4″, »section 4-5″, »section 4-6 »],[« section 5 », « section 5-1 », « section 5-2 », « section 5-3 », « section 5-4 »],[« section 6 », « section 6-1 », « section 6-2 », « section 6-3 », « section 6-4 »], « section 7 », « section 8 » );
//this.gotoNamedDest(cDest);
//fonction de recherche des signets
function searchBookmarks(bkm, nLevel, bkmName)
{
//recherche de premier niveau
if ( bkm.name == bkmName ) return bkm;
//recherche aux niveaux secondaires par imbrication
if (bkm.children != null)
{
for ( i = 0; i < bkm.children.length; i++)
{
bkMark = searchBookmarks(
bkm.children, nLevel + 1, bkmName);
if ( bkMark != null ) break;
}
return bkMark;
}
return null;
}//programme principal…
if ( cDest != null )
{
bkm = searchBookmarks(this.bookmarkRoot, 0, cDest );
if ( bkm != null ) bkm.execute();
else app.alert(« Signet introuvable »,1);
}//Je n’ai pas eu de difficulté car ce code est assez bien documenté.
alex
ParticipantJe te l’envoies Merlin pour que tu la « pédagogise ».
alex
ParticipantCapter l’indice du menu déroulant en placçant le script suivant dans les actions de script personnalisée liées au format du menu déroulant . La valeur est stockée dans le champ invisible nommé « ChampInvisible ».
this.getField(« ChampInvisible »).value=event.target.currentValueIndices;Lors de l’ouverture du document avec les données (qui comprennent la valeur du champ invisible), lancer le script d’ouverture de page suivant qui a pour effet de resélectionner l’item correspondant à la valeur stockée:
position=this.getField(« ChampInvisible »).value;
app.alert(« Nous allons placer le menu déroulant sur l’item « +position,3)
this.getField(« MenuDeroulant »).currentValueIndices=position;Maquette pour ceux qui me la demandent gentiment…. :idee:
Bonsoir4 février 2008 à 19:05 en réponse à : Ouvrir un fichier pdf à la même page que celui ouvert (dans une autre langue) #49473alex
ParticipantJe pense qu’il faut autoriser la manipulation (l’ouverture) du fichier cible par le script du fichier père. Pour cela on aura recours à la propriété disclosed du document cible. Cela évite de passer un script de haut niveau.
alex
ParticipantEssayez ceci:
Créer un champ caché recevant par script la valeur du rang de l’item à sélectionner.
Lors de l’ouverture du document un script positionnera le menu déroulant en fonction de la valeur de ce champ…alex
ParticipantLa syntaxe est la suivante :
if(this.getField(« Champ1 »).value==1)
{
//condition satisfaite.
this.getField(« Champ2 »)hidden=true;
}
else
{
//condition non satisfaite..
this.getField(« Champ2 »)hidden=false;
}
//Je vous laisse écrire la suite pour la seconde condition…alex
ParticipantJe viens de tester les deux fonctions sous Acrobat Reader 8 :
Sous Acrobat 7 ou 8, créer deux fichiers pdf, pour aller vite:
Options avancées>JavaScript>Déboguer>
Dans la console saisir app.newDoc(); puis Enter avec la touche Enter du pavé numérique.
Créer deux boutons:
Le bouton P (précédant) et lui associer le script app.goBack();
Le bouton S (suivant) et lui associer le script app.goForward();
Enregistrer ce document sous différents noms.Sous Acrobat Reader 8 cette fois, ouvrir ces documents les uns derrière les autres. Tester les boutons P puis S !
Le miracle se produit (en fait ça marche comme prévu, le bug des premières versions du reader 8 est corrigé).alex
ParticipantVotre script est bon. Essayez le sous Acrobat Reader 7 pour vous en convaincre !
C’est app.goBack() qui est en cause.29 novembre 2007 à 14:00 en réponse à : Navigation dans 1 fichier pdf uniquement par les boutons qu’il contient #49510alex
ParticipantBonjour à tous. Je fais un petit retour au JavaScript. A ma connaissance, il n’est pas possible de capter ces évènements avec JavaScript mais je peux me tromper. Par contre on peut inhiber l’apparition des menus et donc inciter l’utilisateur à cliquer sur les boutons. Placer le script en ouverture de page soit par batch soit par programme JavaScript.
-
AuteurRéponses