Form XObjects in PDF files

Form XObjects is a way of describing objects (text, images, vectors) within either a PostScript or PDF file. In a way, Form XObjects are the logical equivalent of EPS files, i.e. any combination of text, vectors, and images that are kept as a separate entity. You can have Form XObjects inside Form XObjects, etc.

The concept of Form XObjects can already be found in the PostScript Level 2 specification of 1991. They had been introduced at that time to allow for more efficiency: one could put aside a piece of a page description that could then be used several times on a page or in a whole file. That concept was carried over into PDF 1.0. The past few years Adobe has actively discouraged the use of Form XObjects. Recent PDF files will not longer contain such objects and the remainder of this article is just there for history stake.

How Form XObjects get created

There are a number of workflows or applications that can cause Form XObjects to appear in a PDF file. These are some of the possibilities:

  • Though not technically required, Acrobat Distiller seems to make Form XObjects whenever there is OPI, even when only made up of a single image which could be represented as the simpler Image XObject. If you do not have an OPI workflow, you can turn off “Preserve OPI” in your Distiller Job Options and eliminate many occurrences of Form XObjects.
  • InDesign 1.x also tends to make frequent use of Form XObjects.
  • A PDF flat that has been imposed using an imposition tools like KIM PDF or ScenicSoft Preps 4 will contain Form XObjects.
  • Creo Pagelet, an Acrobat plug-in to place PDF files into other PDF files, uses Form XObjects, as well as the Quite A Box Of Tricks plug-in when it is used to flatten annotations and Acrobat Form fields.
  • When using flattenPages from within a JavaScript (e.g. run by a batch sequence in Acrobat 5), annotations and Acrobat Form fields will be converted to Form XObjects.

The trouble with Form XObjects

Form XObjects are a ‘legal’ construct within PDF files. Even Adobe makes frequent use of it. But not all PDF tools can properly handle Form XObjects. The most well known example of this are early versions of Enfocus PitStop. They cannot properly preflight Form XObjects nor can these objects be edited. These limitations are due to the use of an Adobe PDFLibrary API that has some limitations when handling Form XObjects. Other vendors, including callas software, Quite and Apago have successfully worked around this issue in their software.

Add a Comment