*PPD-Adobe: "4.3"
*% ****************************************************************************
*% File:     @(#)$Id: gs-pcl3-unspec.ppd,v 1.5 2001/03/29 14:50:08 Martin Rel $
*% Contents: PPD file for the ghostscript device "unspec" of the pcl3 driver
*% Author:   Martin Lottermoser, Greifswaldstrasse 28, 38124 Braunschweig,
*%           Germany; Martin.Lottermoser@t-online.de
*%
*% ****************************************************************************
*%
*%	Copyright (C) 2001 Martin Lottermoser
*%	All rights reserved
*%
*% ****************************************************************************
*%
*% Note: This file tries to permit a lot but does not permit everything. If you
*% need to use the "unspec" subdevice, you should consider creating a
*% customized PPD file reflecting your printer's actual capabilities.
*%
*% ****************************************************************************

*% Required general information keywords

*FileVersion: "1.1"
*FormatVersion: "4.3"
*LanguageEncoding: ISOLatin1
*LanguageVersion: English
*ModelName: "ghostscript/pcl3/unspec"
*ShortNickName: "ghostscript/pcl3/unspec"
*NickName: "ghostscript/pcl3/unspec"
*PCFileName: "PCL3UNSP.PPD"

*% *Product, *PSVersion and *Manufacturer are assumed to be included via
*% gs-pcl3-common.ppd.

*% ****************************************************************************

*% Device selection
*GhostscriptOptions: "-sDEVICE=pcl3 -sSubdevice=unspec"

*% ****************************************************************************

*% Rendering capabilities

*ColorDevice: True

*OpenUI *ColorModel: PickOne
*OrderDependency: 20 AnySetup *ColorModel
*DefaultColorModel: Gray
*ColorModel Gray: "(<<) cvx exec /ColourModel (Gray) (>>) cvx exec setpagedevice"
*ColorModel RGB: "(<<) cvx exec /ColourModel (RGB) (>>) cvx exec setpagedevice"
*ColorModel CMY: "(<<) cvx exec /ColourModel (CMY) (>>) cvx exec setpagedevice"
*ColorModel CMY+K: "(<<) cvx exec /ColourModel (CMY+K) (>>) cvx exec setpagedevice"
*ColorModel CMYK: "(<<) cvx exec /ColourModel (CMYK) (>>) cvx exec setpagedevice"
*CloseUI *ColorModel

%==============================================================================

*% Resolution. Actually, unspec permits any resolution but I've listed only
*% those which I currently know to be supported on at least one printer.

*OpenUI *Resolution: PickOne
*DefaultResolution: 300x300dpi
*OrderDependency: 50 AnySetup *Resolution
*Resolution     75x75dpi: "(<<) cvx exec /HWResolution [  75   75] (>>) cvx exec setpagedevice"
*Resolution   100x100dpi: "(<<) cvx exec /HWResolution [ 100  100] (>>) cvx exec setpagedevice"
*Resolution   150x150dpi: "(<<) cvx exec /HWResolution [ 150  150] (>>) cvx exec setpagedevice"
*Resolution   300x300dpi: "(<<) cvx exec /HWResolution [ 300  300] (>>) cvx exec setpagedevice"
*Resolution   600x300dpi: "(<<) cvx exec /HWResolution [ 600  300] (>>) cvx exec setpagedevice"
*Resolution   600x600dpi: "(<<) cvx exec /HWResolution [ 600  600] (>>) cvx exec setpagedevice"
*Resolution 1200x1200dpi: "(<<) cvx exec /HWResolution [1200 1200] (>>) cvx exec setpagedevice"
*CloseUI *Resolution

%==============================================================================

*% Intensity levels. Again, this is merely a selection of values known to be
*% supported on at least one printer.

*OpenUI *eprnBlackLevels/Black levels: PickOne
*OrderDependency: 50 AnySetup *eprnBlackLevels
*DefaulteprnBlackLevels: Automatic
*eprnBlackLevels Automatic: ""
*eprnBlackLevels 0: "(<<) cvx exec /BlackLevels 0 (>>) cvx exec setpagedevice"
*eprnBlackLevels 2: "(<<) cvx exec /BlackLevels 2 (>>) cvx exec setpagedevice"
*eprnBlackLevels 4: "(<<) cvx exec /BlackLevels 4 (>>) cvx exec setpagedevice"
*CloseUI *eprnBlackLevels

*OpenUI *eprnNonBlackLevels/CMY levels: PickOne
*OrderDependency: 50 AnySetup *eprnNonBlackLevels
*DefaulteprnNonBlackLevels: Automatic
*eprnNonBlackLevels Automatic: ""
*eprnNonBlackLevels 0: "(<<) cvx exec /CMYLevels 0 (>>) cvx exec setpagedevice"
*eprnNonBlackLevels 2: "(<<) cvx exec /CMYLevels 2 (>>) cvx exec setpagedevice"
*eprnNonBlackLevels 3: "(<<) cvx exec /CMYLevels 3 (>>) cvx exec setpagedevice"
*eprnNonBlackLevels 4: "(<<) cvx exec /CMYLevels 4 (>>) cvx exec setpagedevice"
*CloseUI *eprnNonBlackLevels

*% BlackLevels and colour model must be consistent
*UIConstraints: *ColorModel Gray *eprnBlackLevels 0
*UIConstraints: *eprnBlackLevels 0 *ColorModel Gray
*UIConstraints: *ColorModel CMY *eprnBlackLevels 2
*UIConstraints: *eprnBlackLevels 2 *ColorModel CMY
*UIConstraints: *ColorModel CMY *eprnBlackLevels 4
*UIConstraints: *eprnBlackLevels 4 *ColorModel CMY
*UIConstraints: *ColorModel CMY+K *eprnBlackLevels 0
*UIConstraints: *eprnBlackLevels 0 *ColorModel CMY+K
*UIConstraints: *ColorModel CMYK *eprnBlackLevels 0
*UIConstraints: *eprnBlackLevels 0 *ColorModel CMYK

*% NonBlackLevels and colour model must be consistent
*UIConstraints: *ColorModel Gray *eprnNonBlackLevels 2
*UIConstraints: *eprnNonBlackLevels 2 *ColorModel Gray
*UIConstraints: *ColorModel Gray *eprnNonBlackLevels 3
*UIConstraints: *eprnNonBlackLevels 3 *ColorModel Gray
*UIConstraints: *ColorModel Gray *eprnNonBlackLevels 4
*UIConstraints: *eprnNonBlackLevels 4 *ColorModel Gray
*UIConstraints: *ColorModel CMY *eprnNonBlackLevels 0
*UIConstraints: *eprnNonBlackLevels 0 *ColorModel CMY
*UIConstraints: *ColorModel CMY+K *eprnNonBlackLevels 0
*UIConstraints: *eprnNonBlackLevels 0 *ColorModel CMY+K
*UIConstraints: *ColorModel CMYK *eprnNonBlackLevels 0
*UIConstraints: *eprnNonBlackLevels 0 *ColorModel CMYK

*% More than two intensity levels are not possible with RGB.
*UIConstraints: *ColorModel RGB *eprnBlackLevels 4
*UIConstraints: *eprnBlackLevels 4 *ColorModel RGB
*UIConstraints: *ColorModel RGB *eprnNonBlackLevels 3
*UIConstraints: *eprnNonBlackLevels 3 *ColorModel RGB
*UIConstraints: *ColorModel RGB *eprnNonBlackLevels 4
*UIConstraints: *eprnNonBlackLevels 4 *ColorModel RGB

*% ****************************************************************************

*% Information on page sizes. These entries assume that you are not using a
*% media configuration file.

*OpenUI *PageSize: PickOne
*OrderDependency: 50 AnySetup *PageSize
*DefaultPageSize: Unknown
*PageSize Letter: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice letter"
*PageSize Legal: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice legal"
*PageSize Executive: "(<<) cvx exec /PageSize [522 756] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize A4: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice a4"
*PageSize A5: "(<<) cvx exec /PageSize [420 595] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize JISB5: "(<<) cvx exec /PageSize [516 729] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize Index4x6in: "(<<) cvx exec /PageSize [288 432] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize Index5x8in: "(<<) cvx exec /PageSize [360 576] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize A6Card: "(<<) cvx exec /PageSize [298 420] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize Postcard: "(<<) cvx exec /PageSize [283 420] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize Env10: "(<<) cvx exec /PageSize [297 684] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize EnvDL: "(<<) cvx exec /PageSize [312 624] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageSize EnvC6: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice c6"
*?PageSize: "save /PageSizeQuery /ProcSet resourcestatus
  { pop pop /PageSizeQuery /ProcSet findresource begin query end }
  { (Unknown) }
  ifelse
  = flush restore"
*End
*CloseUI *PageSize

*OpenUI *PageRegion: PickOne
*OrderDependency: 50 AnySetup *PageRegion
*DefaultPageRegion: Unknown
*PageRegion Letter: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice letter"
*PageRegion Legal: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice legal"
*PageRegion Executive: "(<<) cvx exec /PageSize [522 756] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion A4: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice a4"
*PageRegion A5: "(<<) cvx exec /PageSize [420 595] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion JISB5: "(<<) cvx exec /PageSize [516 729] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion Index4x6in: "(<<) cvx exec /PageSize [288 432] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion Index5x8in: "(<<) cvx exec /PageSize [360 576] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion A6Card: "(<<) cvx exec /PageSize [298 420] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion Postcard: "(<<) cvx exec /PageSize [283 420] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion Env10: "(<<) cvx exec /PageSize [297 684] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion EnvDL: "(<<) cvx exec /PageSize [312 624] /ImagingBBox null (>>) cvx exec setpagedevice"
*PageRegion EnvC6: "(<<) cvx exec /ImagingBBox null (>>) cvx exec setpagedevice c6"
*CloseUI *PageRegion

*% The *DefaultImageableArea keyword is assumed to be found somewhere else.
*ImageableArea Letter: "19 34 593 789"
*ImageableArea Legal: "19 34 593 1005"
*ImageableArea Executive: "19 34 503 753"
*ImageableArea A4: "10 34 585 839"
*ImageableArea A5: "10 34 409 592"
*ImageableArea JISB5: "10 34 506 725"
*ImageableArea Index4x6in: "10 34 278 429"
*ImageableArea Index5x8in: "10 34 350 573"
*ImageableArea A6Card: "10 34 288 416"
*ImageableArea Postcard: "10 34 274 416"
*ImageableArea Env10: "10 63 287 681"
*ImageableArea EnvDL: "10 63 302 620"
*ImageableArea EnvC6: "10 63 314 456"

*% ============================================================================

*% Custom page size information

*LeadingEdge Short: ""
*DefaultLeadingEdge: Short

*MaxMediaWidth: "524287"
*MaxMediaHeight: "524287"
*ParamCustomPageSize Width: 2 points 6 524287
*ParamCustomPageSize Height: 3 points 6 524287
*ParamCustomPageSize WidthOffset: 4 points 0 0
*ParamCustomPageSize HeightOffset: 5 points 0 0
*ParamCustomPageSize Orientation: 1 int 0 3
*HWMargins: 10 34 10 3
*CustomPageSize True: "
  pop pop
  2 index 2 mod 0 eq {exch} if
  1 index 1 index gt {2}{3} ifelse
  4 -1 roll add 4 mod
  (<<) cvx exec /PageSize [ 6 -2 roll ]
    /LeadingEdge 5 -1 roll
    % This works only if the interpreter passes this parameter to the device.
    % Ghostscript's setpagedevice definition does not do this by default.
    /ImagingBBox null (>>) cvx exec setpagedevice"
*End
*NonUIOrderDependency: 50 AnySetup *CustomPageSize True

*% ****************************************************************************

*% Overriding definition for media types (see also comments in
*% gs-pcl3-common.ppd)
*% If you are using CUPS, remove the reduced *MediaType list further down after
*% concatenation.

*OpenUI *MediaType: PickOne
*DefaultMediaType: plain
*OrderDependency: 50 AnySetup *MediaType
*MediaType plain/plain paper: "(<<) cvx exec /Medium (plain paper) (>>) cvx exec setpagedevice"
*MediaType bond/bond paper: "(<<) cvx exec /Medium (bond paper) (>>) cvx exec setpagedevice"
*MediaType Premium/HP Premium paper: "(<<) cvx exec /Medium (HP Premium paper) (>>) cvx exec setpagedevice"
*MediaType glossy/glossy paper: "(<<) cvx exec /Medium (glossy paper) (>>) cvx exec setpagedevice"
*MediaType transparency/transparency film: "(<<) cvx exec /Medium (transparency film) (>>) cvx exec setpagedevice"
*MediaType quickglossy/quick dry glossy: "(<<) cvx exec /Medium (quick dry glossy) (>>) cvx exec setpagedevice"
*MediaType quicktransparency/quick dry transparency: "(<<) cvx exec /Medium (quick dry transparency) (>>) cvx exec setpagedevice"
*CloseUI *MediaType

*% ****************************************************************************

*% Duplex

*OpenUI *Duplex: PickOne
*DefaultDuplex: None
*OrderDependency: 50 AnySetup *Duplex
*Duplex None: "(<<) cvx exec /Duplex false (>>) cvx exec setpagedevice"
*Duplex DuplexNoTumble: "(<<) cvx exec
  /PJLLanguage (PCL3GUI)
  /OnlyCRD true
  /DuplexCapability (oppositeLeadingEdge)	% Works for DJ 970C.
  /Duplex true /Tumble false (>>) cvx exec setpagedevice"
*End
*Duplex DuplexTumble: "(<<) cvx exec
  /PJLLanguage (PCL3GUI)
  /OnlyCRD true
  /DuplexCapability (oppositeLeadingEdge)	% Works for DJ 970C.
  /Duplex true /Tumble true (>>) cvx exec setpagedevice"
*End
*CloseUI *Duplex

*% ****************************************************************************

*% If supported, this is the place to add an *OutputBin entry. See the
*% PPD specification and the *InputSlot entry in gs-pcl3-common.ppd.

*% ****************************************************************************

*% Common parts:
*Include: "gs-pcl3-common.ppd"
