Illustrator Script Collection
100 free ExtendScript tools for Adobe Illustrator, covering text, paths, colour, layers, export, effects, cleanup and more. Cross-platform compatible with Illustrator CS6 through CC 2025.
What's Included
A production-ready toolkit organised into 10 categories, built by Mapsoft's Illustrator development team. Need something beyond the free scripts?
100 Scripts
Covering text, paths, colour, layers, selection, export, document setup, effects, cleanup and utility operations.
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 for edge cases, and full undo support via Ctrl/Cmd+Z.
Installation
Copy to Scripts Folder
Locate your Illustrator Scripts folder:
Windows: C:\Program Files\Adobe\Adobe Illustrator [version]\Presets\en_US\Scripts\
Mac: /Applications/Adobe Illustrator [version]/Presets/en_US/Scripts/
Copy the script folders (Text, Path, Color, etc.) into the Scripts directory.
Restart Illustrator. Scripts will appear under File > Scripts.
Alternative: Run Directly
Go to File > Scripts > Other Script... (Ctrl/Cmd+F12), navigate to the .jsx file and click Open. The script runs immediately.
Tip: Keyboard Shortcuts
For frequently used scripts, assign keyboard shortcuts via Edit > Keyboard Shortcuts > Menu Commands > File > Scripts.
Script Catalogue
Browse all 100 scripts organised by category. Each script includes ScriptUI dialogs for configuration.
Text & Typography
15 scripts
Scripts for manipulating text frames, fonts, and typographic properties.
| Script | Description | Use Case |
|---|---|---|
ConvertPointToAreaText.jsx | Converts point text to area text with auto-sized bounds | Reformatting legacy text for responsive layouts |
FindReplaceInSelection.jsx | Find and replace text within selected frames only | Targeted text edits without affecting entire document |
SetTextSizeByDialog.jsx | Set font size with absolute, relative (+5), or percentage (150%) modes | Quick bulk font size adjustments |
ListAllFontsUsed.jsx | Lists all fonts with usage counts, exportable to file | Pre-flight font auditing before handoff |
ChangeTextCase.jsx | UPPER, lower, Title, Sentence, or tOGGLE case conversion | Fixing text case without retyping |
SplitTextFrameByLines.jsx | Splits multi-line text into individual text frames per line | Animating or individually positioning text lines |
JoinTextFrames.jsx | Merges multiple text frames into one with sort options | Consolidating scattered text into a single frame |
TextFrameAutofit.jsx | Auto-resizes area text frames to fit their content | Eliminating overflow or excess empty space |
OutlineTextPerFrame.jsx | Converts text to outlines keeping each frame as a separate group | Clean text-to-path conversion preserving organisation |
AddTextPrefix.jsx | Adds prefix/suffix or auto-numbering to text frames | Batch numbering, bullet points, wrapping text |
AlignTextFramesToBaseline.jsx | Aligns text frames by their visual baseline | Precise text alignment across different font sizes |
TextStatistics.jsx | Character, word, line, paragraph counts with type breakdown | Content auditing and copywriting metrics |
ReplaceFont.jsx | Replace one font with another throughout the document | Font substitution for brand updates |
SetLineSpacing.jsx | Set leading with absolute, auto, or relative-to-font modes | Uniform line spacing across text frames |
ExtractTextToFile.jsx | Exports all document text to a file, organised by layer | Content extraction for translation or review |
HighlightOverflowText.jsx | Finds overflowing area text and marks them with red outlines | Catching hidden overflow text before print |
Path & Shape
15 scripts
Scripts for path manipulation, shape creation, and geometric transformations.
| Script | Description | Use Case |
|---|---|---|
CloseOpenPaths.jsx | Closes open paths with straight or smooth curve options | Preparing paths for fill, print, or CNC cutting |
RemoveRedundantPoints.jsx | Removes anchor points that don't affect the path shape | Simplifying paths imported from tracing or CAD |
SplitPathAtAnchors.jsx | Splits paths into individual segments at each anchor | Breaking complex paths for individual editing |
RoundCorners.jsx | Adds rounded corners to any angular path | Creating rounded rectangles from any polygon |
MirrorPath.jsx | Creates mirrored copies across horizontal/vertical axis | Symmetrical design creation |
OffsetPathSimple.jsx | Creates offset copies at specified distances | Making concentric shapes, border effects |
RandomizeAnchors.jsx | Randomly displaces anchor points for organic effects | Creating hand-drawn, natural-looking shapes |
AddPointsToPath.jsx | Subdivides path segments with bezier-accurate interpolation | Adding detail to smooth curves |
PathLengthInfo.jsx | Calculates path length in points, inches, and millimetres | Measuring paths for cutting, engraving, or pricing |
CreateGrid.jsx | Creates customisable grids with gutters and margins | Layout grids, game boards, technical drawings |
ConvertStrokeToFill.jsx | Outlines strokes using Illustrator's built-in command | Preparing strokes for print or laser cutting |
DuplicateAlongPath.jsx | Places copies of an object at equal intervals along a path | Pattern creation, decorative borders, animations |
ResizeToExactDimensions.jsx | Resize to exact width/height in pt, in, mm, or px | Precise sizing for production specifications |
CreateSpiralPath.jsx | Creates Archimedean or logarithmic spirals | Decorative elements, generative design |
CreateWavyLine.jsx | Creates sine, triangle, or square wave patterns | Decorative borders, sound wave graphics |
FlattenTransparency.jsx | Flattens transparency for print-ready output | Print preparation for older RIP workflows |
Colour Management
11 scripts
Scripts for colour conversion, swatch management, and colour manipulation.
| Script | Description | Use Case |
|---|---|---|
ConvertRGBtoCMYK.jsx | Converts RGB colours to CMYK equivalents | Preparing screen designs for print |
ConvertCMYKtoRGB.jsx | Converts CMYK colours to RGB equivalents | Adapting print files for digital use |
ConvertToGrayscale.jsx | Perceptual luminance-based grayscale conversion | Creating grayscale versions, accessibility testing |
SwapFillAndStroke.jsx | Swaps fill and stroke colours on selected objects | Quick appearance toggling |
RandomizeFillColors.jsx | Applies random colours with HSB range constraints | Pattern design, data visualisation, generative art |
CreateColorHarmony.jsx | Generates complementary, triadic, analogous palettes | Colour palette generation from a base colour |
AdjustBrightness.jsx | Lightens or darkens colours by percentage | Creating hover states, tint variations |
ColorReport.jsx | Lists all colours with values, types, and usage counts | Colour auditing, brand compliance checking |
RemoveUnusedSwatches.jsx | Removes swatches not used by any object | Cleaning up swatch panel clutter |
ApplyColorFromSwatch.jsx | Applies a swatch to selected objects with searchable list | Quick colour application from the palette |
SetOpacityByDialog.jsx | Set opacity with absolute, relative, or random modes | Batch opacity adjustments for layered effects |
Layer Management
10 scripts
Scripts for organising, merging, and managing layers.
| Script | Description | Use Case |
|---|---|---|
MergeSelectedLayers.jsx | Merges multiple layers into one via a dialog | Consolidating layers before handoff |
DeleteEmptyLayers.jsx | Removes all empty layers and sublayers | Cleaning up layer panel clutter |
DuplicateToAllArtboards.jsx | Copies objects to same position on all artboards | Placing headers, logos, page numbers across artboards |
LockAllExceptActive.jsx | Locks all layers except the active one | Isolating work on a single layer |
UnlockAllLayers.jsx | Unlocks all layers and optionally all objects | Quick access to all elements for editing |
RenameLayersByContent.jsx | Auto-names layers based on their content | Organising unnamed "Layer 1, 2, 3..." layers |
MoveSelectionToNewLayer.jsx | Moves selection to a new named layer | Organising objects into proper layers |
ToggleLayerVisibility.jsx | Show all, hide all, solo, toggle, or invert visibility | Quick layer visibility management |
FlattenAllLayers.jsx | Merges all layers into one | Pre-export simplification |
CreateLayerFromSelection.jsx | Creates one layer per object or one for all selected | Auto-organising objects into layers |
Selection Utilities
10 scripts
Scripts for advanced selection filtering and management.
| Script | Description | Use Case |
|---|---|---|
SelectByFillColor.jsx | Selects all objects matching a reference fill colour | Batch editing same-coloured elements |
SelectByStrokeWeight.jsx | Selects objects with a specific stroke weight | Finding and modifying strokes of a certain weight |
SelectBySize.jsx | Selects objects by width, height, or area thresholds | Finding objects that don't meet size requirements |
SelectByObjectType.jsx | Selects all objects of a chosen type (path, text, etc.) | Batch operations on specific object types |
SelectSameAppearance.jsx | Selects objects matching fill, stroke, and weight | Finding visually identical elements |
InvertSelection.jsx | Inverts current selection | Selecting "everything except these" |
SelectOnActiveArtboard.jsx | Selects objects within the active artboard bounds | Artboard-specific batch operations |
SelectOpenPaths.jsx | Selects all unclosed paths in the document | Pre-flight check for paths needing closure |
SelectSmallObjects.jsx | Finds objects below a size threshold, offers delete | Removing tiny artefacts and debris |
SelectStrayPoints.jsx | Finds single-point paths, offers delete | Cleaning up invisible stray anchor points |
Export & Batch Processing
9 scripts
Scripts for exporting to various formats and batch operations.
| Script | Description | Use Case |
|---|---|---|
ExportArtboardsAsPNG.jsx | Exports each artboard as PNG with resolution and @2x/@3x | Multi-resolution asset generation |
ExportArtboardsAsSVG.jsx | Exports artboards as SVG with font and precision options | Web icon and asset export |
ExportArtboardsAsPDF.jsx | Exports as separate PDFs or single multi-page PDF | Print-ready PDF generation |
BatchExportOpenDocs.jsx | Exports all open documents to PNG, JPG, SVG, or PDF | Processing multiple files at once |
ExportSelectionAsPNG.jsx | Exports only selected objects as a cropped PNG | Quick asset extraction from a larger composition |
ExportLayersAsFiles.jsx | Exports each layer as a separate file | Layer-based asset pipelines |
ExportForWeb.jsx | One-click web export: PNG @1x/@2x/@3x + SVG in subfolders | Complete web asset package generation |
SaveAsEPS.jsx | Save as EPS with version and preview configuration | Legacy format compatibility for print |
ExportColorSwatches.jsx | Exports swatches as CSV, JSON, CSS variables, or plain text | Colour handoff to developers or documentation |
Document Setup
8 scripts
Scripts for artboard management, guides, and document configuration.
| Script | Description | Use Case |
|---|---|---|
CreateArtboardsFromSelection.jsx | Creates artboards sized to each selected object | Auto-generating artboards around existing art |
FitArtboardToArt.jsx | Resizes artboard to fit artwork with optional padding | Trimming artboards to content |
DocumentInfo.jsx | Comprehensive doc info: dimensions, counts, fonts, links | Pre-flight documentation and auditing |
AddGuidesFromSelection.jsx | Creates guides at selection edges and/or centres | Alignment reference from existing elements |
RenameArtboards.jsx | Batch rename artboards with patterns or custom lists | Organising artboards for export naming |
ResizeArtboard.jsx | Resize to exact dimensions or standard presets | Quick artboard resizing (A4, Letter, web sizes) |
AddBleedMarks.jsx | Adds crop, bleed, and centre marks for print | Manual print mark generation |
SetupColumnGrid.jsx | Creates column grid as guides or coloured rectangles | Layout design with Bootstrap-style grids |
Effects & Appearance
8 scripts
Scripts for visual effects and creative transformations.
| Script | Description | Use Case |
|---|---|---|
CreateDropShadow.jsx | Adds configurable drop shadow via duplicated offset shape | Quick shadow effects without live effects |
CreateLongShadow.jsx | Creates trendy flat-design long shadow effect | Material design, flat illustration shadows |
GradientFillAcrossObjects.jsx | Applies colour gradient across multiple objects | Colour transitions in infographics, charts |
CreateDottedLine.jsx | Places circles/squares/diamonds along a path | Decorative borders, stitching effects |
CreateOutlineEffect.jsx | Concentric outlines with fading opacity for glow/halo | Neon glow, highlight effects |
RandomDistribute.jsx | Randomly positions objects with optional rotation/scale | Scattered layouts, confetti, natural patterns |
Cleanup & Optimisation
10 scripts
Scripts for document cleanup, optimisation, and maintenance.
| Script | Description | Use Case |
|---|---|---|
RemoveHiddenObjects.jsx | Finds and removes all hidden objects | Reducing file size, removing legacy hidden art |
RemoveUnusedSymbols.jsx | Removes symbol definitions not placed in the document | Cleaning up Symbols panel |
RemoveEmptyGroups.jsx | Recursively removes empty group containers | Structural cleanup after editing |
RemoveAllGuides.jsx | Removes all guide objects and ruler guides | Fresh start on guide placement |
UngroupAll.jsx | Recursively ungroups all groups in selection or document | Flattening structure for export or editing |
CleanupDocument.jsx | All-in-one: stray points, empty groups, hidden items, and more | Comprehensive pre-delivery cleanup |
ReplaceLinkedWithEmbedded.jsx | Embeds all linked images into the document | Packaging files without missing links |
ResetTransformations.jsx | Resets position transformations on selected objects | Starting fresh on object positioning |
FindReplaceObjectNames.jsx | Find/replace text in object names (Layers panel) | Bulk renaming for SVG export IDs |
ReducePathPoints.jsx | Simplifies paths by reducing anchor point count | Optimising complex traced or imported paths |
Utility
2 scripts
General-purpose productivity scripts.
| Script | Description | Use Case |
|---|---|---|
BatchRenameObjects.jsx | Sequential renaming with prefix, numbering, and sorting | SVG element ID naming, organised layer names |
DistributeSpacingEvenly.jsx | Equal gaps between objects (not equal centre spacing) | Precise layout spacing that accounts for object sizes |
Common Workflows
Combine scripts for end-to-end production workflows.
Print Preparation
- Run
CleanupDocument.jsxto remove stray points, empty groups, hidden objects - Run
ConvertRGBtoCMYK.jsxto convert colours for print - Run
ReplaceLinkedWithEmbedded.jsxto embed all images - Run
ListAllFontsUsed.jsxto audit fonts - Run
HighlightOverflowText.jsxto catch overflow text - Run
AddBleedMarks.jsxfor crop marks - Run
ExportArtboardsAsPDF.jsxfor final output
Web Asset Generation
- Run
ExportForWeb.jsxfor automatic PNG @1x/@2x/@3x + SVG export - Run
ExportColorSwatches.jsxwith CSS output for developer handoff - Run
BatchRenameObjects.jsxto set meaningful SVG element IDs
Brand Guidelines
- Run
ColorReport.jsxto audit all colours used - Run
CreateColorHarmony.jsxto generate palette variations - Run
ExportColorSwatches.jsxin JSON format for digital style guides - Run
ListAllFontsUsed.jsxto document typography
File Cleanup
- Run
SelectStrayPoints.jsxand delete - Run
RemoveEmptyGroups.jsx - Run
RemoveHiddenObjects.jsx - Run
RemoveUnusedSwatches.jsx - Run
RemoveUnusedSymbols.jsx - Run
DeleteEmptyLayers.jsx
Compatibility
Tested and supported across all modern Illustrator versions on Mac and Windows.
Platform: Mac OS X 10.12+ / Windows 10/11
Technical Notes
- Scripts use ExtendScript (.jsx), Adobe's JavaScript implementation for Creative Suite/Cloud applications.
- All scripts are wrapped in IIFEs
(function() { ... })()to avoid polluting the global scope. - Colour conversions use standard mathematical formulas (ITU-R BT.709 for luminance).
- Path calculations use cubic Bezier interpolation for accurate curve measurements.
- File I/O operations use
FileandFolderobjects from ExtendScript's cross-platform API.
Production Work the Free Scripts Can't Finish?
These 100 scripts handle the everyday artwork tasks. When you need die-line generators, variable-artwork pipelines, SKU-driven packaging, or production systems that run headless — that's what Mapsoft's Illustrator team builds.
Custom Illustrator Development
We've been writing Illustrator automation for packaging, signage, technical illustration, and print-production studios for decades. Typical projects:
- Die-line and packaging artwork generation from CSV, JSON, or ERP data
- Variable artwork and SKU-level variant production at scale
- SVG and PDF export pipelines for web catalogues and online stores
- Technical illustration tooling — callouts, exploded views, regulatory labels
- Print-production scripts for imposition, trap, spot-colour, and pre-flight
Which Illustrator task do you wish was automated?
We refresh this collection regularly. Tell us either a new feature you'd love to see or an existing script that let you down — we'll consider it for the next release, or quote you for a bespoke version.
Prefer email? Write to support@mapsoft.com with the script name and what you'd like improved.
Download the Collection
Get all 100 Illustrator scripts in a single download. Free to use, modify, and distribute.