InDesign Script Collection

105 free ExtendScript tools for Adobe InDesign, covering text, images, styles, tables, colour, layers, export, preflight, production automation and more. Cross-platform compatible with InDesign CC 2020 through CC 2026.

Enter your details to download all 105 scripts.

Browse Scripts

We respect your privacy. See our privacy policy.

What's Included

A production-ready toolkit organised into 11 categories, built by Mapsoft's InDesign development team.

105 Scripts

Covering text, images, styles, tables, colour, layers, export, preflight, production automation and document management.

Cross-Platform

All scripts work on both Mac and Windows without modification. Platform-agnostic file paths and no OS-specific APIs.

Production Ready

ScriptUI dialogs for configuration, error handling, measurement unit safety, and full undo support via Ctrl/Cmd+Z.

Installation

Copy to Scripts Panel Folder

1

Open InDesign's Scripts panel: Window > Utilities > Scripts

Right-click User and select Reveal in Explorer (Windows) or Reveal in Finder (Mac).

2

Copy the script folders (01-Text-Typography, 02-Images-Graphics, etc.) into the revealed Scripts Panel directory.

3

Scripts appear immediately in the Scripts panel, organised by folder. Double-click any script to run it.

Alternative: Direct Paths

Windows: C:\Users\[username]\AppData\Roaming\Adobe\InDesign\Version [X]\[locale]\Scripts\Scripts Panel\

Mac: ~/Library/Preferences/Adobe InDesign/Version [X]/[locale]/Scripts/Scripts Panel/

Alternative: Run Directly

In the Scripts panel, use File > Scripts > Other Script... to browse to and run any .jsx file directly.

Script Catalogue

Browse all 105 scripts organised by category. Each script includes ScriptUI dialogs for configuration.

Text & Typography

15 scripts

Scripts for text manipulation, formatting, typographic features, and text frame management.

ScriptDescriptionUse Case
ConvertToTitleCase.jsxConverts selected text to Title Case with smart handling of articles and prepositionsFixing headline capitalisation across layouts
RemoveEmptyTextFrames.jsxFinds and removes all empty text frames with scope selectionDocument cleanup after layout changes
TextFrameAutofit.jsxAuto-sizes selected text frames to fit content (height, width, or both)Fitting caption frames and pull quotes to content
BulletListCreator.jsxConverts paragraphs into bulleted lists with configurable bullet character and spacingFormatting lists in newsletters and manuals
BalanceRaggedLines.jsxBalances ragged text to prevent short last lines using tracking adjustmentsImproving typographic quality in body text
FindOversetText.jsxScans for overset text frames, highlights them, and offers navigation to eachPre-press QC to catch hidden text
StripInlineFormatting.jsxRemoves local formatting overrides while preserving applied stylesCleaning up text pasted from Word
TextStatistics.jsxCounts characters, words, lines, paragraphs with reading time estimateEditorial word count checking
InsertSpecialCharacters.jsxFloating palette with buttons for em dash, en dash, non-breaking space, thin space, and moreQuick access to typographic special characters
ConvertStraightToSmartQuotes.jsxConverts straight quotes to typographically correct curly quotes via GREPFixing documents from plain text sources
ParagraphSpacingNormalizer.jsxNormalises space before/after values with optional style filteringStandardising spacing from multiple sources
TextWrapBatchApply.jsxBatch-applies text wrap settings to selected objects or entire pagesAdding text wrap to multiple images at once
FontUsageReport.jsxReports all fonts used: name, style, type, pages, missing statusPre-press font auditing before packaging
DropCapEnhancer.jsxAdds or modifies drop caps with configurable lines, characters, and character styleAdding decorative drop caps to chapter openings
ThreadTextFrames.jsxAutomatically threads selected text frames in reading orderQuickly linking frames for multi-column articles

Images & Graphics

12 scripts

Scripts for managing placed images, graphics, links, and visual assets.

ScriptDescriptionUse Case
RelinkMissingImages.jsxScans for missing/modified links and batch-relinks from a target folderReconnecting images after moving project folders
BatchResizeImages.jsxResizes all placed images by percentage or fitting methodUniform scaling after layout size changes
ImageInfoReport.jsxReports effective PPI, format, colour space, file size, and flags low-res imagesPre-press image quality audit
ConvertAllImagesToCMYK.jsxIdentifies all RGB images and generates a conversion reportFlagging RGB images before going to press
FitAllImagesToFrames.jsxFits images using fill, fit, centre, or content-to-frame methodsBatch-fitting images after placement
CaptionGenerator.jsxAuto-generates captions from image filenames with configurable position and stylePhoto catalogs and proofing sheets
ImageFrameFromSelection.jsxPlaces images from a folder into selected frames sequentiallyFilling photo grids and template layouts
BatchPlaceImages.jsxPlaces multiple images into an auto-generated grid layoutContact sheets, galleries, product catalogues
ReplaceWithHighRes.jsxSwaps FPO images with hi-res versions by matching filenamesProduction workflow low-res to hi-res swap
EmbedAllImages.jsxEmbeds all placed images with file size warningCreating self-contained documents for archiving
ExportAllImagesFromDoc.jsxCopies all linked images to a single output folderCollecting assets for sharing or archiving
ImageScaleChecker.jsxFlags images scaled beyond configurable thresholds with colour-coded framesQC for over-scaled or under-scaled images

