VeeDeePee: get up close and personal with variable-data publishing (vdp)

« Cheer Up | Chocolate Direct Mail »

Free VDP!

Did you know that you can start creating VDP applications right now without purchasing any additional software? It's true, you probably already have the software to create personalised documents, images and even webpages and you don't need to spend another cent!

Not many Adobe software users realise that InDesign, Photoshop, Illustrator and Dreamweaver all include personalisation features. Personalisation in these products is nothing new, they've all supported it for several versions. So you can take your copy of CS (any version) and start creating personalised applications today!

I can already hear alarm bells ringing from VDP software vendors as they read through this blog; this is definitely the one Adobe product feature that they don't want people to find. But you can't hide it, personalisation support exists in Adobe products, so let's look at how (and if) it works...

Adobe InDesign can add personalisation to documents using the Data Merge palette (Window menu > Automation). The Data Merge feature was originally added to PageMaker version 7.0 (which I worked on at Adobe). After Adobe decided to discontinue PageMaker product development, the 'PageMaker Plug-in Pack for InDesign CS' was released to help PageMaker users migrate to InDesign CS. The pack inlcuded several PageMaker features including Data Merge, bullets and numbering, the Position tool (named the Crop tool in PageMaker) and several other PageMaker features. These Plug-in Pack features have now been incorporated into InDesign CS2/3.

InDesign's data merge feature is very similar to Word's Mail Merge feature in that it uses a similar a three-part concept of a data source file, target document and a merged document. The data source file has to be a delimited text file. The target document is an InDesign document that contains the data-field placeholders and static (non-variable) page objects. The merged document is the resulting InDesign document that contains the static page objects from the target document and the merged variable information, replacing the data-field placeholders with the corresponding record values from the data source file.

indesign-data-merge.gif

Pros: It's already in the product and is relatively easy to use; it even features a step-by-step user guide in the palette.

Cons: The pages in the merged document are repeated as many times as it takes to accommodate all records from the data source. As a result, if you merge 5,000 records for a one-page document, the merge feature will create a 5,000 page InDesign document. In turn, this can create a very large print file which can take a long time to RIP. In addition, Data Merge does not support conditional logic (business rules), copyfitting or multiple databases.

Adobe Photoshop has offered a Variables feature since 2002 when it was introduced with Photoshop v7. This feature is accessible from Image menu > Variables > Define. You can define three types of variables; Visibility, Pixel Replacement or Text Replacement. Visibility variables show or hide the content of a layer based on a value in your data set. Pixel Replacement variables replace the pixels in the layer with pixels from another image file. Text Replacement variables replace a string of text in a type layer.

You can import data sets as .txt or .csv files. Once you've imported data, you can then assign visibility variables for each record. You have to set visibility variables for each record after importing, you can't base it off a field in the imported database. Also, if you want to use pixel replacement to change the image for each record, you have to specify the absolute path to the image in your database, e.g. c:\images\image1.jpg (not documented in Photoshop Help).

Once you've defined your variables and data sets, you can automate image production (File menu > Export > Data Sets As Files) and apply your own naming convention to the output files.

photoshop-variables.gif

Pros: It's already in the product.

Cons: It's not a very intuitive feature to use and Photoshop Help isn't very helpful. The feature hasn't been updated since Photoshop v7 and neither has the documentation. You can't apply copyfitting to variable text, create business rules, set actions or scripts based on values in the database (e.g. apply filters). Also, you have to manually assign visibility variables (visible or invisible) for each imported record. Ouch.

Adobe Illustrator has offered a Variables feature since 2001 when it was introduced with Illustrator v11. Like Photoshop, the Illustrator variables feature has not changed since it was added to the product. It's accessible from the Window menu > Variables. You can create four types of variables in Illustrator; Graph Data, Linked File, Text String, and Visibility.

