Indiscripts

Porting your InDesign Script into IdExtenso — Step 5

In this episode we seriously improve the relationship between user settings and user interface. As a result, we get a smart InDesign script that both remembers the choices the user made within the session and adapts to the context, that is, whether the script should target the selection or a larger scope…

Continue reading...

Coordinate Spaces & Transformations in InDesign [UPDATE]

Coordinate Spaces & Transformations is a free eBook covering all atomic subjects that a InDesign scripter or developer should grab before using transformation matrices and the related methods. The last update has minor corrections and notes…

Download version 3.2 (PDF, 41 pages)

Continue reading...

Porting your InDesign Script into IdExtenso — Step 4

The previous episode dealt with modularity in IdExtenso, now is the time to take full advantage of it! Today we will see how to add a dialog interacting with user options. You will be amazed at how quickly this component fits into the script…

Continue reading...

PageBorder | Show your Clients the Limits! [UPDATE]

PageBorder UI (script for InDesign CC/CS6/CS5/CS4).

Continue reading...

Porting your InDesign Script into IdExtenso — Step 3

In this episode, you will learn how to arrange your code so that it fits into IdExtenso's “modular space.” Modularity is a key term when it comes to maintaining a large-scale project. Even if our sample script is not in itself of pharaonic complexity, we will transform it, as an exercise, into a pure module…

Continue reading...

Finally, a Clean “OpenType Features” Dialog in InDesign!

OpenType Features, version 1, by Roland Dreger

Continue reading...

Porting your InDesign Script into IdExtenso — Step 2

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…

Continue reading...

Porting your InDesign Script into IdExtenso — Step 1

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?…

Continue reading...

Page Range Formatter [UPDATE]

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…

Continue reading...

BookBarcode 2.039 Supports New ISBN Ranges

BookBarcode, the best EAN-13/ISBN barcode manager for InDesign 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…

Continue reading...

Introducing SmartSort for InDesign [UPDATE]

SmartSort, a new script menu action for InDesign CS4/CS5/CS6/CC

Continue reading...

The Cell Tint Enigma

How do Tint objects operate at the Cell level?

Continue reading...

PhysicalSize | New Version (with Russian support)

PhysicalSize 1.07, script for InDesign CC/CS6/CS5/CS4PhysicalSize 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…

Continue reading...

Drawing Sine Waves in InDesign [UPDATE]

Bézier curve approximation of sine waves

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…

Continue reading...

De la migration typographique des appels de note [MÀJ]

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…

Continue reading...

ScriptUI vs. UI Scaling

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…

Continue reading...

IndyFont | A Journey in the Cistercian System

Dealing with Cistercian numerals with IndyFont Pro

Continue reading...

† Theunis de Jong (1966–2020)

Tribute to Theunis de JongBetter 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

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?

Continue reading...

The Tricky Side of `string.replace( )` in ExtendScript

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…

Continue reading...

- Page 1 of 11