Document & Pages

12 scripts

Scripts for page management, guides, document setup, and structural operations.

ScriptDescriptionUse Case
AddBleedMarks.jsxDraws crop marks and bleed indicators on a dedicated locked layerAdding visible bleed marks for proofing
DuplicatePageRange.jsxDuplicates a range of pages with master page preservationCreating repeated sections in catalogues
MasterPageApplicator.jsxBatch-applies master pages to page ranges like "1-5, 8, 12-20"Applying masters after restructuring chapters
PageSizeConverter.jsxConverts page size with presets (Letter, A4, A5, Tabloid) and content handling optionsConverting layouts for international markets
DocumentGridCreator.jsxCreates column guides and baseline grid on all pages or master pagesSetting up consistent grids across pages
PageNumberInserter.jsxAdds automatic page numbers via master pages with configurable position and fontAdding page numbering to documents
RemoveBlankPages.jsxFinds and removes pages with no content beyond master page itemsCleaning up empty pages after revisions
SpreadInspector.jsxReports on spread configurations: page counts, dimensions, island spreadsTroubleshooting gatefold and multi-page spreads
GuidesManager.jsxMulti-tab interface: remove, lock/unlock, recolour, create, and move guidesManaging guides in complex layouts
DocumentCleanup.jsxRemoves empty frames, unused swatches, unnamed colours, empty layers, pasteboard itemsEnd-of-project cleanup before handoff
PageShuffler.jsxMove pages, reverse page order, or sort alphabetically by contentReordering catalogue pages
SlugInfoAdder.jsxAdds filename, date, inks, fonts, and custom text to the slug areaProduction job identification on proofs

Styles Management

10 scripts

Scripts for creating, auditing, mapping, and managing paragraph, character, object, and table styles.

ScriptDescriptionUse Case
StyleUsageReport.jsxReports which styles are used/unused with count per style, option to delete unusedCleaning up accumulated unused styles
BulkStyleRenamer.jsxFind/replace on style names across paragraph, character, and object stylesRebranding style names across templates
StyleOverrideHighlighter.jsxHighlights text with local formatting overrides for QC reviewFinding manual formatting instead of styles
ImportStylesFromDoc.jsxImports styles from another InDesign document with conflict handlingBringing styles from a design system
CreateStyleFromSelection.jsxCreates a new style based on the current selection's formattingCapturing ad-hoc formatting as a reusable style
StyleSheetExporter.jsxExports all style definitions to text file or CSVDocumenting style guides for brand compliance
NestedStyleHelper.jsxCreates and modifies nested styles with character styles and delimitersComplex typographic patterns like run-in headings
GREPStyleManager.jsxView, add, edit, or remove GREP styles attached to paragraph stylesManaging automatic text formatting rules
StyleMappingTool.jsxMaps source styles to target styles and applies the mapping document-wideConverting content between template systems
ObjectStyleBatchApply.jsxApplies object styles to objects filtered by type, layer, or colourBatch-applying frame formatting

Tables

8 scripts

Scripts for creating, formatting, importing/exporting, and manipulating tables.

ScriptDescriptionUse Case
CSVToTable.jsxImports CSV and creates a formatted table with configurable delimiter and stylesImporting data from spreadsheets or databases
TableToCSV.jsxExports selected table to CSV, handling merged cells gracefullyExtracting table data for use in spreadsheets
TableStyler.jsxApplies alternating row colours, header formatting, and border settingsProfessional alternating-row table styling
SortTableRows.jsxSorts rows by column with ascending/descending and numeric/alphabetic optionsAlphabetising directories or sorting price tables
MergeTableCells.jsxMerges cells with identical values in a selected columnCreating grouped tables from flat data
TableResizer.jsxEqualises or proportionally distributes column widths and row heightsNormalising column widths after changes
SplitTableByRows.jsxSplits large tables into smaller ones by row countControlling table breaks across pages
TableHeaderRepeater.jsxSets first row as repeating header, batch-apply to all tablesEnsuring headers repeat on every page

