I’m not a legit scripter. These were mostly written with AI assistance, so I can’t vouch for the code—but they work for me. Many are specific to my own workflows, but I thought some other folks might find them useful. (Note: Scripts marked with the K icon are mostly—if not only—useful with a keyboard shortcut applied). Use or modify them however you like—and if they save you some trouble and you want to show your appreciation, you can buy me a beer. If you run into any issues with the scripts (they have only been tested in InDesign 2026), you can reach me at . I also take on freelance typesetting, book interior design, and prepress/production work.


apply chapter color overrides

I work with a designer who likes to use a different color scheme for every chapter in cookbooks, but for myriad reasons, I don't want to make a new set of styles for each chapter. Instead I use a placeholder swatch—e.g. "variable-black"—through a single set of styles, then I use this script to override the colors by page range

This script prompts you to identify the variable swatch, a page range, and the color to be swapped throughout that page range.

Before

select stylesapply-chapter-color-overrides-1.png

After

on-screen window reportapply-chapter-color-overrides-2.png

Added 9/16/2026

apply P style up to closing tag

Most of the Word files I pour into my InDesign documents use tags to indicate where a new style begins (e.g., <H1>) and ends (e.g., </>). Let’s say I have an extract (<EXT>) in my manuscript, this script will prompt you to enter the tag and select the paragraph style that should be applied to those paragraphs.

apply p style up to closing tag 2 screenshotapply-p-style-up-to-closing-tag-2.png

This script applies the paragraph style to all paragraphs between those tags, then removes the tags.

apply p style up to closing tag 1 screenshotapply-p-style-up-to-closing-tag-1.png
apply p style up to closing tag 3 screenshotapply-p-style-up-to-closing-tag-3.png

In this particular example, this doesn’t get you all the way there, but big chunks of text throughout your document are automatically styled and cleanup is much easier. In many cases, however, it is one and done. I recommend temporarily using a unique character color in the paragraph styles you are applying, so they stand out when you're going back through your document.

apply p style up to closing tag 4 screenshotapply-p-style-up-to-closing-tag-4.png

Added 8/9/2026

apply parent by P style

I have been nagging Adobe for years to make this a native paragraph style feature. This script will prompt you to select a parent page and a paragraph style from your document. Any page on which the selected paragraph style appears will get the selected parent page applied to it.

apply parent by p style screenshotapply-parent-by-p-style.png

Revised 9/8/2026 by Alberto Gutiérrez

caption-image alignmentsK

A keyboard shortcut isn’t essential for this script, but it helps. The script will automatically align a caption text frame with an image. Select the image and caption text frame and run the script.
NOTE: both the image and the caption must either be on the same page, or on the same side of the pasteboard.

caption image alignments 2 screenshotcaption-image-alignments-2.png
caption image alignments 3 screenshotcaption-image-alignments-3.png

You will be prompted to select a number (1, 2, 3, 7, 8, or 9). The positioning logic is based on the number pad: 1 = bottom, left. 2 = bottom, center. 3 = bottom, right. 7 = top, left. 8 = top, center. 9 = top, right. The default is 2 because that’s what I use most.

caption image alignments 1 screenshotcaption-image-alignments-1.png

Added 8/9/2026

center text between baselinesK

I generally prefer to align text to the baseline, but sometimes designers use odd spacing in other text elements—a bulleted list in this example—that throws off vertical centering.

To fix, highlight the text that you want to center and run this script.

Before

before: uneven space above and below the listcenter-text-between-baselines-1.png

After

after: equal space above and below the listcenter-text-between-baselines-2.png

Added 9/23/2026

change blank pages to None

This should be pretty self-explanatory. The script will apply the “[None]” parent to any page in the document that doesn’t have any text or art on it. If the blank page has parent items or a page break on it, the script still considers it to be blank.

Revised 8/24/2026

clear C styles from selected P style

When I receive manuscripts, headings are almost always locally formatted as bold in Word. After I apply my character styles in InDesign, these have a bold character style applied. When paragraph styles are applied (I use Multi-Find/Change to apply globally, so “clear character styles” isn’t an option) the bold character style is still applied.

clear c styles from selected p style 1 screenshotclear-c-styles-from-selected-p-style-1.png

In this example, the paragraph style's font style is Light. Place your cursor in any paragraph using that style and run the script — it will remove the character style from every instance of that paragraph style in the document.

clear c styles from selected p style 2 screenshotclear-c-styles-from-selected-p-style-2.png

Added 8/9/2026

clear hand-drawn guides

When I finish a job I like to clean up my file. This script will wipe out all guides you drew as you were working through your file. I also like to clean up my pasteboard with Indiscripts’ CleanupPasteboard script.

Revised 8/24/2026

document navigator

I’m not sure how much I’d actually use this myself, but the idea grabbed me and I had to try it. Seems like it could be useful for someone, though. I don't use InDesign's table of contents function much, so feedback is welcome.

