XFA 3.0: Viewer Preferences

The configuration section of XFA 3.0 has new options for controlling viewer preferences in the PDF files that we generate.

One common request we have heard from users is that they want control over how the user can print documents from Reader.  Specifically, they want to:

  1. Set the default print scaling option to "none"
  2. Disallow the user from changing the scaling option
  3. Choose paper source by PDF page size

In the configuration file, the current viewerPreferences section looks like this:

<addViewerPreferences/> <!-- 0|1 -->
<duplexOption/> <!-- simplex|duplexFlipShortEdge|duplexFlipLongEdge -->

In XFA 3.0 we added three new elements, <printScaling/>, <enforce/> and <pickTrayByPDFSize/> as children of the viewerPreferences element.

<printScaling/> supports the values noScaling or appDefault.  This setting controls the initial value of the ‘Page Scaling’ drop down list that appears in the Reader print dialog. The application default is: "shrink to printable area".  With this setting, we can change the default to "none" (noScaling).

<enforce/> is a space delimited string of viewer preferences to enforce.  By "enforce", we mean setting preferences that the Reader user is not allowed to change. Currently, the PDF spec supports enforced print scaling in Acrobat 9.0 or later. Therefore this list supports only the value ‘printScaling‘.  In the future if/when PDF supports more enforceable preferences, we will expand this list accordingly.

<pickTrayByPDFSize/> is a boolean flag that specifies whether the PDF page size is used to select the input paper tray. When set to 1 (true), the check box in the Reader print dialog associated with the input paper tray is checked. The default is 0 (false), in keeping with the previous behaviour of our products.

This is the last blog entry describing XFA 3.0 enhancements.  It will be a while before we deliver Designer and LiveCycle products that support all the new options (no, I can’t quote specific dates).  Until then, I’ll get back to delivering samples that work with earlier versions of Reader.