Find & Replace

8 scripts

Advanced find/replace scripts using text, GREP, and style-based operations.

ScriptDescriptionUse Case
MultipleTextReplacements.jsxLoads find/replace pairs from a tab-delimited text file and runs them in batchBulk corrections from a corrections list
CleanupTypography.jsxOne-click fix: double spaces, smart quotes, em dashes, ellipsis, punctuation spacingCleaning up text imported from Word or web
FindReplaceByStyle.jsxFinds text in a specific style and changes it to another styleBulk style changes without modifying text
RegexFindHighlight.jsxHighlights GREP matches with colour without changing textProofreading review of patterns like dates or numbers
PhoneNumberFormatter.jsxFinds phone numbers in various formats and normalises to a chosen formatStandardising phone numbers in directories
URLFinder.jsxFinds URLs and optionally converts to hyperlinks or exports a listURL auditing and hyperlink creation
WhitespaceNormalizer.jsxCleans up multiple spaces, trailing spaces, extra returns, and tab issuesCleaning up whitespace from various sources
FindReplaceAcrossDocuments.jsxRuns find/replace across all open documents or all files in a folderCorrections across an entire book or magazine

Colour & Swatches

8 scripts

Scripts for swatch management, colour conversion, and colour consistency.

ScriptDescriptionUse Case
UnusedSwatchCleaner.jsxIdentifies and removes unused swatches with optional similar-swatch mergeCleaning up accumulated unused colours
SwatchInventory.jsxFull swatch report: name, colour model, values, usage counts, export to fileColour auditing for brand compliance
RGBtoCMYKConverter.jsxFinds RGB swatches and shows CMYK conversion preview with batch supportPreparing documents for print production
SpotColorReporter.jsxLists spot colours with usage locations and option to convert to processPre-press spot colour audit
CreateColorPalette.jsxCreates swatches from manual entry, text file, or colour harmony generationSetting up brand colours from a style guide
SwatchReplacer.jsxReplaces one swatch with another across all fills, strokes, text, and stylesRebranding colour swaps
ColorHarmonizer.jsxFinds near-duplicate colours within a Delta-E threshold and suggests mergingMerging slightly different versions of same colour
TintSwatchGenerator.jsxCreates tint swatches at user-specified percentages from base coloursBuilding tint systems from brand colours

Layers

6 scripts

Scripts for layer management, organisation, and version control.

ScriptDescriptionUse Case
LayerVisibilityToggler.jsxFloating palette with checkboxes for visibility and lock togglingQuick layer toggling during design review
MergeSelectedLayers.jsxMerges multiple source layers into a chosen target layerConsolidating layers after a design phase
LayerCleanup.jsxRemoves empty layers and optionally layers with only hidden itemsCleaning up accumulated empty layers
DuplicateToLayer.jsxDuplicates or moves selected objects to a specified layerMoving elements between layers preserving position
LayerColorCoder.jsxAssigns distinct UI colours to layers for visual organisationColour-coding layers by function
VersionLayerManager.jsxCreates version layers for language variants or design alternativesMultilingual layouts with per-language layers

Export & Output

10 scripts

Scripts for exporting, packaging, and outputting documents in various formats.

ScriptDescriptionUse Case
BatchPDFExport.jsxExports each page as a separate PDF with preset, naming, and progress barIndividual page PDFs for client review
ExportPagesAsJPEG.jsxExports pages as JPEG with configurable quality, resolution, and colour spacePreview images for web or email proofing
ExportSelectionAsSnippet.jsxExports selected objects as InDesign snippet (.idms) filesCreating reusable design elements
PackageAndArchive.jsxPackages document with fonts, links, IDML, and optional ZIP archivePreparing handoffs to printers or clients
EPUBPrepChecker.jsxChecks EPUB readiness: alt text, export order, unsupported featuresPre-EPUB export quality check
PrintReadyChecker.jsxComprehensive print checklist: bleed, resolution, CMYK, fonts, oversetFinal pre-press check before sending to print
ExportTextContent.jsxExports text to plain text or tagged text with style filteringExtracting content for web or translation
SplitDocByPages.jsxSplits multi-page document into individual .indd files per pageBreaking magazines into page files for collaboration
CreateContactSheet.jsxCreates thumbnail grid overview of all pagesVisual overview for pagination planning
BatchExportArticles.jsxExports each defined article as a separate text fileContent management for web publishing

Preflight & QC

8 scripts

Quality control scripts for catching errors before output.

