QUESTION: What is PPML/VDX?

ANSWER:  PPML/VDX stands for "Personalized Print Markup Language/Variable Data Exchange." PPML/VDX is a print-optimization standard that specifies a way to use information in PDF format and PPML format for the exchange or identification of the elements needed to render a variable-data-printing job as intended by the person or entity that created it. The PPML/VDX standard was developed by the Committee for Graphic Arts Technologies Standards (CGATS), and it was approved by ANSI early in 2002.

Formerly known as "VDX," PPML/VDX technology — which is based on a subset of PODi's PPML specification — allows electronic-publishing software to use PDF files as containers for packaging the information needed to produce variable-data-printing jobs.

The PPML/VDX standard provides a framework that can be used by software and hardware vendors to create variable-data-printing solutions that allow variable-data print jobs to print at or near rated speed on a digital printer or digital press. Print speed is a bottleneck in many conventional variable-data-printing workflows, and PPML/VDX-based variable-data-printing solutions that are implemented properly will remedy this situation.

The PPML/VDX standard was developed by Subcommittee 6, Task Force 2 of CGATS.

The PPML/VDX standard is available for purchase from the American National Standards Institute (ANSI) Web site — click this link:



How does PPML/VDX work?

In a PPML/VDX workflow, you have a PPML/VDX sender and a PPML/VDX receiver. A PPML/VDX sender is a system that generates a collection of files that contain information about a variable-data-publishing job, and a PPML/VDX receiver is a system that makes use of these files to produce the variable-data job.

A PPML/VDX sender could be a software program or programs and/or one or more humans. Likewise, a PPML/VDX receiver could be a software program or programs and/or one or more humans.

The collection of files that is sent to a PPML/VDX receiver by a PPML/VDX sender is referred to as a PPML/VDX instance. A particular PPML/VDX instance might consist of just one file, or it might consist of several files or many files. If there is just one file in the PPML/VDX instance, that file is a special kind of PDF file called a PPML/VDX Layout file. Every PPML/VDX instance must contain one and only one PPML/VDX Layout file. If a PPML/VDX instance consists of more than one file, one of the files is a PPML/VDX Layout file, and there might be several or many other PDF files, and there might also be one or two files in XML format.

A PPML/VDX Layout file has a filename extension of .vdx instead of .pdf, to signify that it is a PPML/VDX Layout file instead of a "regular" PDF file.

The XML files, if present, contain PPML data and/or JDF data. PPML data is an essential part of every PPML/VDX instance: it is either inside the PPML/VDX Layout file for the PPML/VDX instance, or it is in a separate file. JDF data is optional. If a PPML/VDX instance does contain JDF data, the JDF data can either be inside the PPML/VDX Layout file or it can be in a separate file. See below for more information about the PPML data and JDF data in a PPML/VDX instance.


The PPML/VDX Layout file

As we've just said, every PPML/VDX instance contains one and only one PPML/VDX Layout file. The PPML/VDX Layout file is a PDF file that functions as a container for some data structures that describe how the components of the variable-data job are organized. In addition to these data structures, a PPML/VDX Layout file might also contain some or all of the code for the text and graphics that are required to produce the variable-data job.

It's important to note that a PPML/VDX Layout file is not intended for viewing with PDF-viewer software such as Adobe Acrobat — even though it is a PDF file. That's because a PPML/VDX Layout file is not structured like a conventional PDF file that is meant to be opened in PDF-viewing software and read by human eyes. Instead, a PPML/VDX Layout file is structured in a way that allows it to serve as a "container" or "package" for data structures (and possibly for text and graphics) that will be used by PPML/VDX-receiver software to generate variable-data documents — but the PPML/VDX Layout file itself is not a "document" in the conventional sense of the word.

If you do open a PPML/VDX Layout file in Adobe Acrobat, you will probably see something like this:

    Warning: This is a PPML/VDX file.
    This file may not display properly in your viewer.


Different ways to organize a PPML/VDX instance

A PPML/VDX instance can be structured in several different ways.


The simplest case

In the simplest kind of PPML/VDX instance, 100% of the information needed to produce the variable-data job is contained in one PDF file: the PPML/VDX Layout file. Here is an illustration that shows what's inside the PPML/VDX Layout file.


