InDesign scripts

All InDesign scripts on this site are compatible with InDesign versions CS3 up to the latest version of CC.

Intro
General information and disclaimers. Installing, running, and modifying scripts. Contact information.

Links and resources
A collection of links and resources on scripting and GREP which I have found useful, informative, and otherwise noteworthy.

Batch-convert/export files
Export documents by the folder to PDF, IDML, (INX), JPEG, PNG, RTF, or package them or convert large numbers of InDesign, PageMaker, or QuarkXPress documents to your version of InDesign.

Font substitution: replace fonts
A script to automate font substitution.

Fine-tune paragraph spacing
Six scripts, ideally triggered by keyboard shortcuts, to increase or decrease the selected paragraph's spacing by 1 point.

Notes: endnotes, end-of-book notes, pop-up endnotes, running-header references; margin notes; inline notes
Various scripts to deal with different types of note in InDesign documents: convert footnotes to endnotes (pre- and post-CC2018) or margin notes; convert footnotes to end-of-book notes; convert footnotes to column-spanning footnotes; set footnotes in columns; convert static endnotes (e.g. pre-CC2018 endnotes imported with an MS Word file) to dynamic endnotes; add hyperlinks to footnotes for PDF navigation. Also a script to deal with inline notes (or notes set in another note's breakline). A script to render endnotes as pop-up footnotes in PDFs ens Epubs. A script to add page-references to endnote numbers in running headers. CC2018: convert footnotes to endnotes and vice versa. CC2019: set table footnotes under the table. And two scripts to handle blind notes.

Page set-up
To define the text area of a page in InDesign, you set the four margins (top, bottom, inside, outside). However, most publishers provide the top and inside margins and the width and the height of the text area so that to set up a page, you have to translate those parameters to what InDesign can handle (four margins).

Styling text variables
Text variables strip styling (italic, bold) and automatic paragraph numbering. This page describes a workaround.

Book-panel extras
InDesign's book panel lacks a few useful features. The script provides them.

Synchronise footnote options
Footnote options are not part of book synchronisation. The script lets you synchrose the options.

Spread rotation
Spreads can be rotated using some deeply embedded menu commands. A script can make these commands much more accessible.

Rotate many spreads
If you have many spreads to rotate, even the more easily accessible menu commands for rotating spreads are no good at all. Time for a script to rotate all spreads that contain rotated text frames.

Beginning ScriptUI (or, ScriptUI for dummies)
An introduction to ScriptUI, Adobe's dialog model for CS and CC applications. This is a PDF with some explanation of the basics of the model.

Drop digits (number-span elision)
Drop digits in number ranges (a.k.a. number-span elision; condensing inclusive numbers).

Show a document's fonts
From CC 2014, InDesign's 'Find Font' dialog no longer shows the type and status of a document's fonts. The script fixes that.

Adjust prices
This script is a combination of Olav Kvern's "PriceUpdateByString" script and Steve Wareham's "number_adjuster" (and adds some functionality).

Go to a page in any book document
Using InDesign's Go to Page tool you can go to another page in the active document. However, to go to a page in another document in an active Book file, you first have to activate or open that document, then go to the page. The script, which can be deployed as a replacement of InDesign's tool, fixes that.

Go to the master spread applied to the active page
To access the master spread applied to the active page, you have to open the Pages panel, find out which master was applied, then look up the master in the Pages panel, and, finally, double-click the master. The script jumps straight to the master spread applied to the active spread. No need for the Pages panel.

Language-aware paragraph sorting
Sort paragraph (or lines) according to the sort rules of the document's language. Formatting remains intact. (For a simpler sorter, see here.)

Language-aware paragraph sort – light
The script sorts paragraphs according to the rules of the document's default language. It cannot deal with formatted lists: but this one, which is also more configurable, can.

Move paragraphs in a list
Two scripts to move one or more selected paragraphs in a list. One script for moving them up, the other, for moving them down.

Various GREP utilities
Several scripts here. – Show the scope of each GREP wildcard and character class (InDesign has more than 50 now) – InDesign's menu for inserting various GREP items (classes, modifiers, match constructs, etc.) is hopelessly incomplete; a script remedies that – The Find/Change dialog is a very tight place: a simple GREP editor makes life easier – Manage GREP queries with more ease than the Find/Change dialog allows: display an overview of your GREP queries; chain queries; copy expressions to GREP styles; execute queries and collect the found results in a new document, optionally with page numbers – Print an overview of all GREP queries in the user folder – Print an overview of all GREP styles used in a document.

Indexes and concordances
Create concordance (index of a word in its contexts); create indexes without using InDesign's index feature; add topics and page references from character styles, conditions, or using a word list; display index statistics; convert page references to text; rebuild index for text markers.

Enter/create accented characters
Enter accented characters using easy-to-remember keystrokes; combine letters and accents; enter characters by their Unicode value. Script now handles some accents below in any font.

Enter/create Classical Greek characters
Enter Classical (polytonic) Greek characters using easy-to-remember keystrokes.

Kerning
InDesign doesn't let you modify kerning tables, but with a script you can apply your own kerning tables.

Create kerning report
If you have a document with lots of manually kerned pairs, you can use this script to create kerning tables that can be used by the kern script, above.

Show menu actions
The script displays a list of menu actions, which can be filtered and sorted for ease of reference.

Manage text anchors
It's not possible in InDesign to get an overview of what a document's text anchors (a.k.a. Hyperlink Text Destinations) are used for. The script does give you such an overview and lets you delete any unused anchors, and adds some more functionality.

Place multiple Word documents in one InDesign document
Place any combination of selected doc, docx, and rtf files in one InDesign document.

Manage missing glyphs
InDesign shows missing glyphs as pink boxes. The script can be used to list all missing glyphs in a document and to apply a font to them.

Catalogue of InDesign's icons
Create your own catalogue of the icons used throughout InDesign's interface.

Title case
InDesign applies title case indiscriminately. The script lets you define words that should be ignored. In addition, the script can often be used without selecting text: it recognises the state of the cursor: whether it's placed in italic text or surrounded by quotation marks.

Exchange thousands separators and decimal indicators (dots/commas) in numbers
Change English-style thousands separators and decimal separators to non-English style and vice versa.

Go to line
InDesign has a Go to Page jumper, but you can't jump to a certain line on a page. The script fixes that: select the nth line on a page counted from the top or the bottom of a page or n lines down/up from the cursor position.

Export a book or document to PDF and remember the export name, path, and preset
InDesign's PDF export doesn't remember which name, path, and preset you used for a book or a document. It also insists on exporting to interactive PDF. The script fixes that by storing these data in document and book labels.

Export book documents individually
"Export book to PDF" in the book panel's flyout always creates a single PDF file. The script exports all documents in a book to separate PDFs. You can opt to export documents whole, by alternate layout, page by page, or section by section.

Hyphenation/word division
Some utilities to deal with hyphenation: collect all hyphenated words and place them in a new document; batch-correct hyphenation errors; show how InDesign breaks selected words.

Remove spurious white space
The script removes leading, trailing, and duplicate white space. Optionally change all caps to sentence case.

Shortcut for applying semibold
You can define shortcuts for applying italics, bold, and other font styles, but not for semibold. This is easily remedied by a script. Set a shortcut to the script and use semibold when the current font family has semibold; if it doesn't, bold is applied.

Unembed embedded images
Pasted images (images without a link in the Links panel) and embedded images make bloated documents. The script unembeds embedded images and saves pasted images to disk, creating links in the process.

Add vertical rules to selected paragraphs
You can define horizontal rules (one before, one after) in InDesign's paragraphs, but not vertical rules. The script fixes that.

Highlighting word- and letter-spacing overrides
The scripts highlights paragraphs with overridden word and/or letter spacing.

Highlight No Break
Like word and letter spacing, the No Break attribute is not easily visible. The script highlights all text to which No Break has been applied.

Script launcher
The easy way to run a script: a script launcher with a configurable history list. Much more convenient than InDesign's script palette. It's the script I use most often, naturally -- couldn't live without it.

Show/set text variables
Display the names and values of custom text variables in a document; change them easily and create new variables conveniently. New version for CC, works in CS6 and earlier too.

Sort tables
Sort a table on up to three columns. Formatting can be preserved.

Merge tables
Merge all selected tables.

Quickmark
Leave a bookmark at the cursor position, go somewhere else in your document, and fly back to your bookmark later.


You can contact me .