Adobe Tech Blog

News, updates, and thoughts related to Adobe, developers, and technology.

Follow publication

InDesign Scripting, IDJS

InDesign v. 18 Ships with Scripting Powered by UXP

InDesign v. 18.0 and InDesign Server v. 18.0 are currently available from the Creative Cloud desktop app v. 5.9

Vidya Nachiyar
Adobe Tech Blog
Published in
3 min readOct 24, 2022

--

My name is Vidya Nachiyar and I’m an Engineering Manager who’s been at Adobe for more than a year now.

This article is for developers who want to use modern JavaScript (ECMAScript 6) to automate small tasks or customize InDesign to match their work habits and layouts or achieving creative effects that would be difficult or impossible to achieve by other means.

Announcing UXP Powered Scripting in InDesign

The Unified Extensibility Platform (UXP) is a powerful way to achieve extensibility. InDesign now supports modern JavaScript with the power of UXP Scripting.

All the InDesign DOM elements are available in InDesign v. 18.0, with few exceptions which are planned to roll out in upcoming releases.

Along with InDesign DOM elements, developers can also enjoy the usage of APIs provided by UXP, such as File Access​, Network Access​, and Spectrum-based UI components.

Please note, UXP Scripting is an additional scripting feature in InDesign, which means existing JavaScript (ExtendScript), AppleScript, VBScript will continue to work as-is.

Also note that UXP panels or plugins are not yet supported and will be available in upcoming releases. InDesign 18.0 and InDesign Sever 18.0 have only added UXP Scripting capabilities.

Why UXP?

UXP (Unified Extensibility Platform) is the modern way to create scripts and plugins for Adobe Creative Cloud products (UXP currently available in Photoshop and Adobe XD).

UXP provides a comprehensive extensibility solution, turning modern JavaScript (ECMAScript 6) and HTML markup into controls in native application windows. UXP scripts run within the same process as the host application, with their UI in its own non-blocking thread.

UXP scripts communicate natively with the host application; unlike ExtendScript, UXP has no boundary that requires passing strings back and forth.

How to get started using UXP

UXP scripts should be written in JavaScript, and the file should be saved as <filename>.idjs. Saving the script as .idjs enables the UXP engine in InDesign and executes the script as UXP script. ( .jsx will execute as normal ExtendScript)

You can install and run UXP scripts the same way you run other scripts; from Scripts Panel (choose Window > Utilities > Scripts).

Sample UXP scripts are already packaged in InDesign Scripts Panel in InDesign 18.0:

Screencap of Scropts window in InDesign

How to debug UXP script

UXP Scripts can be debugged using UXP Developer Tool (version 1.7 and up) which can be downloaded from the Creative Cloud desktop app (version 5.9).

APIs that are coming soon

🔜 Near future (2023 First Half)

  • Additional Scripting APIs
  • Menus & Events
  • Function Pointers
  • Complete File and folder access

🔮 Future (2023 in general)

  • 3p UXP Plugins
  • Script versioning

Try UXP Scripts Today

Check out our new documentation site. Try the out a few UXP scripts, and leave feedback in the forums, under our new UXP Scripting topic.

For more stories like this, subscribe to our Creative Cloud Developer Newsletter.

--

--

No responses yet