Having experience in both environments, we are aware of the limitations of creating automatic workflow in InDesign Desktop. The main limitation is that in InDesign Desktop, you need an operator in front of the computer to babysit the pagination operation because so many inconveniences can happen when creating an automation in the InDesign Desktop application. Additionally, the Adobe license itself has some clear limitations regarding where InDesign Desktop can work automatically.
Still, there are also many technical nuisances that you can only partially work around in InDesign Desktop, nuisances that will put the long-term stability of your project at risk.
InDesign Alerts
For example, on a desktop computer, the user needs a username to log into and start InDesign. At this time, InDesign provides certain alerts about updates or errors, and the user has to close them before letting JavaScript crunch the document. Noticeably, this all requires user intervention. However, there is an option to “shut up” InDesign with this instruction: UserInteractionLevels.NEVER_INTERACT;
Nevertheless, some alerts need to be handled manually, like when InDesign has to:
- Confirm your license (recurrent)
- Check for new features
- Fix new bugs
- Warn of glyph font errors when exporting to PDF
These occurrences halt the automation process in the desktop environment, even if UserInteractionLevels is set to NEVER_INTERACT. Additionally, it too often provides a vague description of the error, explaining encountered problems with a generic message such as “User canceled this action.”
Hardware, OS, and Memory
InDesign Desktop is built to optimize user responsiveness, as the experience is very fluid and responsive. But when you force-feed or flood InDesign Desktop with many commands via scripts, the computer itself becomes unresponsive, and even if the commands are executed flawlessly, the computer cannot complete other activities. This is true even if the computer has many cores, leaving your fine equipment vastly underutilized while waiting for pagination to complete.