In this example, all the text and graphics for the variable-data job are contained inside the PPML/VDX Layout file, which is named MyLayoutFile.vdx. Data structures inside the PPML/VDX Layout file specify where the various bits of text and the various graphics are located within the file and describe how the text and graphics are to be utilized when producing the variable-data documents.

The "bits of text" can be single characters, words, sentences, paragraphs, or entire pages. Formatting information — such as text positioning, font name, font style, leading (linespacing), text color, etc. — is included along with the text itself.

Four major types of PPML/VDX-related data structures can be found inside a PPML/VDX Layout file:

  • The ContentBindingTable data structure — this data structure serves as a sophisticated cross-reference table and "checklist" that can be used by a PPML/VDX receiver to determine whether or not all the components required for the variable-data job are present.

  • The Layout data structure — this data structure either 1) contains a PPML data structure that describes how the variable-data documents are to be laid out and how the bits & pieces of text & graphics are to be incorporated into them, or 2) contains a reference to a separate file in which such a PPML data structure is stored.

  • The ProductIntent data structure — this data structure either 1) contains a JDF data structure that specifies what kind of paper to be used for printing, what binding method should be used (if any), etc., or 2) contains a reference to a separate file in which such a JDF data structure is stored.

  • The PPMLVDX data structure — this data structure serves as a "wrapper" for the data structures described above. That is: the ContentBindingTable data structure, the Layout data structure, and the ProductIntent data structure (if there is one) are enclosed within the PPMLVDX data structure.

The PPMLVDX, ContentBindingTable, and Layout data structures must be present in every PPML/VDX Layout file. The ProductIntent data structure is optional.

These data structures are in XML format. In other words: each of them is an XML element.

Again, it's important to note you will not be able to see text and graphics that are contained in a PPML/VDX Layout file if you open it in a PDF viewer such as Adobe Acrobat. That's because a PPML/VDX Layout file is not structured like a conventional, human-readable PDF file. Instead, its purpose in life is to serve as a container for information that is essential to a PPML/VDX instance, and for that reason it is structured according to specifications in the PPML/VDX standard that has been developed by CGATS.

It is the responsibility of the PPML/VDX receiver in a PPML/VDX workflow to read and understand the data structures inside the PPML/VDX Layout file and to utilize the information in those data structures to assemble the various textual and graphical elements in the file into actual documents.


A more complicated case

You can also have a PPML/VDX instance that consists of a PPML/VDX Layout file that contains only the data structures described above but does not contain the actual code for the text and graphics to be used in the variable-data documents that will be created. In this case, other PDF files are included in the PPML/VDX instance along with the PPML/VDX Layout file, and these other PDF files contain the code for the text and graphics. For example, you might have a PPML/VDX instance that contains the following ten files:

    MyLayoutFile.vdx
    Text1.pdf
    Text2.pdf
    Text3.pdf
    Text4.pdf
    Text5.pdf
    Logo1.pdf
    Logo2.pdf
    Logo3.pdf
    Photo1.pdf

The illustration below depicts a PPML/VDX instance that is organized this way.



Another way to do it

A PPML/VDX instance can also be organized such that the PPML data structure and the JDF data structure, if there is one, are located in separate files, instead of being located inside the PPML/VDX Layout file. For example, you might have a PPML/VDX instance that contains the following twelve files:

    MyLayoutFile.vdx
    MyPpmlData.ppml
    MyJdfData.jdf
    Text1.pdf
    Text2.pdf
    Text3.pdf
    Text4.pdf
    Text5.pdf
    Logo1.pdf
    Logo2.pdf
    Logo3.pdf
    Photo1.pdf

Here is an illustration that shows how this works.


In this case, PPML/VDX data structures inside the PPML/VDX Layout file reference a PPML file and a JDF file, and — as in the previous example — they also reference PDF files that contain text and graphics. The PPML/VDX Layout file itself does not contain PPML data or JDF data.


Other ways a PPML/VDX instance can be organized

We've shown three different ways that a PPML/VDX instance can be organized. There are also other ways to organize a PPML/VDX instance. If you're curious about the details behind PPML/VDX, you might want read the PPML/VDX standard itself. As explained above, you can purchase a copy of it at the American National Standards Institute (ANSI) Web site. Click this link:



See also What is PPML?


TOP