InDesign is widely acknowledged as the industry standard in print and publishing software. It has a huge range of functions and a large base of users, many of whom have an in depth knowledge of the program. Anyone who uses the program regularly, especially those who use it for fairly challenging tasks, will welcome the ability to automate some of their workflows. However, there is no easy way of achieving this in InDesign.
The recordable actions facility found in Photoshop and Illustrator simply does not exist in InDesign. Instead, InDesign allows the user to write executable scripts using a choice of three programming languages: JavaScript, AppleScript or Visual Basic. The major benefit of using JavaScript as the programming language is that it is cross-platform: scripts will run equally well on Windows and Macintosh.
For anyone working in a Mac-only environment, AppleScript will be the obvious language of choice. It offers the benefit of easy integration with scripts written for automating other programs on the Macintosh platform, for example, extracting information from FileMaker and then taking it into InDesign.
For anyone interested in automating InDesign on the Windows platform, Visual Basic is the logical choice. Additionally, it is possible to control InDesign using Visual Basic for Applications (VBA), a variant of Visual Basic which is used to automate Microsoft Office. This option would be ideal for someone automating the production of financial reports heavily reliant on Microsoft Excel spreadsheets.
Be forewarned that, in order to be able to control the program with scripting, you must know InDesign CS5 very well. This is essential; since it is impossible to understand many of the subtleties of the InDesign object model without an intimate knowledge of the elements of InDesign which these scripting objects represent. Basically, in order to automate InDesign, you need a good knowledge of three elements. Firstly, InDesign: the program and all its major functions. Secondly, a compatible scripting language such as JavaScript. Thirdly, the InDesign object model: the programming syntax which is used to represent every nook and cranny of InDesign itself.
InDesign CS5 Automation Using XML & JavaScript by Grant Gamble is available now from Amazon.