The Second Most Important New Feature

Also new in InDesign CS4 is a completely re-written and re-architected Links feature. Some of the changes are obvious when you see the new look Links panel the first time you open it in CS4.

There’s some great new functionality in the Links panel in InDesign CS4, but that’s not what this blog entry is going to be about (you can see the Links Panel in action in our CaffĂ© Fibonacci program on Adobe TV).

In this post, I’m going to describe some powerful new capabilities that Adobe is providing under the hood for developers.

The Links re-architecture project delivered some great new hooks in the API’s for developers to do a number of things relatively easily:

  • link to database records or individual fields
  • create bi-directional links so that edits made to linked text from a database in InDesign can be saved back to the database
  • link to non-page items such as swatches, fonts, workspaces, etc. Links are no longer limited to files or other external assets masquerading as files. A link can now be to any internal object or external data source.
  • create compound links and link queries via parent-child link relationships. A child link is a link that is a child of an import, export or bidirectional link. A child link always references an owner object through its parent link.
    An example would be InDesign CS3’s ability to create parent-child links when an InDesign file is imported into another InDesign file. The parent link is the placed InDesign document, and the child links are the linked files within that document, and they can be viewed in the Links panel.
  • make link queries (and link resource queries) that enable quickly obtaining a set of links with certain attributes from the link manager. For example, you can query for all import links that are out-of-date. The link manager does not need to iterate over the links to obtain the set, since it has already cached meta data on the links that allow it to quickly get the list of links. This is especially important for documents with several links, where iteration would be very time time consuming.
  • use asynchronous link state updating
  • link to files that do not yet exist, but are coming later in the production process.
  • link to data contained in something other than a discrete, static file. For example, a developer can create links streaming data when reading
    or writing links.

InDesign CS4’s new Linking architecture makes it a lot easier to create solutions for various types of publishing workflows. If you’re interested in learning more, download the InDesign CS4 SDK, and get plugged in to our developer program.