Graph Data variables enable you to create data-driven graphs from graph objects in Illustrator (using the Graph Tool). You can create column graphs, scatter graphs, line graphs, pie charts and more. The Graph Tool is quite powerful, but it relies on Illustrator's (dated) Graph Data window (right-click on a graph and select 'Data' to access this window). The Linked File variable enables you to switch linked images/illustrations in your document. The Text String variable changes text in a frame and the visibility variable enables you to show/hide selected layers.

Data integration with Illustrator variables is pretty terrible (and I'm being polite). After you've made an object dynamic, you need to manually create data sets by entering the variable information into your design (typing in a text field, changing graph data values, linking files, or show/hide layers) then you have to click on the camera icon in the Variables palette to capture a data set (a data record). You then repeat manual action this for each record. Unlike Photoshop, there's no easy way to import data as variables. The only method is to load a Variable Library from the Variable palette (a variable library is an XML file). If you create a few dummy records and export a variable library from the Variables palette, you can open the XML file in a text editor and see the XML schema that Illustrator uses. Then create your own XML file that matches the schema (by tirelessly editing the file) then import it. It's a hack, but it works if you have the time and patience.

illustrator-variables.gif

Pros: It's already in the product.

Cons: Where do I start? Let's see... It's not a very intuitive feature to use and Illusrator Help is less than helpful. The feature hasn't been updated since 2001. The process of capturing a data set (i.e. record) is tedious and there's no easy way to import your own data. Also, like Photoshop, you can't apply copyfitting to variable text, create business rules, set actions or scripts based on values in the database (e.g. apply filters).

Adobe Dreamweaver offers a good level of database-integration through it's support for dynamic content. With Dreamweaver, you can define a database connection (or connections) and then bind to the database fields to display them on your page and update values in the database. You can place dynamic content as a text string or insert it as an HTML attribute, for example, dynamic content can define the 'src' attribute of an image, or the 'value' attribute of a form field.

All you need to create dynamic web pages is a web server (e.g. Microsoft IIS, Netscape Enterprise Server, Apache), a web application framework (e.g. ASP.NET, ColdFusion, PHP), a database (SQL, MySQL, other) and Dreamweaver.

When you bind to a data source, Dreamweaver inserts a server-side script in the page's code instructing the server to transfer the data from the database to the page's HTML code when the page is requested by a browser — no coding is necessary! You can even preview the records one at a time from your database right from within Dreamweaver. Dreamweaver's database connection can be quite a slow experience when initially connecting, but it definitely saves you a heap of time and you don't need to know any server-side code (ASP, C#, PHP, etc).

dreamweaver-bindings.gif

Pros: Dynamic content support is built into Dreamweaver and after a learning curve, it's suprisingly easy to use. It supports a variety of database formats and web application frameworks.

Cons: You can't create logic statements (business rules) without coding programatically.

What about PURLs? Good question. Personalised URLs or 'PURLs' can't be created with using Dreamweaver. Let me explain why.

When you create a dynamic webpage, you have to define a variable for the page to identify which record you are requesting from the database. A common method of doing this is to include a variable paramater in the URL, for example: http://www.mycampaign.com/landing.aspx?id=Eliot.Harper. The problem with this approach is that the URL is not very 'friendly'. Therefore, we need to build another layer between the dynamic webpage and the end-client to redirect a 'friendly' URL to the actual URL. For example, redirect www.mycampaign.com/Eliot.Harper to http://www.mycampaign.com/landing.aspx?id=Eliot.Harper.

If you're using Apache as your web server, then you're in luck. Apache has a mod_rewrite function that enables you to create highly customised rewrite scripts for your webpages. All you need to do is add an .htaccess file to your site root (in fact, this very page that you're reading now is dynamically created using a rewrite script in an .htaccess file). There's a good tutorial on this creating .htaccess file rewrites on HTMLSource.

For IIS users, there's no need to despair. Helicon Tech have written ISAPI_Rewrite; an identical utility to Apache's mod_rewrite. You can even move configurations from Apache to IIS and vice versa just by copying .htaccess files. Helicon Tech offer a freeware and full licenced version of ISAPI_Rewrite on their website.

Incidentally, XMPie have integrated a licenced version of ISAPI_Rewrite with their PersonalEffect cross-media product that dynamically generates the necessary rewrite scripts when you create a new Interactive Content Port on the uProduce server.

Pros: (for using mod_rewrite or ISAPI_Rewrite). These are very powerful rewrite utilities that support regular expressions and they're free/very affordable.

Cons: Rewrite scripts are programmatically based and are somewhat intimidating. You really need to understand regular expressions to really take full advantage of rewrites.

In summary, it becomes quickly apparent that after using the personalisation features InDesign, Photoshop and Illustrator, these products are simply not designed to be VDP software products. It also surprised me how different the approaches were between these three products, seeing as Creative Suite is supposed to be focused on common a functionality set across the Suite.

The personalisation features in InDesign, Photoshop and Illustrator may be useful for creating some one-off personalisation jobs or for proof-of-concept work, but they're totally impractical to use for VDP work of any significant run-length. In addition, personalisation support in Creative Suite is simply a data-merge and nothing more — you can't apply any level of conditional logic to your data or design.

On the other hand, Dreamweaver offers a good level of support for dynamic content, and with Apache's mod_rewrite or Helicon Tech's ISAPI_Rewrite layered on top, you can create your own personalised web pages with some effort. However, there's no easy way to creating business rules, let alone a common set of business rules that can be used across an entire cross-media campaign.

If you wrap up the personalisation features of InDesign, Photoshop, Illustrator and Dreamweaver under one shell, you may have a car, but it won't go very far and all the wheels will turn on their own. An integrated VDP software solution with common database support, common business rules and dynamic creation of variables will give you an automatic car, your wheels will turn together and you'll be quickly heading down the freeway to success.

Adobe have made it clear that VDP is not a core focus for Creative Suite, Adobe's VDP strategy is a partnership one; they rely on partnerships with VDP software vendors to integrate their tools into Adobe products. Thank goodness.

Posted on Wednesday, 10 October 2007 at 12:14 AM | TrackBack: http://www.veedeepee.com/cgi-bin/mt-tb.cgi/37

TrackBacks

Listed below are links to weblogs that reference Free VDP!:

» Magical PURLs from veedeepee
The term 'PURL' has definitely gained attention over recent years, establishing itself alongside CTP, JDF, VDP and other industry acronyms. Today, it seems that everyone is talking about PURLs — from print providers through to vendors. Despite al... Read More »

Tracked on Thursday, 10 January 2008 at 1:54 PM

Comments

To add a more robust VI to your Quark or InDesign files you may want to look at DesignMerge®. DesignMerge® is an add-on component for the desktop publishing applications, QuarkXPress™ and Adobe® InDesign™, which allows users to create customized 1:1 marketing documents by linking a QuarkXPress or InDesign document to a database file. The files never leave the native application. Then, each copy of a printed document can be "personalized", changing items such as name, address, and even graphics. The entire process is database-driven, completely flexible, and very easy to use.

Disclosure: I work for Meadows/DesignMerge

Posted by Greg Bane on Tuesday, 16 October 2007 at 12:55 AM

Greg. It's a good thing that you added a disclosure -- I'd never have guessed that you work for Meadows ;-)

I should point out to readers that there's a selection VDP plug-in software available for InDesign/QuarkXPress, including Darwin, uDirect, InData, Yours Truly and others.

After reading your comment, I hope VDP users understand why they should consider using such plug-ins instead of out-of-the box data merge features in InDesign and other CS products.

Posted by Eliot Harper on Tuesday, 16 October 2007 at 3:43 AM

Eliot, to continue, there are several advantages to plug-in technology in the VDP space. The most important advantage is that the DesignMerge® software can utilize the two most powerful and popular composition engines in the world, QuarkXPress and Adobe InDesign. All of the composition features that you have grown accustomed to are fully supported by DesignMerge®. Everything aspect of the composition process, including kerning and letterspacing, hyphenation and justification, runarounds, multi-page composition, styling, tables, etc. are all available for you to use. You just take an existing document, and use DesignMerge® to "Make It Variable". Your variable output will look just like you did File/Print for each individual data record.

Posted by Greg Bane on Wednesday, 17 October 2007 at 12:28 AM

I'm just curious which software to use in the near future. Our company has been traditionally a VDP shop with a strong presence for the data side of the spectrum (Benefit booklets, statements, invoices) and some direct mail. I've noticed a strong shift in the VDP industry towards the graphics side of the house. The software we use is script language based. We are wondering what software VDP packages you would recommend that fits both sides of VDP document creation/composition. Our compnay needs something that has the power and flexibility of a script writing software for all the complex logic we have to perform(if/then/else--while loops--lookup tables--mutilple file handling in/out--math computations--data manipulation on the fly..etc.), as well as a software package that can handle the wysiwig graphical capabilites needed to design today's VDP direct mail campaigns. We have noticed some software packages like Extream and even GMC Printnet but their pricing seems to think everybody is a big insurance company with million dollar budget for software purchases. We're a small-mid size company. Any advice or help would be great. Thanks

Posted by Cody Williams on Friday, 26 October 2007 at 2:56 AM

Cody, if you're after a strong level of graphic control in your design, then you may want consider using a plug-in based solution for page layout software (e.g. InDesign). Such software will enable you to leverage the creative power and flexibility of InDesign in your VDP work and enable to to benefit from VI languages (VPS, VIPP, PPML, etc).

The problem with a script-based approach to VDP, is that although it provides you with a high level of customisation, scripting will not create an optimised print file and as a result, you do not have the benefits of VI language optimisation, such as object reusability. In turn, this can create a bottleneck in production.

One solution that you may want to consider is XMPie uDirect Professional or uDirect Premier Edition. Both these desktop solutions use InDesign for page layout and composition, but they also include uPlan; a powerful XML-based rule editor.

uPlan enables you to create highly customised business rules using an easy-to-use QLingo scripting language. Alternatively, you can also use SQL statements. QLingo also supports variables, which enable you to create common rules for reuse across different content objects or 'ADORs'.

Furthermore, uPlan supports scripting. If you need to create a function that does not exist in QLingo, you can create a custom function using JavaScript or VBScript for use in variables and content objects.

Check out XMPie's website for more information.

Posted by Eliot Harper on Friday, 26 October 2007 at 6:23 AM

Concerning complex logic (if/then/else etc..)

To me, the most straight forward workflow is to create a simple .CSV file that does not need to resolve anything anymore. You can create that .csv file with the software of your choice. (Access based, ASP, your own scripting...) Or even better, ask your customers to deliver the .csv file (Liability)

As I work for EskoArtwork, I am best familiar with our software. We have VDP both in our native editors as well as plugins for Adobe Illustrator.

Posted by Peter on Monday, 5 November 2007 at 10:26 PM

I'd like to share my opinion on Peter's comment regarding creating flat data files...

While it's possible to format your data using Excel formulas and/or scripts, in my opinion it's preferable to maintain data in its raw format and apply formatting or rule-based logic using VDP software.

There are three main advantages to this approach. Firstly, VDP software can be easier to use than scripts or Excel formulas and several VDP products offer intuitive rule editor interfaces. Secondly, if you need to make a change to data formatting or logic, it's a lot easier to edit a single business rule, rather than applying a formula/script to every single record in the data file. And thirdly, keeping your data in its original raw format makes it easily reusable for other campaigns and/or applications.

Posted by Eliot Harper on Tuesday, 6 November 2007 at 8:10 PM

Post a comment