RichPaste | Enrichissez votre copier-coller ! [MÀJ]
April 06, 2016 | Snippets | fr | en
Lorsqu'il s'agit de coller du texte en provenance d'un autre document ou d'une autre application, InDesign propose une alternative : soit conserver les enrichissements d'origine (fonction « Coller »), soit les supprimer tous (« Coller sans mise en forme »). Certes, nous disposons de quelques fonctions et préférences pour moduler la mise en correspondance des styles, mais ces outils restent souvent, soit complexes, soit décevants. C'est là que le script RichPaste entre en scène…
Mise à jour (6-Avril-2016). — RichPaste 1.7 fournit seulement des correctifs légers liés à la gestion de fichiers. Rappelons en passant que le script (RichPaste.jsx) s'installe de la même façon qu'un script InDesign ordinaire (ce n'est pas un script de démarrage).
Mise à jour (12-Jan-2016). — RichPaste 1.6 contient d'importants correctifs (en particulier, en liaison avec l'intégration du menu dans InDesign) et apporte diverses améliorations. Le script offre désormais une localisation en allemand grâce à mon confrère Uwe Laubender dont l'aide m'a été précieuse sur tous les fronts. Le texte composé en exposant/indice est maintenant pris en charge. Par ailleurs, les polices présentant une flexion « Oblique » sont dorénavant reconnues comme une variante de l'italique.
Comment installer la mise à jour ?
1. Quittez InDesign.
2. Déposez la nouvelle version de RichPaste.jsx à l'emplacement du fichier existant.
3. Redémarrez InDesign.
4. Exécutez RichPaste.jsx à partir de votre panneau Scripts. (Un message peut vous aviser de la mise à jour.)
5. Terminé. Vous pouvez fermer le panneau Scripts et lancer RichPaste à partir du menu Édition ou du menu contextuel sur clic droit.
Le problème
J'imagine que tout maquettiste a eu affaire, au moins une fois dans sa vie, à ce genre de document source :
Pour recomposer un matériau aussi généreusement informe — merci l'auteur ! — la solution la plus expéditive consiste à éliminer toutes les fioritures avant d'appliquer la charte typographique de l'éditeur.
Le problème, c'est qu'en évacuant toute mise en forme vous perdez également une partie substantielle du contenu (italique, soulignement…), c'est-à-dire ces enrichissements qui participent de la sémantique du texte. La fonction « Coller sans mise en forme » apparaît donc trop radicale à cet égard :
La solution
Idéalement, on préférerait conserver certains de ces formatages indispensables tout en immunisant le document-cible contre l'irruption de polices sauvages, de styles importés et d'autres effets collatéraux. La solution médiane ressemblerait alors à ceci :
Telle est la fonction de notre script du jour : RichPaste. Ce dernier propose une interface très simple permettant à l'utilisateur de choisir explicitement les attributs minimaux à conserver lors d'un collage enrichi à destination d'InDesign :