ScriptDescriptionUse Case
OversetTextFinder.jsxFinds overset text frames with navigation, auto-expand, and text shrink optionsCatching hidden text before print
OrphanWidowDetector.jsxDetects typographic orphans and widows with configurable thresholdsTypographic QC for books and magazines
MissingFontChecker.jsxLists missing fonts with page locations and offers font substitutionResolving missing fonts from other designers
LinkStatusChecker.jsxComprehensive link audit: missing, modified, embedded with colour-coded framesPre-output link verification
ConsistencyChecker.jsxChecks tracking, indent, leading, and inset consistency across stylesFinding formatting drift in templates
SpellCheckReport.jsxCollects suspected misspellings with context, exportable to text fileGenerating reports for editors
BleedChecker.jsxVerifies items extend properly into bleed with colour-coded statusPre-press bleed verification
AccessibilityChecker.jsxChecks alt text, reading order, language, tags, and heading structureMeeting Section 508 / WCAG accessibility standards

Production & Automation

8 scripts

Scripts for batch processing, data-driven design, and production workflows.

ScriptDescriptionUse Case
BatchFileProcessor.jsxOpens every .indd in a folder and runs a selected operation (update links, export PDF, preflight, package)End-of-project batch processing
DataMergeHelper.jsxEnhanced data merge from CSV with placeholder tags, creating a page per recordVariable data printing and personalised materials
BusinessCardGenerator.jsxCreates business cards from CSV data using a template page with photo supportProducing card sets from a contact spreadsheet
BookletImposition.jsxRearranges pages for saddle-stitch booklet printing with creep adjustmentSelf-printed booklets, zines, and small publications
WatermarkAdder.jsxAdds text or image watermarks on a locked layer with full appearance controlAdding DRAFT or CONFIDENTIAL watermarks for review
DocumentTemplateBuilder.jsxCreates documents with layers, masters, page numbering, and common stylesStandardised document creation with full infrastructure
QRCodePageLabeler.jsxAdds QR codes with page metadata to each page on a dedicated layerProofing workflow with digital-physical linking
FootnoteEndnoteConverter.jsxBidirectional conversion between footnotes and endnotesSwitching footnote/endnote styles for publication requirements

Common Workflows

Combine scripts for end-to-end production workflows.

Print Preparation

  1. Run DocumentCleanup.jsx to remove stray frames, unused swatches, empty layers
  2. Run RGBtoCMYKConverter.jsx to convert colours for print
  3. Run ImageInfoReport.jsx to audit image resolution
  4. Run FontUsageReport.jsx to check fonts
  5. Run OversetTextFinder.jsx to catch hidden text
  6. Run BleedChecker.jsx to verify bleed
  7. Run PrintReadyChecker.jsx for final pre-press check
  8. Run BatchPDFExport.jsx for final output

Text Cleanup

  1. Run CleanupTypography.jsx to fix quotes, dashes, and spacing
  2. Run WhitespaceNormalizer.jsx to clean up whitespace
  3. Run StripInlineFormatting.jsx to remove local overrides
  4. Run StyleOverrideHighlighter.jsx to verify style consistency
  5. Run SpellCheckReport.jsx for editorial review

Digital Publishing

  1. Run AccessibilityChecker.jsx to audit alt text and reading order
  2. Run URLFinder.jsx to create hyperlinks from URLs
  3. Run EPUBPrepChecker.jsx to validate EPUB readiness
  4. Run ExportTextContent.jsx for web content extraction

Style & Colour Cleanup

  1. Run StyleUsageReport.jsx to find unused styles
  2. Run UnusedSwatchCleaner.jsx to remove unused colours
  3. Run ColorHarmonizer.jsx to merge near-duplicate colours
  4. Run ConsistencyChecker.jsx to find formatting drift

Compatibility

Tested and supported across modern InDesign versions on Mac and Windows.

CC 2020Full support
CC 2021Full support
CC 2022Full support
CC 2023Full support
CC 2024Full support
CC 2025Full support
CC 2026Full support

Platform: macOS 10.15+ / Windows 10/11

Technical Notes

  • Scripts use ExtendScript (.jsx), Adobe's JavaScript implementation for Creative Cloud applications.
  • All scripts are wrapped in IIFEs (function() { ... })() to avoid polluting the global scope.
  • Document-modifying scripts are wrapped in app.doScript() with UndoModes.ENTIRE_SCRIPT for single-step undo.
  • Measurement units are saved and restored to avoid altering user preferences.
  • File I/O operations use File and Folder objects from ExtendScript's cross-platform API.
  • User interfaces are built with ScriptUI dialogs for consistent cross-platform appearance.

Download the Collection

Get all 105 InDesign scripts in a single download. Free to use, modify, and distribute.

Get Adobe Creative Cloud →