Please enable JavaScript to view this site.

PDFX Reference

Added August 2016

"PDF/A is an ISO-standardized version of the Portable Document Format (PDF) specialized for use in the archiving and long-term preservation of electronic documents." Thus Sprake Wikipedia.

There are several different versions of the PDF/A specification, and PDFX (version 5 only, not 3) handles them all. Proving PDF/A compliance is a bit tricky, although there are tools available on the internet that purport to prove compliance and/or provide the version of the specificiation being complied to.

The basic functionality in PDFX is quite simple: turn on PDF/A output with the directive:

//PDFX.General.Specification,<some negative number>

See "Specification" in the table in the preceding topic for values. Note that some PDF functions and content are not available/allowed when specifying PDF/A formatting—for example, as illustrated below, embedding fonts; since the PDF/A specification requires that all fonts be embedded, your directive specifying whether fonts be embedded or not is overriden. Also note that PDF/A is not supported in PDFXv3.

Example

Here is a file you can copy and print to experiment with PDF/A issues.

//; testpdfa1.txt

//;

//; This document tests and proves the functionality of the PDF/A specification, or

//; at least the part about embedded fonts.

//; 

//; The two key settings below are:

//;     PDFX,General.Specification,-3     This tells PDFX it *must* embed fonts, because the 

//;                                       PDF/A spec requires that fonts be embedded

//;     PDFX,Fonts.EmbedAll,0             This tells PDFX *not* to embed fonts

//;

//; If both those options are turned *on*, and the output doc shows that

//; fonts are embedded, then the PDF/A spec is "proven" to be working.

//;

//; Also, when -3 is turned OFF, the PDF doc is ~5K. When -3 is turned ON, the PDF doc is ~88K.

//;

//; The test which gave the expected/predictable results is extremely simple:

//; Print the document WITH a simicolon commenting out the "General..." line immediately below,

//; then remove the semicolon and re-print. The two docs should be different--i.e., the one

//; with -3 turned off will be a normal PDF document, and the one with -3 turned on will be

//; a PDF/A document. 

//;

//;PDFX,General.Specification,-3

//PDFX,Fonts.EmbedAll,0

//;

//PDFX,Save.ShowSaveDialog,False

//PDFX,Save.WhenExists,Overwrite

//;

First line, top of page, no font specified.

 

//SETFONT,120,Arial

"SETFONT,120,Arial" is the directive issued which results in this font. This is just some

text to fill up a few lines to show what this directive produces and to create the need 

for a bit of font information to be included (or not) with the document.

 

//SETFONT,100,Times New Roman,0,0,200,1

"SETFONT,100,Times New Roman,0,0,200,1" is the directive issued which results in this font. This is 

just some text to fill up a few lines to show what this directive produces and to create the need 

for a bit of font information to be included (or not) with the document.

 

//SETFONT,120,verdana,FIXED_PITCH,ANSI_CHARSET,FW_EXTRABOLD,FS_UPRIGHT

"SETFONT,120,verdana,FIXED_PITCH,ANSI_CHARSET,FW_EXTRABOLD,FS_UPRIGHT" is the directive

issued which results in this font. This is just some text to fill up a few lines to 

show what this directive produces and to create the need for a bit of font information 

 

//SETFONT,180,tahoma,ANSI_CHARSET,600,FS_ITALIC,45

"SETFONT,180,tahoma,ANSI_CHARSET,600,FS_ITALIC,45" is the directive issued 

which results in this font. This is just some text to fill up a few lines 

to show what this directive produces and to create the need for a bit of