Les options parlent d'elles-mêmes. Utilisez les champs Police #1 ou #2 pour maintenir des polices de caractères particulières (par exemple, Arial-Regular) ; à défaut, laissez ces champs vides. Vos réglages seront mémorisés jusqu'à leur prochain ajustement. Cochez la case « Ne pas afficher cette fenêtre avant de coller » pour inhiber la boîte de dialogue lors d'un collage enrichi. Vous pourrez toujours modifier vos réglages par la suite via le menu contextuel sur clic droit, ou à partir du menu Édition.
Comme vous le constatez dans la capture ci-dessus, un autre élément de menu a été ajouté : Coller avec mise en forme | RichPaste. Celui-ci s'intègre également au menu contextuel (clic droit), offrant ainsi un accès immédiat au script dans un contexte d'édition (texte sélectionné ou point d'insertion) :

Note. — Lors de son premier lancement (i.e. depuis le panneau Scripts) RichPaste installe automatiquement ses entrées de menu dans InDesign. Vous n'aurez donc plus besoin d'ouvrir le panneau Scripts par la suite.
Installation. — RichPaste étant un script JSX classique, il suffit de déposer le fichier dans votre dossier 'Scripts Panel' pour le rendre opérationnel. En tâche de fond, le script fabrique un fichier de démarrage responsable du système de menus, mais ce processus reste transparent — en principe — à l'utilisateur. (Attention : ne placez pas le script lui-même dans un dossier « startup scripts » !)
Problèmes (plus ou moins) connus
Des bugs, ou comportements insatisfaisants, peuvent se manifester. Cela dépend de vos préférences InDesign, de la disponibilité des polices de caractères impliquées dans l'opération, ou encore de l'état interne du presse-papier lorsque le script s'exécute. Je n'ai pas étudié tous les cas problématiques et certaines difficultés me restent assez impénétrables à ce jour. Ainsi, sans raison apparente, InDesign peut quelquefois échouer dans le déchiffrage des attributs du presse-papier, même lorsque l'application source est réputée assurer une gestion loyale du texte enrichi.
RichPaste restitue les notes de bas de page, mais il ne tente pas de leur appliquer une mise en forme fidèle aux paramètres d'origine. Ainsi, la composition des notes est seulement gouvernée par vos paramètres InDesign courants, sachant qu'en ce domaine les bugs de l'application sont de notoriété publique depuis une bonne décennie.




Comments
How come this is already 1.4 and I never heard of it ? :)
Except the "extra work" feeling, what do you think of not only preserving bold/ital/underline, but also assigning dedicated (existing) character styles to those things we preserve ?
I know there's also this very strange thing to deal with when start of the line is bold, middle is bold-italic, end is italic only. 3 Character styles in inDesign, which makes it one step further of complication (and I could manually deal with that later)
Great script! (although I seem to be unable to download it at the moment)
Would it not also be possible to make the script create placeholder character styles based on the formatting it finds? I.e. not character styles that try to recreate the original style visually, but just „empty“ character styles that are already applied to the text style ranges and can then be set up typographically by the InDesign operator.
Hi Franck & MD,
I *knew* character style mapping would be mentioned here ;-)
italic formatting → MyItalicStyle
bold formatting → MyBoldStyle
etc.
Indeed version 1.4 does not provide this mechanism, basically for two reasons. First, adding character style mapping options in the UI dialog is a nightmare. Furthermore, mapping styles is in itself a possible script beyond the specific purpose of RichPaste. (Meanwhile, I still consider find/change queries as a decent solution in that scope.)
@Franck
Yep, there was a very unofficial pre-prerelease of RichPaste 1.4. In fact, the old name of this script was “SmartPaste.” The URL was hidden but already disclosed to some of my fans and Twitter followers ;-)
@+,
Marc
Hi Marc,
Very nice script. But don't you think that super- and subscript and strikethrough should be preserved as well?
Peter
J'aime beaucoup ce script, qui une fois encore, répond à un vrai besoin, lors d’import vers ID...
A nouveau un grand merci, je vais le pousser un peu pour en constater les avantages.
Thanx again Marc.
Hyper intéressant !
Bravo et merci beaucoup...
en revanche, je n'ai rien compris pour installer le script :(
Merci de votre aide
Franck
Bonjour Franck,
> je n'ai rien compris pour installer le script :(
Rassurez-vous, RichPaste est un script InDesign tout ce qu'il y a de plus classique :
— tout d'abord, téléchargez le fichier RichPaste.jsx (clic droit, enregistrer sous…),
— puis installez-le selon la procédure habituelle indiquée ici : http://www.indiscripts.com/pages/he...
@+
Marc
I can’t get menu integration to work. The "startup scripts" folder gets created but remains empty in C6/CC14/CC15 (Mac 10.11.4/German). Any ideas?
I found the Problem: Though i put the script in my user scripts panel the startup scripts would be put into the apps startup scripts. This of course doesn’t work for non-admin users. I would call this a BUG. ;)
Hi rP,
Thanks. You are perfectly right. In my F_GET_STARTUP_FILE function I should process the user stuff *before* the app stuff in order to give precedence to user location.
Will be fixed.
@+
Marc
Il semble que le même souci (que rP décrit ci-dessus) dû à un profil "non administrateur" se confirme sur mon PC. Le script est installé et fonctionne, mais ne peut être appelé ni par le menu Édition, ni par le clic-droit.
(Indesign CS6/Windows)
Bonjour Nico,
Merci pour votre commentaire (et désolé pour mon extrême latence).
> Le script est installé et fonctionne, mais ne peut être appelé
> ni par le menu Édition, ni par le clic-droit.
Est-ce à dire que les menus en question sont carrément absents, ou bien qu'ils sont présents mais non fonctionnels ? Cette petite nuance pourrait me fournir un indice salutaire.
@+
Marc
I would like to use this script for a bigger project, but unfortunately the "target" font doesn’t use "bold" but "demi" or "medium" styles. Any ideas how to map "bold" to "demi", "medium" or the like?
Hi rP,
Line 756 of the script you have:
destParams = I.SCAN_SELFONT_FORMATTINGS(sel);
The object destParams will then contain the names associated to the font variants for bold and ital, ordered as follows:
destParams[0] : normal font name
destParams[1] : italic font name
destParams[2] : bold font name
destParams[3] : bold+ital font name
So if you already know the target font and the desired variants (demibold, etc.) you can hack the script by rewriting the destParams just after line 756.
E.g.
destParams[2] = "MyTargetFont^tSemibold";
and so on.
@+
Marc
Marc,
A mon tour de vous prier d'excuser une réponse tardive : le menu n'est pas présent, je ne peux accéder au script que via la palette des scripts...
A vous lire,
Nico
@ Nicolas
> le menu n'est pas présent (…)
Même avec la version 1.7 de RP ?
Marc, je viens d'installer la version 1.7, le menu apparait bien dans la fenêtre "édition" d'InDesign, et lors d'un clic-droit, dans le menu contextuel...
Parfait donc...!
;-)
Grand merci à nouveau,
Nico
Bonjour,
Merci pour votre script… mais lorsque sur mon Macintosh (OSX 10.11.5 Capitan) je veux copier un texte depuis Office 365 vers InDesign CC 2015 (dernières versions des deux logiciels), j'obtiens les messages d'erreur suivants :
— Un script associé a généré l'erreur suivante :
undefined is not an object
Voulez-vous désactiver ce gestionnaire d'événements ?
— Les variantes italiques et/ou gras n’ont pas pu être identifiées.
Que dois-je faire ?
D'avance merci de votre réponse.
Bien cordialement,
Olivier
Merci Olivier pour ce signalement de bug. J'étudie la question et vous contacte par courriel.
@+,
Marc
I had a few issues with bolds and italics being displaced by RichPaste along the text. I could fix it by making sure to select "All information" under ID Preferences->Clipboard handling before pasting.