Vous avez mis en page un document InDesign en utilisant un certain nombre d'images, et vous voulez rééditer les liens de ces images vers de nouveaux fichiers dont les noms diffèrent des précédents suivant un motif prévisible. Ce script vous permettra d'utiliser la boîte de dialogue "Rechercher/Remplacer" d'InDesign pour rééditer ces liens.

Exemple 1 : votre mise en page a été réalisée avec des versions 640 pixels d'images libres de droits de Pixabay, lesquelles se terminent par "_640.jpg", et à présent vous vous êtes enfin décidé à vous inscrire sur ce site pour pouvoir télécharger toutes ces mêmes images en résolution d'origine, les fichiers obtenus ont les mêmes noms que les précédents sans le suffixe "_640". Pour remplacer les liens Il vous suffira

d'ouvrir la boîte de dialogue Rechercher/Remplacer > Texte et d'y saisir:
Rechercher : _640.jpg
Remplacer par : .jpg
Lancer le script,
Sélectionner le dossier où rechercher les liens,
Le script affiche alors les résultats de la recherche dans une fenêtre, dans plusieurs onglets si le nombre de résultats est important. Vous pouvez alors éventuellement décocher certains liens que vous ne voulez pas remplacer
Valider la fenêtre ("OK" ou "Remplacer tous les liens cochés" selon la version du script) > Les remplacements cochés sont effectués.

Pour effectuer la modification inverse, remplacer toutes les versions pleine résolution par les versions 640 px :

Rechercher/Remplacer > Texte
Rechercher : .jpg
Remplacer par : _640 .jpg
Lancer le script, etc.

find change links indd 002 fr

Exemple 2 : vous avez toujours des images de résolutions inférieures de Pixabay à remplacer par leurs versions pleine résolution, mais cette fois vous avez un mélange de versions 640 px, 1280 px et 1920 px (se terminant par "_640.jpg", " _1280.jpg" ou "_1920.jpg"). Cette fois il faudra utiliser :

Rechercher/Remplacer > GREP
Rechercher : _\d+\.jpg
Remplacer par : .jpg
Lancer le script, etc. (Démo)

D'où l'intérêt d'utiliser la boîte de dialogue existante Rechercher/Remplacer GREP qui vous permet d'utiliser l’icône Caractères spéciaux @ pour vous aider à construire votre expression régulière car tout le monde ne connaît pas par cœur la syntaxe GREP.

Pour faire la modification inverse en remettant des images de différentes résolutions inférieures à la place des images pleine résolution :

Rechercher/Remplacer > GREP
Rechercher : \.jpg
Remplacer par : _\d+ \.jpg
Lancer le script, etc.

Remarquez que dans ce dernier cas de figure "Remplacer par" est également une expression régulière, ce qui n'est pas normalement prévu dans la boîte de dialogue Rechercher/Remplacer GREP d'InDesign mais permettra au script de comprendre qu'il faut remplacer les images par d'autres pour lesquelles l'extension ".jpg" est précédée d'un underscore puis d'un ou plusieurs chiffres[1].

Le script pourrait alors trouver plusieurs fichiers correspondants, si par exemple votre image de départ se nomme chihuahua-2101644.jpg et que le dossier des images de remplacement contient à la fois chihuahua-2101644_640.jpg et chihuahua-2101644_1920.jpg : pour cette raison les résultats sont proposés dans des menus déroulants (en fait même pour une seule possibilité) dans la fenêtre des résultats, vous permettant de choisir avant de valider les remplacements.

