Javascript Adobe IllustratorBien qu’en principe il ne soit généralement pas recommandé d’ouvrir dans Illustrator un PDF généré par exemple à partir d’InDesign ou QuarkXPress, ou simplement généré à partir d’Illustrator mais enregistré en PDF/X, cela nous arrive forcément un jour ou l’autre quand on ne dispose pas du fichier natif et que l’on veut simplement y récupérer quelques éléments graphiques pour un nouveau travail de création. L’on remarque alors que les paragraphes y sont toujours fractionnés en plusieurs textes de point alignés à gauche, que des caractères qui avaient été affectés par une échelle horizontale dans le fichier natif se retrouvent affectés par une échelle verticale inverse et un corps différent, certains éléments de texte sont parfois vectorisés notamment ceux de type dingbats, etc. Cette extension pour Illustrator CC+ (panneau html5 non compatible avec les anciennes versions CS) baptisée « Text rebuild tools », rassemble plusieurs fonctions, dont quelques unes déjà publiées ici sous forme de scripts jsx distincts, aidant à la recomposition et la reconstruction de lignes/paragraphes/articles de texte modifiable à partir de ces éléments de base.

TextRebuildTools ai008 fit text to outline frVous y retrouvez la fonction “Ajuster le texte au tracé” vous permettant d'ajuster un texte exactement aux dimensions d'un élément vectoriel ;
TextRebuildTools ai008 hv scale motionless change to 100 frainsi que la fonction permettant d’Inverser l’échelle horizontale/verticale des caractères, par exemple de transformer un caractère en corps 18 pt avec une échelle verticale de 111,11111 % en un caractère visuellement identique en corps 20 pt avec une échelle horizontale de 90 % et inversement ;
TextRebuildTools ai008 justification motionless change frune nouvelle fonction pour changer l’alignement de paragraphe d’un texte de point sans qu’il bouge, afin de rétablir le mode d’alignement qu’avait une ligne de texte dans le document natif d’origine, systématiquement remplacé par fer à gauche lorsqu’on ouvre le pdf exporté dans Illustrator ;
TextRebuildTools ai008 merge into one story frvous retrouvez également la fonction de Reconstitution de texte morcelé permettant la reconstruction de lignes/paragraphes/articles de texte modifiable à partir de texte divisé en plusieurs fragments — situation fréquemment rencontrée et pour laquelle d’autres scripts ont été développés par exemple par John Wundes ou Justin Putney.

Référence :

TextRebuildTools ai008.13 fr param

“Ajuster le texte au tracé” > Il faut sélectionner un texte non vectorisé et un ou plusieurs tracés auquel le script ajustera le texte [cf. 177-ajuster-le-texte-au-trace].


Changements immobiles [modifications généralement invisibles ou presque] :

Redéfinir l’échelle verticale ou horizontale des caractères à 100 % : inverser l’échelle horizontale/verticale des caractères en préservant l’aspect [cf. 200-inverser-echelle-hv-caracteres] :

  • “verticale” > Mettre l’échelle verticale à 100 %, ajuster l’échelle horizontale et le corps en conséquence.
  • “horizontale” > Mettre l’échelle horizontale à 100 %, ajuster l’échelle verticale et le corps en conséquence.

Redéfinir le décalage vertical du caractère à [valeur] > Sélectionnez avec l’outil texte un seul caractère de référence affecté ou non par un décalage vertical et le script remplacera cette valeur de décalage par celle souhaitée, recalculera le décalage vertical de tous les autres caractères du texte en conséquence et déplacera l’ancre du texte pour rétablir la position visuelle initiale des caractères.

Redéfinir l’alignement de paragraphe

  • “gauche” > Définit l’alignement de paragraphe sur fer à gauche, puis déplace l’ancre du texte pour rétablir la position visuelle initiale des caractères.
  • “centré” > Définit l’alignement de paragraphe sur centré, puis déplace l’ancre du texte pour rétablir la position visuelle initiale des caractères.
  • “droite” > Définit l’alignement de paragraphe sur fer à droite, puis déplace l’ancre du texte pour rétablir la position visuelle initiale des caractères.

Fusionner les fragments de texte en une seule ligne/un seul paragraphe/un seul article [cf. 186-reconstituer-du-texte-morcele-dans-illustrator] :

  • “une seule ligne” > Cherche à fusionner tous les fragments de texte sélectionnés dans une seule ligne, en ajoutant un “décalage vertical” aux textes non alignés pour préserver l’aspect. Convient par exemple s’il on veut rassembler sur une même ligne des éléments de texte comportant des fragments décalés résultant d’“exposants” ou “indices”.
  • “un seul paragraphe” > N’assemble d’abord sur une même ligne que des fragment alignés verticalement (avec une tolérance définie par le paramètre “Seuil de même ligne”), assemble ensuite les textes (simples ou multi-lignes) dans un seul paragraphe (les textes joints seront séparés par des ¬ sauts de lignes forcés) dans un seul objet texte. La répartition des textes joints sera restituée dans la mesure du possible par la recherche du mode d’alignement de paragraphe (fer à gauche avec éventuellement retrait de 1re ligne à gauche, centré ou fer à droite) préservant le mieux la répartition horizontale initiale et l’interlignage préservant la répartition verticale.
  • “un seul article” > N’assemble d’abord sur une même ligne que des fragment alignés verticalement (avec une tolérance définie par le paramètre “Seuil de même ligne”), assemble ensuite les textes (simples ou multi-lignes) dans un seul article (les textes joints seront séparés par des ¶ retours chariot/fins de paragraphe) dans un seul objet texte. La répartition des textes joints sera restituée dans la mesure du possible par des attributs de paragraphes, verticalement par les paramètres “espace avant/après” et horizontalement par les paramètres “retrait gauche/droite”