The idea started as: “Wouldn’t it be cool if InDesign had document navigation like a bookmarked PDF?” I figured that could only work in a file that already had an InDesign-generated table of contents. Sure, I could just look at the Bookmarks panel and navigate that way, but if there are a bunch of other non-TOC bookmarks, it could get messy. Anyway, my first attempt turned into something different—but I thought it was neat, so I kept it (see Method B).

When you run the script you get two options: Method A and Method B. If your document has an InDesign-generated table of contents, Method A reads it and lets you pick an entry to jump to page.

document navigator screenshot Adocument-navigator-1.png

Method B (the happy accident) lets you pick a paragraph style, then lists every paragraph using it—truncating long entries so the page number stays visible. Select one and click “Go to Page.”

document navigator screenshot Bdocument-navigator-2.png

Added 9/1/2026

export multiple PDFs by range

This script will export multiple PDFs from a document and give you the option to name each individual PDF. Enter page number/range and file name separated by a pipe with spaces on either side.

export multiple pdfs by range screenshotexport-multiple-pdfs-by-range.png

Added 8/9/2026

export two PDFs at once

My clients often want a high-resolution and low-resolution PDF for every round of proofs.

export two pdfs at once screenshotexport-two-pdfs-at-once.png

Added 8/9/2026

find 4c text

I avoid printing most text in four colors to avoid any registration issues, but that doesn't stop designers from using it anyway. This script will smoke out any four color text existing in your document.

select stylesfind 4c text-1.png
select stylesfind 4c text-2.png
select stylesfind 4c text-3.png

Added 9/23/2026

fonts by style

This script shows you which fonts are used in your styles. You can navigate by font or by style and you can even open each style directly through the interface to edit.

fonts by style windowfonts-by-style-1.png

You can also export the results as four different txt file reports.

export report dialogfonts-by-style-2.png

Selected font

selected font reportfonts-by-style-3.png

Styles by font

styles by font reportfonts-by-style-4.png

Fonts by style

fonts by style reportfonts-by-style-5.png

Style / font list

style / font list reportfonts-by-style-6.png

Revised 9/24/2026 with feedback from KiyTech

generate checklist note

I use the Notes panel constantly during the course of a project so I can go back and check or fix things later on in the process. I’m also big on checklists and have a list of things I always check at the end of a job. I made this script to insert a pre-written checklist at the very beginning of my document—it will insert the note wherever your cursor is.

If you open the .jsx file in a text editor, you can customize your checklist starting on line 32. Every line should end with + "\r" + and the last line in the list should end with a ;

generate checklist note 1 screenshotgenerate-checklist-note-1.png
generate checklist note 2 screenshotgenerate-checklist-note-2.png

Added 8/9/2026

GREP share

This script lets you transfer GREP styles from one paragraph style to another. You will be prompted to select the source style and destination style, then in the menu on the right you can select the GREP style(s) that you want to share.

grep share screenshotgrep-share.png

Revised 8/11/2026

image DPI report generator

This script creates a .txt file report that lists all files in a document that are under 255 effective DPI.

image dpi report generator screenshotimage-dpi-report-generator.png

Added 8/9/2026

package file with two PDFs

Like export two PDFs at once, this script will package a file and let you select two PDF export presets and name each PDF.

package file with two pdfs screenshotpackage-file-with-two-pdfs.png

Added 8/9/2026

panel divider

I made this for prepping graphic novels for accessibility features, but I can see it being useful outside of that. If you want to break up a link into multiple links without changing the appearance of the page, draw frames around each part you want to isolate—I recommend a small bit of overlap.

panel divider 1 screenshotpanel-divider-1.png

Select all drawn frames and the underlying image (per page), and run the script.

panel divider 2 screenshotpanel-divider-2.png

Added 8/9/2026

poetry alignmentK

I like to set blocks of poetry flush left on the longest centered line. For years I did this manually and it was a drag. Now, I just select the block I want to re-align and run the script. If you use this enough, it is definitely worthy of a keyboard shortcut.

poetry alignment 1 screenshotpoetry-alignment-1.png
poetry alignment 2 screenshotpoetry-alignment-2.png

Added 8/9/2026

populate custom alt-text from CSVK

The next step in this graphic novel accessibility process is to apply the alt-text to the divided frames. Select a frame and run the script. You will be prompted to select a CSV file and the cell in which the alt-text lives.

populate custom alt-text from CSV - 1 screenshotpopulate custom alt-text from CSV - 1.png
populate custom alt-text from CSV - 2 screenshotpopulate custom alt-text from CSV - 2.png

Click “OK” and the altext is applied to the selected panel.

populate custom alt-text from CSV - 3 screenshotpopulate custom alt-text from CSV - 3.png

Added 8/9/2026

proof sheet creator

To check photo quality and color on art-heavy books, we run every image—cropped and scaled exactly as it appears in the final book—through a large-format Epson proofer. To conserve paper, we gang as many photos as possible onto a single page.

This used to mean tedious copy-and-paste or drag-and-drop work. Now we just set the document size, click OK . . .