Les options "Inclure les calques et objets verrouillés", "Inclure les calques et objets masqués" et "Inclure les gabarits" des onglets "Texte" et "GREP" sont prises en compte.
L'option "Respect de la casse" de l'onglet Texte est prise en compte également pour la recherche GREP.

    La nouvelle version 13 :
  • Prend mieux en compte certains caractères accentués sous Mac OSX qui auparavant n’étaient parfois pas reconnus en raison de l’encodage en unicode composite (NFD) du système de fichiers (modifié suite au signalement du problème par Andreas Rößner, directeur d’un studio graphique de Munich).
  • Propose le cas échéant de rechercher les liens à remplacer également dans les éventuels sous-dossiers du dossier sélectionné (modifié suite à une requête de Joke Wouters).
  • Contrairement aux versions précédentes, n’est proposée désormais qu’en une seule version affichant une fenêtre de type "palette" permettant, depuis les onglets des résultats, de sélectionner chaque lien en montrant où il se trouve et de décider éventuellement de le remplacer individuellement pour voir la différence, ou de remplacer tous les liens cochés en une seule fois. Testé sans problème sur plusieurs versions d’InDesign y compris sur une version ancienne CS5.5.

[1] Dans l'exemple 2 j'ai utilisé la syntaxe la plus facile à comprendre pour les débutants en GREP mais on peut aussi faire

Rechercher : _\d+(\.jpg)
Remplacer par : $1

et la recherche inverse

Rechercher : (\.jpg)
Remplacer par : _\d+$1

"Remplacer par" est alors une expression régulière inhabituelle incluant un sous-résultat $1 d'une regex précédente — hybridation correctement interprétée par mon script. Le résultat entier $0 fonctionne également mais sera remplacé par son équivalent javascript $&

6 commentaires

  1. Le popup jce mediabox qui montre ma démo en gif animé semble fréquemment la recadrer suivant votre taille d'écran et celle de la fenêtre du navigateur, j'ai donc ajouté aussi un lien direct « ([u][url=https://www.scriptopedia.org/images/users/img_scripts_inDesign/find-change-links/find-change-links_indd-002-fr.gif]→ Démo[/url][/u]) »
    [u]Remarque :[/u] la colorisation du texte a été rajoutée ultérieurement sur les captures d'écran dans la vidéo de démonstration pour mettre en évidence l'expression régulière et montrer à quoi elle correspond, mais vous ne verrez pas de texte ainsi colorisé dans l'interface d'InDesign quand vous utiliserez le script.

    1. Frédéric.
      La popup est paramétrée en effet pour ne pas perdre de partie des images à l'affichage sur de petits écrans. C'est normal ! ;)

  2. Bonjour
    je souhaite utiliser ce script pour remplacer les liens jpg par les liens psd enregistrés dans le même dossier et portant le même nom. Cela a l'air de fonctionner sur mon fichier test, les 4 images sont bien remplacées… mais indd plante après systématiquement…
    Merci de votre aide !

    1. Il semble que seule la version11 fonctionne. Plus de plantages ! :)

      1. Bonjour.

        J'ai transmis l'information à Frédéric, il pourra intervenir à la suite des commentaires.

      2. Effectivement, je n’avais testé à l’époque du développement que sur InDesign CS5 et CC2015, or je viens de vérifier qu'à partir de CC2017 sous MacOSX l'application quitte inopinément quand on utilise find-change-links_indd009.jsx
        Comme je l’ai précisé à la fin de l’article, la version 009 est fournie au cas où la version 011 plus évoluée fonctionnerait mal sur les anciennes versions d’InDesign (bugs constatés sous CS5). Il va falloir que je précise également qu'il ne faut l’utiliser que pour ces anciennes versions. Faute de pouvoir tester les deux scripts sur toutes les versions depuis CS4 jusqu'à CC2018 je présume qu’il vaut mieux utiliser find-change-links_indd009.jsx sur les versions CS d'InDesign et find-change-links_indd011.jsx sur les versions CC.

Laissez votre commentaire

En réponse à Some User

Suivez Scriptopedia.org

Divers

À propos de Scriptopedia.org

Une idée de Loic Aigon mis en page par Eddy.VH se veut être une bibliothèque de scripts pour les produits Adobe orientés PAO. Vous y trouverez des scripts de type JavaScript pour Photoshop, Illustrator, inDesign et Acrobat et de type ATN ( Actions pour Photoshop ).