↳ Paramètres :

  • “Rotation de texte détectée” > Pour simplement vous informer qu’une rotation a été détectée et que le script devra temporairement annuler puis restaurer cette transformation pour obtenir des résultats corrects.
  • “Seuil d’ajout d’espaces” > S’il existe un intervalle horizontal entre deux fragments de texte consécutifs à fusionner : 1) pour un intervalle d’une largeur supérieure à ce seuil (défini en millièmes de cadratin du corps de police du dernier caractère du premier fragment de texte), une ou plusieurs espaces seront ajoutées à la fin du premier fragment de texte avant d’y ajouter les caractères du second fragment de texte ; 2) pour un intervalle d’une largeur inférieure à ce seuil, la valeur d’approche du dernier caractère du premier fragment de texte sera augmentée avant d’y ajouter les caractères du second fragment de texte [vous pourriez parfois avoir besoin d’augmenter ce seuil, par exemple pour fusionner des capitales espacées sans avoir d’espaces insérées entre elles].
  • “Seuil d’ajout d’attribut” > Seuil utilisé pour décider si un décalage horizontal/vertical existant entre des fragments de texte à fusionner est suffisamment significatif pour ajouter/modifier certains attributs de caractère/paragraphe tels que “décalage de ligne de base”, “retrait gauche/droite”, “retrait de 1re ligne à gauche” pour conserver la répartition des caractères, ou si ce décalage est insignifiant et devrait plutôt être ignoré. Par exemple s’il existe un décalage vertical entre deux fragments de texte consécutifs à fusionner en une seule ligne (en utilisant le bouton fusionner en une seule ligne ou lorsque le décalage vertical reste inférieur au “Seuil de même ligne”) : 1) pour un décalage supérieur au “Seuil d’ajout d’attribut”, la valeur de décalage vertical des caractères du second fragment de texte sera modifiée avant d’ajouter ces caractères au premier fragment de texte ; 2) un décalage vertical inférieur à ce seuil sera simplement ignoré.
  • “Seuil de même ligne” > Paramètre pour fusionner les fragments de texte en un texte de plusieurs lignes (ignoré lors de l’utilisation du bouton fusionner en une seule ligne) : si le décalage vertical entre deux fragments de texte à fusionner est inférieur à ce seuil, les fragments seront fusionnés sur une même ligne (remarquez qu’il en découle qu’une série d’un nombre illimité de fragments de texte consécutifs séparés par des intervalles verticaux ne dépassant pas ce seuil peuvent se retrouver fusionnés dans une même ligne même si le décalage vertical entre le plus haut et le plus bas de la série dépasse ce seuil).

Conserver l’espacement vertical des paragraphes assemblés en utilisant

  • “espace avant” > Lors de l’assemblage de deux paragraphes consécutifs, conserver l’espacement vertical entre les deux en ajustant le paramètre “espace avant” du paragraphe inférieur.
  • “espace après” > Lors de l’assemblage de deux paragraphes consécutifs, conserver l’espacement vertical entre les deux en ajustant le paramètre “espace après” du paragraphe supérieur.
  • “interligne” > Lors de l’assemblage de deux paragraphes consécutifs, conserver l’espacement vertical entre les deux en ajustant l’interlignage de la 1re ligne du paragraphe inférieur.

Conserver la répartition horizontale des paragraphes assemblés en appliquant des retraits calculées par rapport au

  • “texte le plus à gauche” > En joignant plusieurs éléments de texte dont les points d’ancrage ont différentes coordonnées horizontales (avec des décalages excédant le “Seuil d’ajout d’attribut”), conserver leur répartition horizontale en ajustant les paramètres “retrait gauche/droite” des paragraphes, calculant les retraits par rapport à l’élément de texte le plus à gauche. La coordonnée horizontale du point d’ancrage du texte résultant sera la même que celle du texte assemblé le plus à gauche. Convient aux paragraphes en fer à gauche.
  • “texte le plus à droite” > En joignant plusieurs éléments de texte dont les points d’ancrage ont différentes coordonnées horizontales (avec des décalages excédant le “Seuil d’ajout d’attribut”), conserver leur répartition horizontale en ajustant les paramètres “retrait gauche/droite” des paragraphes, calculant les retraits par rapport à l’élément de texte le plus à droite. La coordonnée horizontale du point d’ancrage du texte résultant sera la même que celle du texte assemblé le plus à droite. Convient aux paragraphes en fer à droite.

“Uniformiser crénage/approche” > A utiliser lorsque le panneau Caractère affiche une valeur de zéro pour le crénage et une valeur d’approche différente pour chacun des caractères du texte sélectionné : Cette fonction teste pour les caractères sélectionnés les différents modes de crénage (Métrique - Romaine seulement, Auto, Optique, 0/Sans) et différentes valeurs uniformes d’approche et d’intermots, et sélectionne ceux qui modifient le moins la position visuelle des caractères.

↳ Paramètre :

  • “Tolérance” > Le test d’application de valeurs uniformes de crénage, approche et intermots au texte sélectionné sera considéré comme réussi si le décalage horizontal résultant moyen des caractères par rapport à leur position initiale reste inférieur à ce seuil de tolérance. Dans le cas contraire la modification sera annulée.

“Uniformiser interlignage” > Applique un interligne uniforme à tous les caractères sélectionnés.

Ajouter un Commentaire

Suivez Scriptopedia.org

feed-image Suivez Scriptopedia.org

Scriptopedia sur facebook

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 ).