Exécuter plusieurs Scripts en séquence dans InDesign
Vous utilisez sans doute déjà des scripts dans Adobe InDesign. Les scripts sont d’excellents compagnons pour accélérer et sécuriser votre production. Mais si vous souhaitez en exécuter plusieurs, vous êtes amenés à lancer chaque script individuellement.
La plupart de ces routines agissent en quelques (milli)secondes. Mais peut-être certaines d’entre-elles prennent davantage de temps. Vous vous retrouvez alors à attendre que vos scripts s’achèvent pour en lancer d’autres, ce n’est pas très pertinent.
Il serait bon de pouvoir définir une liste de scripts à exécuter à la chaîne dans InDesign. Cette fonctionnalité n’existe pas en natif. Les développeurs savent préparer ce genre de séquence très facilement. Mais pour ceux qui ne connaissent rien au scripting, nous leur dédions un nouveau panneau : BatchRunner.
Scripter une chaîne de scripts
Il existe en javascript une méthode dédiée à l’exécution de scripts tiers : doScript. Cette méthode appartient à l’objet Application (app) et permet d’éxécuter soit du code contenu au sein du même fichier de script soit un script externe. C’est cette deuxième possibilité qui nous intéresse ici.
Je ne m’attarderai pas davantage sur cette méthode. Vous trouverez tous les détails dans les guides du scripting pour Adobe InDesign mais cette légère introduction vous permet d’entrevoir comment écrire un script capable d’exécuter une séquence de scripts. Par exemple, le script suivant entraînera l’exécution des fichiers définis en variables.
function batch() { var f1 = File ( "script_1.jsx" ); var f2 = File ( "script_2.jsx" ); var f3 = File ( "script_3.jsx" ); app.doScript ( f1 ); app.doScript ( f2 ); app.doScript ( f3 ); } batch();
Il est donc extrêmement aisé de bricoler une séquence de script. Mais pour certains d’entre vous, le fait même d’ouvrir un éditeur de code génère un prurit fâcheux. Pour d’autres, la migraine les aura saisi dès la lecture des quelques lignes ci-dessus. Il était donc intéressant de concevoir un outil permettant la création et l’exécution de scripts en toute transparence. C’est l’objectif de BatchRunner.
BatchRunner
BatchRunner est une extension que vous retrouverez sous le menu « Fenêtre/Extensions ». Une fois lancé, le panneau dispose d’une interface très simple.
Les éléments clés de l’interface sont :
1. La liste des scripts (contient tous les scripts accessibles dans la palette Scripts d’InDesign)
2. La liste de séquence (les scripts placés dans cette liste seront exécutés automatiquement)
3. Le bouton de lancement de la séquence que vous aurez préparée
Créer une séquence
Pour cette démo, nous avons préparé trois scripts ( 1.jsx, 2.jsx, 3.jsx). Ces scripts vont simplement afficher leur nom de fichier. Cela va nous permettre de vérifier que notre séquence se déroule comme attendu. Comme notre liste de scripts est assez longue, nous allons utiliser le champ de filtre. Nous utilisons donc une expression régulière : ^\d
Il ne reste que les trois scripts qui nous intéresse. Pour commencer, il nous suffit de glisser/déposer des scripts depuis la liste des scripts (1) vers la séquence (2).
Exécuter une séquence
Votre séquence est maintenant prête à être exécuter. Il ne vous reste plus qu’à lancer votre séquence en cliquant sur « Go ».
Qu’obtenons-nous ?
Nos trois scripts sont bien exécutés dans l’ordre de la séquence. Dailleurs si nous modifions l’ordre de la séquence, l’exécution des scripts s’en trouve affectée de la même façon.
Sans écrire une seule ligne de code, il est aisé de créer des séquences de script et même d’en changer l’ordre d’exécution à la volée.
Contexte d’exécution
Il faut noter que BatchRunner prend le parti pris de s’effacer devant les scripts qu’il exécute. BatchRunner ne vérifie aucun contexte d’exécution. Il exécute mécaniquement les scripts un par un sans contrôle sur les conditions d’exécution des scripts.
Une fois cela compris, vous pourrez exécuter votre séquence de scripts une fois (bouton « Go ») ou répétez votre séquence sur les documents ouverts (bouton « Docs ») ou bien sur une sélection de fichiers (bouton « Fichiers »).
Presets
Tout ajout de script est conservé automatiquement dans le panneau. Vous retrouverez vos séquences telles quelles à la prochaine ouverture. Vous pouvez aussi décidez de sauvegarder votre séquence dans un preset particulier.
Nous espérons que ce panneau vous permettra de gagner encore plus en efficacité. N’hésitez pas à nous faire part de vos remarques et commentaires.
A bientôt,
it’s a great InDesign blog you granted here. Helpful and useful sharing of yours. Plenty amazing looking of your blog. Thanks!
Bravo pour vos diverses interventions.
BatchRunner me serait bien utile si je parvenais à l’installer. Mais je me heurte aux messages suivants :
– avec Extension Manager CC : « Le fichier MXI de cette extension n’est pas valide »;
– avec Extension Manager CS6 : « L’extension « BatchRunner » ne contient pas de signature valide ».
Verriez-vous quelque raison à ce comportement ? (Je travaille sous W7 et mes applications Adobe sont à jour.)
Merci.
@Capucine,
Effectivement, il semble que certains aient rencontré des difficultés à l’installation. Je viens de mettre le fichier à jour et tester l’installation sous Extension Manager CC/CS6 et CS5.5.
Téléchargez à nouveau le fichier et dîtes moi si tout est ok.
Loic
L’installation se déroule sans problème, que ce soit sous CS6 ou CC.
Je vais tester de ce pas cette extension. Merci !
Bonjour,
juste un petit mot pour vous signaler que le lien vers le script BatchRunner ne fonctionne pas sur cette nouvelle version du site (très agréable d’utilisation).
Quoi qu’il en soit, merci de partager ainsi tous ces scripts. 🙂
Bonjour,
Merci de ce signalement,
Nous investiguons…
Bien à vous,
Loic
Bonjour,
Le lien est fonctionnel à nouveau.
Bien à vous,
Loic
Merci LoÏc ! 😀
Bien à vous également,
Frédéric
Salut Loïc,
Peut-on installer BatchRunner sur ID CC 2015 ?
A+
Michel
Hello comme expliqué par ailleurs, tu peux installer le swf dans le répertoire /Plugins/Panels de l’application. Il faut au préalable dézipper le zxp pour en extraire le swf. Mais sans révéler de secrets, le support des panneaux flash est compté. Le panneau pourrait ne lus fonctionner lors d’une prochaine mise à jour CC.
This article is going to help me a lot. Thank you very much for your invention and sharing this with us.