Toutes mes réponses sur les forums
-
AuteurRéponses
-
alexParticipant
La 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é.
alexParticipantJe te l’envoies Merlin pour que tu la “pédagogise”.
alexParticipantCapter 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) #49473alexParticipantJe 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.
alexParticipantEssayez 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…alexParticipantLa 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…alexParticipantJe 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é).alexParticipantVotre 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 #49510alexParticipantBonjour à 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