Today we will embed in IdExtenso the code we prepared in the previous episode. That's of course an important move, especially when you perform it for the very first time (since then you need to install the framework.) But you will discover in what follows the immediate advantages that $$ offers you…
Porting your InDesign Script into IdExtenso — Step 1
September 07, 2021 | Tips | en
So, you have the root idea and a basic code for your next InDesign script. All is fine. It works so well that you're now planning to release it, which opens additional questions: Will it work everywhere? How do I trace risky functions? What if I need to integrate new features later on? How do I deal with persistent user settings? How to add a basic interface? How will I localize the dialog in other languages? Can I make my script available in a dedicated menu? Will it work in a JSXBIN package as well? Can I obfuscate my code?…
Page Range Formatter [UPDATE]
August 17, 2021 | Tips | en
Given an unordered set of page numbers—e.g. {13, 9, 25, 12, 11, 8}—we often have to compute and output a range specification in the form "8-9; 11-13; 25". While this topic has been already discussed in the InDesign scripting forum, I'd like to explore today a slightly different approach…
BookBarcode 2.039 Supports New ISBN Ranges
June 18, 2021 | BookBarcode | en | fr
Still considered the finest barcode builder for book professionals, the script BookBarcode for InDesign is periodically updated to support new ranges defined by the International ISBN Agency. This allows you to control, not only the validity of the EAN-13 code, but also the proper segmentation of your ISBN…
PhysicalSize | New Version (with Russian support)
April 18, 2021 | PhysicalSize | en | fr
PhysicalSize 1.07 is now available with a safer implementation of the menu controller and supporting the Russian locale. It also fixes a possible issue regarding HiDPI. This free script allows you to calibrate one or multiple monitors so you can display your layout in true 1:1 dimensions whenever needed…
Drawing Sine Waves in InDesign [UPDATE]
March 21, 2021 | Snippets | en | fr

Computing Bézier curves that really look like sine waves is an exciting challenge for script developers. One needs to deal with both optimizing control points, transforming coordinate spaces and splitting curves. Here is a function that solves it all in ExtendScript for InDesign…
De la migration typographique des appels de note [MÀJ]
March 20, 2021 | Snippets | fr
Affairé à délester mes répertoires de vieux scripts InDesign antédiluviens, je tombe sur un petit utilitaire qui me semble encore digne d'emploi chez les orthotypographes. Sa mission ? Repositionner les appels de note avant toute ponctuation fermante, comme l'exige la tradition…
ScriptUI vs. UI Scaling
March 08, 2021 | Tips | en
From CC 2014, InDesign and Illustrator interfaces needed to adapt to OS “scale settings” strategy on 4K/Retina displays. And with Windows 10 defaultly scaling at 150% in such resolutions, Adobe engineers were forced to rework their famous HiDPI support, which led to introduce UI Scaling in the Preferences dialog box. So far, so good. But ScriptUI has not been fully “informed” of these new rules…
† Theunis de Jong (1966–2020)
December 05, 2020 | Extras | en | fr
Better known under his nickname “Jongware”, my colleague and friend Theunis de Jong died on November 28 at the age of 54. The InDesign community loses one of its brightest stars, indisputably the most prolific “problem solver” in the scripting realm during the last twenty years. (Tribute)
Understanding the `count( )` Method
November 13, 2020 | Tips | en
InDesign's scripting infrastructure is based on DOM objects (Document, Story, Paragraph…) and any such object has an associated collection (Documents, Stories, Paragraphs…). Collections typically arise in complex specifiers like myDocument.stories.everyItem().words. They also provide two essential members, the length property and the count() method. How do they differ?
The Tricky Side of `string.replace( )` in ExtendScript
September 14, 2020 | Tips | en
When you invoke myString.replace(...) in pure JavaScript, the “string being examined” is and remains myString during the whole operation. ExtendScript offers a slightly different mechanism that may unexpectedly alter the output string…
SmartSort 1.05 | New Design, New Options
August 13, 2020 | SmartSort | en
Many thanks to Peter Kahrel for his valuable suggestions and samples regarding word-by-word and letter-by-letter systems. SmartSort 1.05 is out in a fresh skin with more detailed—and relevant—options. (To upgrade from the beta release, quit InDesign, replace the old SmartSort.jsx file and restart the application.)
GREP et InDesign, deuxième édition
June 26, 2020 | Extras | fr
Bref billet pour aviser nos lecteurs de la nouvelle édition du guide de référence GREP et InDesign de Laurent Tournier. Hébergée par indigrep.com et délivrée au format PDF pour la (trop) modique somme de 10 €, cette nouvelle mouture répond aux requêtes de mise à jour qui n'en finissaient plus de submerger l'auteur. Il faut dire que l'édition inaugurale (publiée à l'époque chez Dunod) datait de… 2009 ! On imagine qu'en onze ans pas mal de nouveautés et de subtilités se sont insinuées dans le moteur d'expressions régulières d'InDesign. Ce nouveau volume, intelligemment retravaillé sur le fond et sur la forme, devrait combler les insatiables du GREP pour la décennie à venir…
Why You Should Never Use `x==null` in ExtendScript
May 13, 2020 | Tips | en
The Japanese scripter あるふぁ found a bug affecting any ExtendScript code based on ...==null. This is not a critical issue (because experienced developers never use such condition!) but the case provides the opportunity to summarize important rules regarding falsey values and the equality operator…
Échantillonnez vos glyphes avec DeliverGlyphs
April 17, 2020 | Extras | fr
Jean loup Fusz vient de mettre en ligne DeliverGlyphs, un script InDesign qui produit instantanément, dans un intervalle donné, le jeu de glyphes de la police courante. Simple, propre, efficace.
« previous entries - Page 4 of 13 - next entries »




