InData / Xdata

Turn your raw structured data into finished documents

  • What if you could have a software robot to follow your directions exactly, building data-driven documents while you watch?
  • What if you could set up a template once, then flow in all your data for dozens or hundreds of pages, fully formatted and ready to print, with a single click? And repeat that for any data set?
  • What if, in simple cases, setting up the template was the same as setting up a Word mail-merge, just like you already know?
  • What if, in complex cases, you could build almost anything you could express in an InDesign story flow, ranging from a single line per record up to many pages per record, with any number of graphics, anchored objects like text frames and groups of graphics and text frames, tables, and even variable page layouts using master pages?

You can, with InData and Xdata, your building robots.

Video walkthroughs

Here are a couple of video walk-throughs, one for InData and one for InData Pro (which adds full anchored object and table support to the normal InData). (Expand to full-screen for best viewing.)

Bring ultimate publishing power to your data

InData, a plug-in for Adobe InDesign, and Xdata, an XTension for QuarkXPress, bring the full layout, design, typographic and picture publishing power of InDesign or QuarkXPress to bear on all your data-driven repetitive publishing tasks.

Simply put, InData and Xdata work like a mail merge on steroids. You create a template in a normal document, with rules that tell it how to format your text and graphics. Then, with a single menu invocation, the plug-in builds your document at jaw-dropping speeds—up to hundreds or even thousands of pages per hour.

Use your publishing platform’s typographic controls for each variable field and for any static text, to get just the right look for your data.

InData and Xdata have a powerful English-like scripting language. You can put any field from your data source in any order in the text flow, force page breaks, generate headers/footers, apply master pages as needed—and lots more.

Use InData / Xdata’s scripting language to build simple or complex rules for including or excluding fields, graphics, and static text. And there are no limits on your data: records and fields can be as many and as long as you need.


InData and Xdata are designed to build • one-to-one marketing mailers • product catalogs • financial and legal reports • conference guides • abstracts • real estate guides • trader and swap magazines • classified advertising • timetables • phone books • course listings • TV guides • and much more: just about any job where you’re given variable data to publish.

Features and benefits

With InData and Xdata, you can

use a “prototype” (template) for your records

In your template text, use bracketed names to identify each incoming data field, e.g., «name», «address» or «description», and style each field with appropriate text and paragraph attributes. You can weave in static and dynamic text and pictures, include your fields in any order, or omit fields entirely.

get results as either a beginner or an expert

Do simple jobs easily, and still tackle the toughest and most complex jobs with power.

import pre-sorted delimited text files

Sort and then export from your database application, spreadsheet applications (e.g., Excel), or download from the web or your corporate information systems, and then import the resulting data file with InData or Xdata, fully formatted.

enjoy unlimited data

Use as many fields and records as is practical, with each being as long as needed.

do sophisticated picture importing and sizing

Import related graphics into picture frames anchored in the incoming text. You can size the graphic to the picture frame or the frame to the graphic, using one of several sizing options.

use variables

Calculate and store information for later use in the prototype, or for use in later records.

use conditional statements

Create more sophisticated record templates that apply different formats to a field, based on its or another field’s value. For example, you can print heads and subheads only when they change, or generate a page break, given a change of value indicating a new section or subsection.

use repeat loops

Loop over data elements (character or words or lines), looking for particular information, or even repeat whole portions of the prototype.

build with automatic headers and footers

Create multiple, independent “dictionary-style” headers and footers on each page or spread, with sophisticated controls over the header/footer contents.

apply multiple master pages

Based on incoming data, use different page layouts by applying master pages.

build anchored groups

Build anchored-anything content (text frames, groups containing other text and graphics frames and sub-groups), with sub-prototypes in the anchored text frames, with the Pro version of InData.

build sophisticated tables

Build tables, with sub-prototypes in each cell, and with graphics placement available for any picture cells, including QR code support, with the Pro versions of InData and Xdata.

script InData / Xdata

Drive InData / Xdata with scripts for automation of repetitive single jobs, as well as large, complex jobs involving multiple imports in multiple documents.

team up with InCatalog / Xcatalog

Build your templates with InCatalog / Xcatalog links embedded. Later, using InCatalog / Xcatalog, you can update fields in place from updated data, or extract any document updates to your data.

enjoy full Unicode support

In your data to be imported, use the full Unicode character set in various encodings (auto-detected at input time).

Answers to data publishing challenges


You’ve got a raw data dump from a spreadsheet or database, and you’ve got to import each record, re- arrange the fields, style each field appropriately, deal with missing fields in some cases, etc. You’re looking at hours or days of endless busywork that’s also quite error-prone.


Writing an InData / Xdata prototype, you declare the fields, use field placeholders in the appropriate order, style each placeholder as needed, and then with a single menu selection (Import Data), you’re done in a few minutes, with 100% data accuracy.


You’ve got a complex data publishing job, with sections, subsections, a huge list of fields, many of which are optional, potentially multiple graphics per entry, etc. How are you going to automate it all?


Using InData / Xdata’s English-like scripting language, you build conditional rules to suit your needs, including or excluding fields based on the presence or content of other fields, including one or more graphics per entry based on picture availability, etc.


You need “dictionary style” running headers or footers for each spread, for example, to show the first and last names on the spread.


Using InData / Xdata’s built-in header/footer support, you decide which data fields to track, and whether to only look on this spread or on previous spreads.


You’ve got a truly complex data publishing job, where the basic page or spread layout needs to change, based on the incoming data.


With InData / Xdata’s master page/spread support, you use conditionals that apply the appropriate master for the current data.


You need to format the beginning or end of a given sub-group of records specially; for example, you need a header for each state in a directory listing.


Using InData / Xdata’s ability to look forward or backward one record, you build a conditional statement that decides when you’re at the start or end of a group and format appropriately.


You’ve got to build and print or save a bunch of documents using one basic template and multiple data sources, or you’ve got one data source and multiple documents to build. It’s tedious to do it all one-by-one.


With InData / Xdata’s scriptability, you can easily automate this and many other “batch” situations.


You’re building your document with InData / Xdata and are miles ahead of the game, but you might need to make last-minute small but wide-ranging changes—for example, updating a set of prices in a catalog or parts list—and you can’t afford to miss any changes, nor make any pricing mistakes.


Using the appropriate companion product InCatalog or Xcatalog, you link your prototype data field placeholders to the appropriate field in your database using another data field for the key, and flow in the data with all InCatalog / Xcatalog links in place. Anytime later, you can update the linked document contents from the latest database snapshot, with 100% accuracy, and without re-creating the document.

Field-proven by enthusiastic users

InData and Xdata have been in production use at thousands of sites, world-wide, since 1990. We’ve been improving them ever since, directly driven by user feedback.

And our users are quite enthusiastic about these tools. To get a good sense of what people are saying about InData and Xdata, see the unsolicited testimonials.

For real-world applications, see our growing set of case studies for these products, written by folks who were happy to share how our tools improved their lives.

Next steps

Navigating from the sidebars on the upper right, you can browse case studies, testimonials and news, head to our online store to purchase a license, download the appropriate software (which also functions as a trial version), download the manual and tutorials, browse release history, get more information about obtaining pre- and post-sales support and about evaluating the product, and see recent product-related news items on this site.

© 2010 Em Software - Business WordPress Theme by ThemeShift