<p>CUPS supports several methods of auto-configuration via PPD keywords.</p>
-<h3><span class='info'>Deprecated</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3><span class='info'>Mac OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
-<p>This deprecated keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p>
+<p>This Mac OS X keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p>
<p>The program is provided with two arguments: the printer's device URI and the PPD file to be used for the printer. The program must write an updated PPD file to stdout.</p>
-<blockquote><b>Note:</b>
-
-<p>This keyword is deprecated. New printer drivers SHOULD provide a CUPS command filter and support the "AutoConfigure" command. Alternately, drivers MAY use the <a href="#OID">SNMP OID</a> keywords to configure network printers or <a href="#QUERYKEYWORD">PostScript query keywords</a> to configure PostScript printers.</p>
-
-</blockquote>
<p>Examples:</p>
<pre class='command'>
<p>Examples:</p>
<pre class='command'>
-<em>*% Specify a profile for printing at 360dpi on all media types</em>
+<em>*% Specify a profile for printing at 360dpi on all media types</em>
*cupsColorProfile 360dpi/-: "1.0 1.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-<em>*% Specify a profile for printing at 720dpi on Glossy media</em>
+<em>*% Specify a profile for printing at 720dpi on Glossy media</em>
*cupsColorProfile 720dpi/Glossy: "1.0 2.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
-<em>*% Specify a default profile for printing at all other resolutions and media types</em>
+<em>*% Specify a default profile for printing at all other resolutions and media types</em>
*cupsColorProfile -/-: "0.9 2.0 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0"
</pre>
<p>Examples:</p>
<pre class='command'>
-<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em>
+<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em>
*cupsICCProfile CMYK..360dpi/360dpi CMYK: "/Library/Printers/vendor/Profiles/foo-360-cmyk.icc"
-<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em>
+<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em>
*cupsColorProfile RGB.Glossy.720dpi/720dpi Glossy: "/Library/Printers/vendor/Profiles/foo-720-glossy-rgb.icc"
-<em>*% Specify a default profile for printing at all other resolutions and media types</em>
+<em>*% Specify a default profile for printing at all other resolutions and media types</em>
*cupsICCProfile ../Default: "/Library/Printers/vendor/Profiles/foo-default.icc"
</pre>
<p>Examples:</p>
<pre class='command'>
-<em>*% Specify that 2-sided printing cannot happen on transparencies</em>
+<em>*% Specify that 2-sided printing cannot happen on transparencies</em>
*cupsUIConstraints transparency: "*Duplex *MediaType Transparency"
-<em>*% Specify that envelope printing cannot happen from the paper trays</em>
+<em>*% Specify that envelope printing cannot happen from the paper trays</em>
*cupsUIConstraints envelope: "*PageSize Env10 *InputSlot Tray1"
*cupsUIConstraints envelope: "*PageSize Env10 *InputSlot Tray1"
*cupsUIConstraints envelope: "*PageSize EnvDL *InputSlot Tray2"
<em>*% Specify an installable option constraint for the envelope feeder</em>
*cupsUIConstraints: "*InputSlot EnvFeeder *InstalledEnvFeeder"
-<em>*% Specify that photo printing cannot happen on plain paper or transparencies at 1200dpi</em>
+<em>*% Specify that photo printing cannot happen on plain paper or transparencies at 1200dpi</em>
*cupsUIConstraints photo: "*OutputMode Photo *MediaType Plain *Resolution 1200dpi"
*cupsUIConstraints photo: "*OutputMode Photo *MediaType Transparency *Resolution 1200dpi"
</pre>
<p>Examples:</p>
<pre class='command'>
-<em>*% Specify the options to change for the 2-sided transparency constraint</em>
+<em>*% Specify the options to change for the 2-sided transparency constraint</em>
*cupsUIResolver transparency: "*Duplex None *MediaType Plain"
<em>*% Specify the options to change for the envelope printing constraints. Notice
*% manual feed first, then we change the page size...</em>
*cupsUIResolver envelope: "*InputSlot EnvFeeder *InputSlot ManualFeed *PageSize Letter"
-<em>*% Specify the options to change for the photo printing constraints</em>
+<em>*% Specify the options to change for the photo printing constraints</em>
*cupsUIResolver photo: "*OutputMode Best *Resolution 600dpi"
</pre>
<p>Examples:</p>
<pre class='command'>
-<em>*% Base JCL key code option</em>
+<em>*% Base JCL key code option</em>
*JCLOpenUI JCLPasscode/Key Code: PickOne
*OrderDependency: 10 JCLSetup *JCLPasscode
*DefaultJCLPasscode: None
*JCLPasscode 3333: "@PJL SET PASSCODE = 3333<0A>"
*JCLCloseUI: *JCLPasscode
-<em>*% Custom JCL key code option</em>
+<em>*% Custom JCL key code option</em>
*CustomJCLPasscode True: "@PJL SET PASSCODE = \1<0A>"
*ParamCustomJCLPasscode Code/Key Code: 1 passcode 4 4
*ParamCustomWatermarkText Text: 1 string 0 32
-<em>*% Base PostScript gamma/density option</em>
+<em>*% Base PostScript gamma/density option</em>
*OpenUI GammaDensity/Gamma and Density: PickOne
*OrderDependency: 10 AnySetup *GammaDensity
*DefaultGammaDensity: Normal
*GammaDensity Dark/Darker: "<</cupsReal1 1.1/cupsReal2 1.5>>setpagedevice"
*CloseUI: *GammaDensity
-<em>*% Custom PostScript gamma/density option</em>
+<em>*% Custom PostScript gamma/density option</em>
*CustomGammaDensity True: "<</cupsReal1 3 -1 roll/cupsReal2 5 -1>>setpagedevice"
*ParamCustomGammaDensity Gamma: 1 curve 0.1 10
*ParamCustomGammaDensity Density: 2 real 0 2
<p>Examples:</p>
<pre class='command'>
-<em>*% Flip the page image for the back side of duplexed output</em>
+<em>*% Flip the page image for the back side of duplexed output</em>
*cupsBackSide: Flipped
-<em>*% Rotate the page image for the back side of duplexed output</em>
+<em>*% Rotate the page image for the back side of duplexed output</em>
*cupsBackSide: Rotated
</pre>
<p>Example:</p>
<pre class='command'>
-<em>*% Specify the list of commands we support</em>
+<em>*% Specify the list of commands we support</em>
*cupsCommands: "AutoConfigure Clean PrintSelfTestPage ReportLevels com.vendor.foo"
</pre>
<p>Example:</p>
<pre class='command'>
-<em>*% Always send an even number of pages when duplexing</em>
+<em>*% Always send an even number of pages when duplexing</em>
*cupsEvenDuplex: true
</pre>
<p>Examples:</p>
<pre class='command'>
-<em>*% Standard raster printer driver filter</em>
+<em>*% Standard raster printer driver filter</em>
*cupsFilter: "application/vnd.cups-raster 100 rastertofoo"
-<em>*% Plain text filter</em>
+<em>*% Plain text filter</em>
*cupsFilter: "text/plain 10 texttofoo"
-<em>*% Pass-through filter for PostScript printers</em>
+<em>*% Pass-through filter for PostScript printers</em>
*cupsFilter: "application/vnd.cups-postscript 0 -"
</pre>
+<h3><a name='cupsFilter2'>cupsFilter2</a></h3>
+
+<p class='summary'>*cupsFilter2: "source/type destination/type cost program"</p>
+
+<p>This string keyword provides a conversion rule from the given source type to the printer's native format using the filter "program". If a printer supports the source type directly, the special filter program "-" may be specified. The destination type is automatically created as needed and is passed to the filters and backend as the FINAL_CONTENT_TYPE value.</p>
+
+<p>Examples:</p>
+
+<pre class='command'>
+<em>*% Standard raster printer driver filter</em>
+*cupsFilter2: "application/vnd.cups-raster application/vnd.foo 100 rastertofoo"
+
+<em>*% Plain text filter</em>
+*cupsFilter2: "text/plain application/vnd.foo 10 texttofoo"
+
+<em>*% Pass-through filter for PostScript printers</em>
+*cupsFilter2: "application/vnd.cups-postscript application/postscript 0 -"
+</pre>
+
<h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
<p class='summary'>*cupsFlipDuplex: boolean</p>
*End
</pre>
+<h3><span class='info'>CUPS 1.5</span><a name='cupsIPPSupplies'>cupsIPPSupplies</a></h3>
+
+<p class='summary'>*cupsIPPSupplies: boolean</p>
+
+<p>This keyword tells the IPP backend whether it should report the current marker-xxx supply attribute values. The default value is <code>True</code>.
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Do not use IPP marker-xxx attributes to report supply levels</em>
+*cupsIPPSupplies: False
+</pre>
+
<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
<p class='summary'>*cupsLanguages: "locale list"</p>
<p>Example:</p>
<pre class='command'>
-<em>*% Specify Canadian, UK, and US English, and Candian and French French</em>
+<em>*% Specify Canadian, UK, and US English, and Candian and French French</em>
*cupsLanguages: "en_CA en_UK en_US fr_CA fr_FR"
</pre>
<p>Example:</p>
<pre class='command'>
-<em>*% Tell the RIP filters to generate the copies for us</em>
+<em>*% Tell the RIP filters to generate the copies for us</em>
*cupsManualCopies: true
</pre>
<p>Example:</p>
<pre class='command'>
-<em>*% Specify an integer for a driver-specific model number</em>
+<em>*% Specify an integer for a driver-specific model number</em>
*cupsModelNumber: 1234
</pre>
*cupsPortMonitor socket/AppSocket Printing: "tbcp"
*cupsPortMonitor usb/USB Printing: "none"
-<em>*% Specify a printer-specific port monitor for an Epson USB printer</em>
+<em>*% Specify a printer-specific port monitor for an Epson USB printer</em>
*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
</pre>
<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
<p>This string keyword provides a pre-filter rule. The pre-filter
-program will be inserted in the conversion chain immediately
+program will be inserted in the conversion chain immediately
before the filter that accepts the given MIME type.</p>
<p>Examples:</p>
<p>Example:</p>
<pre class='command'>
-<em>*% Specify a CUPS 1.2 driver</em>
+<em>*% Specify a CUPS 1.2 driver</em>
*cupsVersion: "1.2"
</pre>
<em>*% Rotate the back side images</em>
*cupsBackSide: Rotated
-<em>*% Don't swap the top and bottom margins for the back side</em>
+<em>*% Don't swap the top and bottom margins for the back side</em>
*APDuplexRequiresFlippedMargin: false
</pre>