define sizepsc-1.png

. . . and every linked image from the book is automatically placed on the proof sheet.

Before

original documentpsc-2.png

After

proof sheetpsc-3.png

Some manual adjustment—repositioning or rotating a few images—is often needed afterward, but the script does most of the work with a double click.

Added 8/28/2026

renumber endnote references

I don’t use InDesign’s endnotes feature. The only drawback is that, if an endnote is added or removed, the references don’t renumber. This script takes care of that.

spread with typed endnote reference numbersrenumber-endnote-references-1.png

After removing (or adding) an endnote reference number, run the script, select the character style for the reference number and the next instance of paragraph style to renumber up to. (You can also highlight all of the text you want renumbering in).

renumber endnote references dialogrenumber-endnote-references-2.png
references renumbered from 28–35 to 27–34renumber-endnote-references-3.png

Added 9/25/2026

set sink ruleK

I almost always use a “Keep In Frame,” invisible rule to sink items on a page—as opposed to parents of varying margins. This script prompts you for an offset value (in picas)—a rough guess for a starting point (default is 6).

set sink rule 1 screenshotset-sink-rule-1.png

Once you hit “OK,” it creates an invisible rule with the values populated for the proper sink. From there you can create or redefine a paragraph style. For me, it is surprisingly useful.

set sink rule 2 screenshotset-sink-rule-2.png

Revised 8/14/2026

start paragraph . . .K

These six scripts are used to select Start Paragraph options (in Keep Options). A good time-saver if you often need to re-start paragraphs without editing the paragraph style.

start paragraph screenshotstart-paragraph.png

Added 8/12/2026

style sleuth

I was wrapping up a file with an absurd number of styles, organized into an equally absurd number of style groups, sub-groups, and sub-sub-groups. Making things worse, many of the styles inside those groups had been repurposed and renamed from other groups along the way.

For the last bit of housekeeping, I needed to clear out the unused styles. There were a lot of them—but for one reason or another, "Select All Unused" wasn't catching them all. So I built this script to make some sense of what was actually going on with the styles.

Run the script and you're presented with four menus:

Paragraph Styles (Based On) — paragraph styles that are based on others.
Character Styles (Based On) — character styles that are based on others.
Character Styles (Nested/GREP/BN) — character styles associated with a paragraph style.
Object Styles (Based On) — object styles that are based on others.

select stylesstylesleuth-1.png

Check the box next to any style you want to investigate. Checking a group selects everything nested inside it. Click OK, and the script generates a report—both as an on-screen window and as a .txt file.

on-screen window reportstylesleuth-2.png
txt reportstylesleuth-3.png

Added 8/28/2026

text anchor - bookmark by P style

I actually created this one for the InDesign mockup of this web page and thought it could be useful to others. For the hyperlinks, I needed to add a text anchor (and/or bookmark) at the beginning of each red style name, and I wanted those text anchors (and/or bookmarks) to have the same name as the style. Place your cursor in the story, and when you run this script it will prompt you to select a paragraph style.

text anchor bookmark by p style 3 screenshottext-anchor-bookmark-by-p-style-3.png

Hit “OK” and you will be prompted to select Bookmark, Text Anchor, or Both.

text anchor bookmark by p style 4 screenshottext-anchor-bookmark-by-p-style-4.png

Hit “OK” and a text anchor (and/or bookmark) will be added to the beginning of every instance of that paragraph style, and the text anchors (and/or bookmarks) will be named according to the text of that paragraph style.

text anchor bookmark by p style 2 screenshottext-anchor-bookmark-by-p-style-2.png
text anchor bookmark by p style 1 screenshottext-anchor-bookmark-by-p-style-1.png

Added 8/9/2026

toggle align to baseline gridK

This script toggles "Align to baseline grid" on and off. For my workflows it is a nice little time saver. It is only useful a keyboard shortcut.

Added 9/4/2026

toggle no breakK

This script is only useful a keyboard shortcut. Going to the Character panel’s hamburger menu was too time-consuming for me, so I made this script to apply/remove manual No Break from selected text.

Added 8/9/2026

tracking_gain a lineK

A keyboard shortcut is necessary for this, but I use it all the time. If I need to gain a line in a paragraph, this script will apply the smallest amount of tracking needed to do so—stopping at +20. Just highlight the paragraph and run the script.

Added 8/9/2026

tracking_lose a lineK

A keyboard shortcut is necessary for this, but I use it all the time. If I need to lose a line in a paragraph, this script will apply the smallest amount of tracking needed to do so—stopping at –20. Just highlight the paragraph and run the script.

Added 8/9/2026

where the f--k is this style

This one is a companion to style sleuth. After all that sleuthing, I still had a handful of styles I couldn't track down and flush out. The report this script generates shines a bit more light on them.

The interface is similar to style sleuth's, except the menus offer up every paragraph and character style, not just the ones based on others.

select styleswtf-1.png
on-screen window reportwtf-2.png

Added 8/28/2026