*% Copyright 1996 - 2003, Hewlett-Packard Co.
*% All Rights Reserved.

*%-------------------------------------------------------------------------
*% Version Section
*%-------------------------------------------------------------------------
*GPDFileName: "hpw2bc6l.gpd"
*GPDSpecVersion: "1.0"
*GPDFileVersion: "041.237"

*%-------------------------------------------------------------------------
*% Include Section
*%-------------------------------------------------------------------------
*Include: "stdnames.gpd"

*Include: "pclxl.gpd"
*Include: "pjl.gpd"

*Include: "hpzsmlhn.gpd"
*Include: "hpz6mlhn.gpd"

*HelpFile: "hpzhllhn.hlp"               *% Get this from the required phase

*Feature: RESDLL
{
    *Name: "resource dll files"

    *Option: STRRESSEC
    {
        *Name: "hpzstlhn.dll"       *% Get this from the required phase
    }

    *Option: FONTRES
    {
        *Name: "pclxl.dll"          *% MS provided resource DLL
    }
}

*%-------------------------------------------------------------------------
*% Model Name Section
*%-------------------------------------------------------------------------
*ModelName: "HP Business Inkjet 3000 PCL6"

*MasterUnits: PAIR(1200, 1200)

*PrintRate: 10
*PrintRateUnit: PPM
*PrintRatePPM: 10

*PrinterType: PAGE
*Personality: "PCLXL"                   *%=PERSONALITY_PCLXL
*MaxCopies: 999                        *% Refer to product specs 

*FontCartSlots: 0
*TTFSEnabled?: TRUE
*DeviceFonts: =CourierFont
*DefaultFont: =FONT_COURIERR
*TTFS: CourierNew
{
  *TTFontName: "Courier New"
  *DevFontName: "Courier"
}
*MinGlyphID: 1
*MaxGlyphID: 6000

*%-------------------------------------------------------------------------
*% Macros section
*%-------------------------------------------------------------------------

*%-------------------------------------------------------------------------
*% DOC_PROP Standard features section
*%-------------------------------------------------------------------------
*Feature: Resolution
{
    *rcNameID: =IDS_RESOLUTION_DISPLAY
    *DefaultOption: 600dpi

    *Option: 600dpi
    {   
        *rcNameID: =IDS_600DPI
        *DPI: PAIR(600, 600)
        *TextDPI: PAIR(600, 600)
        *MinStripBlankPixels: 32
        EXTERN_GLOBAL: *StripBlanks: LIST(ENCLOSED,TRAILING)
        *SpotDiameter: 100

        *Command: CmdBeginRaster
        {
            *Cmd : =PCLXL_CmdBeginRaster
        }

        *Command: CmdSendBlockData
        {
            *Cmd: =PCLXL_CmdSendBlockData
        }

        *Command: CmdEndRaster
        {
            *Cmd : =EndImage
        }

        *Command: CmdSelect
        {
            *Order: JOB_SETUP.190
            *Cmd: =PJL_RESOLUTION_600 =PJL_ENTER_PCLXL =PCLXL_Protocol3Comment =PCLXL_BeginSession600 =PCLXL_OpenDataSource
        }
    }

    *Option: 300dpi
    {
        *rcNameID: =IDS_300DPI
        *DPI: PAIR(300, 300)
        *TextDPI: PAIR(300, 300)
        *MinStripBlankPixels: 32
        EXTERN_GLOBAL: *StripBlanks: LIST( ENCLOSED,TRAILING)
        *SpotDiameter: 100

        *Command: CmdBeginRaster
        {
            *Cmd : =PCLXL_CmdBeginRaster
        }

        *Command: CmdSendBlockData
        {
            *Cmd : =PCLXL_CmdBeginRaster =PCLXL_CmdSendBlockData
        }

        *Command: CmdEndRaster
        {
            *Cmd : =EndImage
        }

        *Command: CmdSelect
        {
            *Order: JOB_SETUP.190
            *Cmd: =PJL_RESOLUTION_300 =PJL_ENTER_PCLXL =PCLXL_Protocol3Comment =PCLXL_BeginSession300 =PCLXL_OpenDataSource
        }
    }
}

*Feature: Orientation
{
    *rcNameID: =IDS_ORIENTATION_DISPLAY
    *DefaultOption: PORTRAIT
   
    *Option: PORTRAIT
    {
        *rcNameID: =IDS_PORTRAIT_DISPLAY
        *switch: HPOrientRotate180
        {
            *case: False
            {
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
                }
            }
            *case: True
            {
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =eReversePortrait =attr_ubyte =Orientation
                }
            }
        }
    }

    *Option: LANDSCAPE_CC90
    {
        *rcNameID: =IDS_LANDSCAPE_DISPLAY
        *switch: HPOrientRotate180
        {
            *case: False
            {
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
                }
            }
            *case: True
            {
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =eReverseLandscape =attr_ubyte =Orientation
                }
            }
        }
    }
}

*Feature: HPOrientRotate180
{     
    *rcNameID: =IDS_ORIENT_ROTATE_180
    *HelpIndex: =IDH_UNIDRV_PRINT_ROTATED
    *DefaultOption: False
    
    *Option: False
    {
        *rcNameID: =IDS_OFF_DISPLAY
    }

    *Option: True
    {
        *rcNameID: =IDS_ON_DISPLAY
    }
}

*Feature: Duplex
{
    *rcNameID: =IDS_TWO_SIDED_PRINTING_DISPLAY
    *HelpIndex: =IDH_UNIDRV_PRINT_ON_BOTH_SIDES_AUTO
    *ConflictPriority: 4
    *DefaultOption: NONE
    
    *Option: NONE
    {
        *rcNameID: =IDS_NONE
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.80
            *Cmd: "@PJL SET DUPLEX=OFF<0A>"
        }
    }

    *Option: VERTICAL
    {
        *rcNameID: =IDS_FLIP_ON_LONG_EDGE_STANDARD
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.80
            *Cmd: "@PJL SET DUPLEX=ON<0A>@PJL SET BINDING=LONGEDGE<0A>"
        }
    }

    *Option: HORIZONTAL
    {
        *rcNameID: =IDS_FLIP_ON_SHORT_EDGE
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.80
            *Cmd: "@PJL SET DUPLEX=ON<0A>@PJL SET BINDING=SHORTEDGE<0A>"
        }
    }
}

*Feature: PaperSize
{
    *rcNameID: =PAPER_SIZE_DISPLAY
    *HelpIndex: =IDH_UNIDRV_PAPER_SIZE
    *ConflictPriority: 1
    *DefaultOption: LETTER
    
    *Option: LETTER                                 *% physical page (10200, 13200 - 8.5" x 11.0")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            { 
                *PrintableArea: PAIR(9800, 12800)
                *PrintableOrigin: PAIR(200, 200)
                *CursorOrigin: PAIR(200, 200)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sLetterPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(9800, 12800)
                *PrintableOrigin: PAIR(200, 200)
                *CursorOrigin: PAIR(200, 13000)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sLetterPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: LEGAL                                  *% physical page (10200, 16800 - 8.5" x 14.0"))
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(9600, 16056)
                *PrintableOrigin: PAIR(300, 144)
                *CursorOrigin: PAIR(300, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sLegalPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(9600, 16056)
                *PrintableOrigin: PAIR(300, 144)
                *CursorOrigin: PAIR(300, 16200)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sLegalPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((300*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: EXECUTIVE                              *% physical page (8700, 12600 - 7.25" x 10.5"))
    {                                               
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(8098, 11856)
                *PrintableOrigin: PAIR(300, 144)
                *CursorOrigin: PAIR(300, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sExecPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(8098, 11856)
                *PrintableOrigin: PAIR(300, 144)
                *CursorOrigin: PAIR(300, 12000)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sExecPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((300*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: A4                                      *% physical page (9920, 14030 - 8.2677" x 11.693")
    {                                                
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(9600, 13286)
                *PrintableOrigin: PAIR(161, 144)
                *CursorOrigin: PAIR(161, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sA4Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((161*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(9600, 13286)
                *PrintableOrigin: PAIR(161, 144)
                *CursorOrigin: PAIR(161, 13430)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sA4Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((161*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: ENV_10                                 *% physical page (4948, 11400 - 4.125" x 9.5"))
    {                                               
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *InsertBlock: =DuplexConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(4634, 10200)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 600)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sCOM10Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((600*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4634, 10200)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 10800)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sCOM10Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: ENV_DL                                 *% physical page (5196, 10392 - 4.3307" x 8.6614")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *InsertBlock: =DuplexConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(4884, 9192)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 600)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sDLEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((600*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4884, 9192)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 9792)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sDLEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: ENV_MONARCH                            *% physical page (4648, 9000 - 3.875" x 7.50")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *InsertBlock: =DuplexConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(4338, 7800)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 600)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sMonarchEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((600*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4338, 7800)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 8400)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sMonarchEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: A5                                      *% physical page (6992, 9920 - 5.8268" x 8.2677")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(6680, 9176)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sA5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(6680, 9176)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 9320)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sA5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: B5                                      *% B5 (JIS) physical page (8598, 12140 - 7.1653" x 10.118")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(8286, 11398)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sJB5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(8286, 11396)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 11540)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sJB5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: ENV_C5                                 *% physical page (7652, 10818 - 6.3779" x 9.0157"))
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *InsertBlock: =DuplexConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(7340, 9618)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 600)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sC5Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((600*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(7340, 9618)
                *PrintableOrigin: PAIR(156, 600)
                *CursorOrigin: PAIR(156, 10218)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sC5Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: B5_ISO                                         *% B5 (ISO) physical page (8312, 11808 - 6.9291" x 9.8425")
    {
        *rcNameID: =IDS_B5_DISPLAY
        *PageDimensions: PAIR(8312, 11808)
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(8002, 11064)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sB5ISOPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                 }
             }
             *case: LANDSCAPE_CC90
             {
                *PrintableArea: PAIR(8002, 11064)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 11208)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =ubyte_array =sB5ISOPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                 }
             }
        }
    }

    *Option: A6                                      *% physical page (4956, 6996 - 4.13" x 5.83")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *InsertBlock: =DuplexConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(4648,6248)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 144)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.15
                    *Cmd: =ubyte_array =sA6Card=attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((156*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4648, 6248)
                *PrintableOrigin: PAIR(156, 144)
                *CursorOrigin: PAIR(156, 6392)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.15
                    *Cmd: =ubyte_array =sA6Card =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((156*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *Option: CUSTOMSIZE
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *MinSize: PAIR(4200, 6600)                      *% min page (3.5" x 5.5") - This is the smallest paper supported by the printer

        *%*MaxSize: PAIR(10200, 16800)                  *% actual max page (8.5"x 14") - This is the largest paper supported by the printer

        *MaxSize: PAIR(13200, 20400)                    *% max page (11"x 17") - This is the largest SLP paper supported
        *MaxPrintableWidth: 13200                       *% This corresponds to the X value of the MaxSize keyword
        *MinLeftMargin: 240
        *CenterPrintable?: FALSE
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *CustCursorOriginX:     %d{300}
                *CustCursorOriginY:     %d{144}
                *CustPrintableOriginX:  %d{300}
                *CustPrintableOriginY:  %d{144}
                *CustPrintableSizeX:    %d{PhysPaperWidth - 600}
                *CustPrintableSizeY:    %d{PhysPaperLength - 744}

                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =uint16_xy %l{(PhysPaperWidth*254)/1200}%l{(PhysPaperLength*254)/1200} =attr_ubyte =CustomMediaSize
+                         =ubyte =eTenthsOfAMillimeter =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((144*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
            *case: LANDSCAPE_CC90
            {

                *CustCursorOriginX:     %d{300}
                *CustCursorOriginY:     %d{20256}
                *CustPrintableOriginX:  %d{300}
                *CustPrintableOriginY:  %d{144}
                *CustPrintableSizeX:    %d{PhysPaperWidth - 600}
                *CustPrintableSizeY:    %d{PhysPaperLength - 744}

                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.30
                    *Cmd: =uint16_xy %l{(PhysPaperWidth*254)/1200}%l{(PhysPaperLength*254)/1200} =attr_ubyte =CustomMediaSize
+                         =ubyte =eTenthsOfAMillimeter =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                         =sint16_xy %l{((600*TextXRes)/1200)}%l{((300*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin
                }
            }
        }
    }

    *%  Unsupported Papers for Allow Scaling From Larger Paper (Virtual Paper Sizes)
    *%  No commands are associated with these
    *%  The paper sizes for this printer are A3, B4 (JIS) and 11x17

    *Option: A3                                     *% physical page (14030, 19842 - 11.693" x 16.535")
    {
         *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
         *switch: Orientation
         {
             *case: PORTRAIT
             {
                 *PrintableArea: PAIR(13462, 19442)
                 *PrintableOrigin: PAIR(284, 200)
                 *CursorOrigin: PAIR(284, 200)
             }
             *case: LANDSCAPE_CC90
             {
                 *PrintableArea: PAIR(13630, 19370)
                 *PrintableOrigin: PAIR(200, 236)
                 *CursorOrigin: PAIR(200, 19606)
             }
         }
    }

    *Option: B4                                      *% B4 (JIS) physical page (12140, 17196 - 10.118" x 14.33")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(11572, 16796)
                *PrintableOrigin: PAIR(284, 200)
                *CursorOrigin: PAIR(284, 200)
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(11740, 16724)
                *PrintableOrigin: PAIR(200, 236)
                *CursorOrigin: PAIR(200, 16960)
            }
        }
    }

    *Option: 11X17                                   *% physical page (13200, 20400 - 11.00" x 17.00")
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(12600, 20000)
                *PrintableOrigin: PAIR(300, 200)
                *CursorOrigin: PAIR(300, 200)
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(12800, 19920)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 20160)
            }
        }
    }

    *%  Addition of Unsupported Papers ends here
}

*Feature: InputBin
{
    *rcNameID: =IDS_PAPER_SOURCE
    *HelpIndex: =IDH_UNIDRV_FIRST_PAGE_SOURCE_IS
    *ConflictPriority: 3
    *DefaultOption: PrinterSelect

    *Option: PrinterSelect
    {
        *rcNameID: =IDS_PRINTER_AUTO_SELECT
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.10
            *Cmd: =ubyte =eAutoSelect =attr_ubyte =MediaSource
        }
    }

    *Option: Tray1
    {
        *rcNameID: =IDS_TRAY1
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.10
            *Cmd: =ubyte =eMultiPurposeTray =attr_ubyte =MediaSource
        }
    }

    *Option: Tray2
    {
        *rcNameID: =IDS_TRAY2
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.10
            *Cmd: =ubyte =eUpperCassette =attr_ubyte =MediaSource
        }
    }

    *Option: Tray3
    {
        *rcNameID: =IDS_TRAY3
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.10
            *Cmd: =ubyte =eLowerCassette =attr_ubyte =MediaSource
        }
    }

    *Option: ManualFeed
    {
        *rcNameID: =IDS_MANUAL_FEED_TRAY1
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.10
            *Cmd: =ubyte =eManualFeed =attr_ubyte =MediaSource
        }
    }
}

*Feature: MediaType
{
    *rcNameID: =IDS_MEDIA_TYPE_DISPLAY
    *HelpIndex: =IDH_UNIDRV_FIRST_PAGE_TYPE_IS
    *ConflictPriority: 2
    *DefaultOption: PLAIN

    *Option: PLAIN
    {
        *rcNameID: =IDS_PLAIN_TYPE
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0500>" =ePlain =attr_ubyte =MediaType
        }
    }

    *Option: HP_PREMIUM_PAPER
    {
        *rcNameID: =IDS_HP_PREMIUM_PAPER
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0b00>" =ePremIJ =attr_ubyte =MediaType
        }       
    }

    *Option: HP_PREM_INKJET_HEAVY_WEIGHT_PAPER
    {
        *rcNameID: =IDS_HP_HEAVYWEIGHT_PREMIUM_PAPER
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0b00>" =ePremIJH =attr_ubyte =MediaType
        }
    }

    *Option: HP_PHOTO_QUALITY_PAPER_SEMI_GLOSS
    {
        *rcNameID: =HP_PHOTO_QUALITY_PAPER_SEMI_GLOSS
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0e00>" =ePhotoQualitySemiGloss =attr_ubyte =MediaType
        }
    }

    *Option: HP_PHOTO_QUALITY_PAPER_MATTE
    {
        *rcNameID: =HP_PHOTO_QUALITY_PAPER_MATTE
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0a00>" =ePhotoQualityMatte =attr_ubyte =MediaType
        }
    }

    *Option: HP_EVERYDAY_PHOTO_PAPER_SEMI_GLOSS
    {
        *rcNameID: =IDS_HP_EVERYDAY_PHOTO_PAPER_SEMI_GLOSS
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<1000>" =eEverydayPSG =attr_ubyte =MediaType
        }
    }

    *Option: HP_EVERYDAY_PHOTO_PAPER_MATTE
    {
        *rcNameID: =IDS_HP_EVERYDAY_PHOTO_PAPER_MATTE_FINISH
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0c00>" =eEverydayPM=attr_ubyte =MediaType
        }
    }

    *Option: HP_PREM_TRANSPARENCY
    {
        *rcNameID: =IDS_MTYPE_HP_PREMIUM_TRANS
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0b00>" =ePremTransparency =attr_ubyte =MediaType
        }
    }

    *Option: HP_PREM_PLUS_TRANSPARENCY
    {
        *rcNameID: =IDS_MTYPE_HP_PREMIUM_PLUS_TRANS
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0b00>" =ePremPlusTransparency =attr_ubyte =MediaType
        }
    }

    *Option: HP_PHOTO_PAPER_GLOSSY
    {
        *rcNameID: =IDS_HP_PHOTO_PAPER_GLOSSY_DISPLAY
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0a00>" =ePhotoGloss =attr_ubyte =MediaType
        }
    }

    *Option: HP_PREMIUM_PHOTO_PAPER_GLOSSY
    {
        *rcNameID: =HP_PREMIUM_PHOTO_PAPER_GLOSSY
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0e00>" =ePremPhotoGloss =attr_ubyte =MediaType
        }
    }

    *Option: HP_PREMIUM_PLUS_PHOTO_PAPER_GLOSSY
    {
        *rcNameID: =HP_PREMIUM_PLUS_PHOTO_PAPER_GLOSSY_DISPLAY
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0b00>" =ePremPlusPhotoGloss =attr_ubyte =MediaType
        }
    }

    *Option: HP_PREMIUM_PLUS_PHOTO_PAPER_MATTE
    {
        *rcNameID: =HP_PREMIUM_PLUS_PHOTO_PAPER_MATTE_DISPLAY
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0c00>" =ePremPlusPhotoMatte=attr_ubyte =MediaType
        }
    }

    *Option: HP_COLORFAST_PHOTO_PAPER_GLOSSY
    {
        *rcNameID: =IDS_HP_COLORFAST_PHOTO_PAPER
        *InsertBlock: =DuplexConstraints
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<1100>" =eColorFastPhotoGlossy =attr_ubyte =MediaType
        }
    }

    *Option: HP_PROFESSIONAL_BROCHURE_GLOSSY
    {
        *rcNameID: =IDS_MAXWELL_HP_BROCHURE_GLOSSY_PAPER
        
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0a00>" =eBrochureFlyGloss =attr_ubyte =MediaType
        }
    }

    *Option: HP_PROFESSIONAL_BROCHURE_MATTE
    {
        *rcNameID: =IDS_HP_BROCHURE_MATTE_PAPER
        
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *Cmd: =ubyte_array =uint16 "<0a00>" =eBrochureFlyMatte=attr_ubyte =MediaType
        }
    }

    *%  Addition of User Defined Media Types. These are processed through EAC/BiDi.
    *%  Currently MOMBI supports only upto 5. Also make sure that HPMediaPMLRange feature is also present

    *Option: UserDefinedMedia1
    {
        *Name: " "
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *CallbackID: =CMDCB_USERDEFINED_MEDIA
        }
    }

    *Option: UserDefinedMedia2
    {
        *Name: " "
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *CallbackID: =CMDCB_USERDEFINED_MEDIA
        }
    }

    *Option: UserDefinedMedia3
    {
        *Name: " "
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *CallbackID: =CMDCB_USERDEFINED_MEDIA
        }
    }

    *Option: UserDefinedMedia4
    {
        *Name: " "
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *CallbackID: =CMDCB_USERDEFINED_MEDIA
        }
    }

    *Option: UserDefinedMedia5
    {
        *Name: " "
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.20
            *CallbackID: =CMDCB_USERDEFINED_MEDIA
        }
    }

    *%  End of Addition of User Defined Media Types.
}

*Feature: Collate
{
    *rcNameID: =IDS_COLLATE
    *DefaultOption: OFF

    *Option: OFF
    {
        *rcNameID: =IDS_OFF_DISPLAY
    }

    *Option: ON
    {
        *rcNameID: =IDS_ON_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.90
            *Cmd: "@PJL SET QTY=" %d{NumOfCopies}"<0A>"
        }
        *Constraints: DeviceIsMopier.NotInstalled
    }
}

*Feature: OutputBin
{
    *rcNameID: =IDS_OUTPUTBIN_DISPLAY
    *HelpIndex: =IDH_UNIDRV_OUTPUT_BIN_EC6
    *DefaultOption: Upper

    *Option: Upper
    {
        *rcNameID: =IDS_TOP_BIN_FACE_DOWN
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.100
            *Cmd: "@PJL SET OUTBIN=UPPER<0A>"
        }
    }
}

*Feature: HPAutoDuplexScaling
{
    *rcNameID: =IDS_PRINT_ON_BOTH_SIDES_OPTIONS_DISPLAY
    *HelpIndex: =IDH_PRESERVE_LAYOUT_EC6
    *FeatureType: DOC_PROPERTY
    *DefaultOption: True

    *Option: False
    {
        *rcNameID: =IDS_DONOT_REDUCE_CONTENT_DISPLAY
    }

    *Option: True
    {
        *rcNameID: =IDS_REDUCE_CONTENT_DISPLAY
    }
}

*ChangeColorModeOnDoc?: FALSE
*Feature: ColorMode
{
    *rcNameID: =IDS_COLOR_PRINTING_MODE
    *DefaultOption: 24bpp
    *HelpIndex: =IDH_UNIDRV_COLOR_MODE
    *Option: Mono
    {
        *rcNameID: =IDS_MONOCHROME
        *DevNumOfPlanes: 1
        *DevBPP: 24
        *DrvBPP: 24
        *Color? : FALSE
        *PaletteSize: 1
        *PaletteProgrammable? : TRUE
        *Command: CmdDefinePaletteEntry { *Cmd: "" }
    }
    *Option: 24bpp
    {
        *rcNameID: =IDS_TRUE_COLOR
        *DevNumOfPlanes: 1
        *DevBPP: 24
        *DrvBPP: 24
        *PaletteSize: 256
        *PaletteProgrammable? : TRUE
        *Command: CmdDefinePaletteEntry { *Cmd: "" }
    }
}

*switch: ColorMode
{
    *case: Mono
    {
        *Command: CmdStartPage
        {
            *Order: PAGE_SETUP.90
            *Cmd: =real32_xy "<0000803f><0000803f>" =attr_ubyte =PageScale =SetPageScale
+                 =ubyte =eGray =attr_ubyte =ColorSpace =SetColorSpace
         }
    }
    *case: 24bpp
    {
        *Command: CmdStartPage
        {
            *Order: PAGE_SETUP.90
            *Cmd: =real32_xy "<0000803f><0000803f>" =attr_ubyte =PageScale =SetPageScale
+                 =ubyte =eRGB =attr_ubyte =ColorSpace =SetColorSpace
        }
    }
}

*Feature: TextAsBlack
{
    *rcNameID: =IDS_PRINTALLBLACK
    *FeatureType: DOC_PROPERTY
    *HelpIndex: =IDH_UNIDRV_PRINT_TEXT_BLACK_EC5
    *DefaultOption: False

    *Option: False
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
    }

    *Option: True
    {
        *rcNameID: =IDS_ENABLED_DISPLAY
    }
}

*Feature: TTAsBitmapsSetting
{
    *rcNameID: =IDS_TTASBITMAPS
    *FeatureType: DOC_PROPERTY
    *HelpIndex: =IDH_UNIDRV_TRUETYPE_AS_BITMAP
    *DefaultOption: TTModeOutline

    *Option: TTModeOutline
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
    }

    *Option: TTModeBitmap
    {
        *rcNameID: =IDS_ENABLED_DISPLAY
    }
}

*switch: TTAsBitmapsSetting
{
    *case: TTModeBitmap
    {
        *FontFormat: HPPCL_RES
    }
    *case: TTModeOutline
    {
        *FontFormat: HPPCL_OUTLINE
    }
}

*Feature: JPEGEnable
{
    *rcNameID: =IDS_RASTER_COMPRESSION
    *FeatureType: DOC_PROPERTY
    *HelpIndex: =IDH_RASTER_COMPRESSION_EC6
    *DefaultOption: Best

    *Option: Auto
    {
        *rcNameID: =IDS_AUTOMATIC
    }

    *Option: Best
    {
        *rcNameID: =IDS_BEST_QUALITY
    }

    *Option: Maximum
    {
         *rcNameID: =IDS_MAXIMUM_COMPRESSION
    }
}

*%-------------------------------------------------------------------------
*% PRN_PROP Standard features section
*%-------------------------------------------------------------------------

*Feature: AutoConfiguration
{
    *rcNameID: =IDS_AUTO_CONFIGURATION
    *HelpIndex: =IDH_UPDATE_NOW_EC6
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: NotInstalled

    *Option: NotInstalled
    {
        *rcNameID: =IDS_OFF_DISPLAY
    }
    *Option: Installed
    {
        *rcNameID: =IDS_UPDATE_NOW
    }
}

*Feature: Tray1
{
    *rcNameID: =IDS_TRAY1
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_HP5SI_TRAY
    *DefaultOption: Installed

    *Option: NotInstalled
    {
        *rcNameID: =IDS_NOTINSTALLED
        *Constraints: InputBin.Tray1
    }

    *Option: Installed
    {
        *rcNameID: =IDS_INSTALLED
    }
}

*Feature: Tray3
{
    *rcNameID: =IDS_TRAY3
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_HP5SI_TRAY
    *DefaultOption: Installed

    *Option: NotInstalled
    {
        *rcNameID: =IDS_NOTINSTALLED
        *Constraints: InputBin.Tray3
    }

    *Option: Installed
    {
        *rcNameID: =IDS_INSTALLED
    }
}

*Feature: DuplexUnit
{
    *rcNameID: =IDS_DUPLEX_2_SIDED_PRINTING
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_DUPLEX_UNIT_EC5
    *DefaultOption: NotInstalled

    *Option: NotInstalled
    {
        *rcNameID: =IDS_NOTINSTALLED
        *Constraints: LIST(Duplex.VERTICAL,Duplex.HORIZONTAL)
        *DisabledFeatures: LIST(Duplex)
    }

    *Option: Installed
    {
        *rcNameID: =IDS_INSTALLED
    }
}

*Feature: Memory
{
    *rcNameID: =IDS_PRINTER_MEMORY
    *HelpIndex: =IDH_UNIDRV_HP5SI_MEM
    *DefaultOption: 64MB

    *Option: 64MB
    {
        *rcNameID: =IDS_64_MB
        *MemoryConfigMB: PAIR(64, 6)
    }

    *Option: 96MB
    {
        *rcNameID: =IDS_96_MB
        *MemoryConfigMB: PAIR(96, 22)
    }

    *Option: 128MB
    {
        *rcNameID: =IDS_128_MB
        *MemoryConfigMB: PAIR(128, 38)
    }

    *Option: 160MB
    {
        *rcNameID: =IDS_160_MB
        *MemoryConfigMB: PAIR(160, 54)
    }

    *Option: 192MB
    {
        *rcNameID: =IDS_192_MB
        *MemoryConfigMB: PAIR(192, 70)
    }

    *Option: 224MB
    {
        *rcNameID: =IDS_224_MB
        *MemoryConfigMB: PAIR(224, 86)
    }

    *Option: 256MB
    {
        *rcNameID: =IDS_256_MB
        *MemoryConfigMB: PAIR(256, 102)
    }

    *Option: 288MB
    {
        *rcNameID: =IDS_288_MB
        *MemoryConfigMB: PAIR(288, 118)
    }

    *Option: 320MB
    {
        *rcNameID: =IDS_320_MB
        *MemoryConfigMB: PAIR(320, 134)
    }
}

*Feature: PrinterHardDisk
{
    *rcNameID: =IDS_PRINTERHARDDISK
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_PRINTER_HARD_DISK
    *DefaultOption: NotInstalled

    *Option: NotInstalled
    {
        *rcNameID: =IDS_NOTINSTALLED
    }

    *Option: Installed
    {
        *rcNameID: =IDS_INSTALLED
    }
}

*Feature: JobRetention
{
    *rcNameID: =IDS_JOBR_CB_TITLE
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_JOBRETENTION_PH3
    *DefaultOption: Installed

    *Option: NotInstalled
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
    }

    *Option: Installed
    {
        *rcNameID: =IDS_ENABLED_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.30
            *CallbackID: =CMDCB_JRSTARTDOC
        }
    }
}

*Feature: DeviceIsMopier
{
    *rcNameID:=IDS_MOPIER_MODE
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_MOPIER_ENABLED
    *DefaultOption: Installed
    
    *Option: NotInstalled
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
        *DisabledFeatures: LIST(Collate)
    }
    *Option: Installed
    {
        *rcNameID: =IDS_ENABLED_DISPLAY
        *Constraints: DeviceIsMopier.NotInstalled
    }
}

*%-------------------------------------------------------------------------
*% DOC_PROP Custom features section
*%-------------------------------------------------------------------------

*%  This feature is used for the Print Quality association.
*%  The help index, and option name strings are taken from here and displayed on the HP Paper/Quality tab page
*%  under the Print Quality list box. 
*%  Each of these option selections are associated with a set of other GPD feature selections
*%  (visible or hidden in treeview) using the HP specific XML data file

*% This feature's options varies drastically between LJ and BIJ. Hence both are shown here for clarity

*Feature: PrintQualityGroup
{
    *Name: "PrintQualityGroup"
    *HelpIndex: =IDH_PRINT_QUALITY_IJ_EC6
    *FeatureType: DOC_PROPERTY
    *DefaultOption: PQGroup_3

    *Option: PQGroup_1
    {
        *rcNameID: =IDS_2400_1200_DPI
    }

    *Option: PQGroup_2
    {
        *rcNameID: =IDS_BEST
    }

    *Option: PQGroup_3
    {
        *rcNameID: =IDS_NORMAL
    }

    *Option: PQGroup_4
    {
        *rcNameID: =FAST_DISPLAY
    }
}

*%  Associated feature under PrintQualityGroup.

*Feature: PrintQuality
{
    *rcNameID: =PRINT_QUALITY_DISPLAY
    *FeatureType: DOC_PROPERTY
    *ConflictPriority: 50
    *DefaultOption: Normal

    *Option: FastNormal
    {
        *rcNameID: =IDS_FAST_NORMAL
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.180
            *Cmd: "@PJL SET PRINTQUALITY=DRAFT<0A>"
        }
    }

    *Option: Best
    {
        *rcNameID: =IDS_BEST
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.180
            *Cmd: "@PJL SET PRINTQUALITY=BEST<0A>"
        }
    }

    *Option: Normal
    {
        *rcNameID: =IDS_NORMAL
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.180
            *Cmd: "@PJL SET PRINTQUALITY=NORMAL<0A>"
        }
    }

    *Option: Fast
    {
        *rcNameID: =FAST_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.180
            *Cmd: "@PJL SET PRINTQUALITY=FASTNORMAL<0A>"
        }
    }
}

*%  This feature is used for specifying whether the printer is color or monochrome
*%  Possible values are MONOCHROME_MODE, COLOR_MODE
*%  Based on the color/monochrome support, the Color tab is shown in the HP UI. 
*%  Using this, additional specific processing and switching can also be done in the HP UI and render plug-in modules

*Feature: HPColorMode
{
    *Name: "HPColorMode"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: COLOR_MODE

    *Option: COLOR_MODE
    {
        *Name: "COLOR_MODE"
    }
}


*%  This feature is used for specifying the PDL of the driver. 
*%  Possible values are PDL_PCL3, PDL_PCL5, PDL_PCL6, PDL_PS
*%  Using this, additional specific processing and switching can also be done in the HP UI and render plug-in modules

*Feature: HPPDLType
{
    *Name: "HPPDLType"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: PDL_PCL6

    *Option: PDL_PCL6
    {
        *Name: "PCL 6"
    }
}

*% This feature is used for specifying the encoding supported by the printer
*% Possible values are UTF8, 7 Bit ASCII Encoding, 8 Bit ASCII Encoding and No Encoding
*% Using this, various PJL strings (Job Storage User Names, Job Names etc) can be encoded and sent to the printer

*Feature: HPPJLEncoding
{
    *Name: "HPPJLEncoding"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: UTF8

    *Option: UTF8
    {
        *Name: "UTF8"
    }
}

*% This feature is used for the Job Accounting feature for sending various statistical and metrics data to the printer
*% Possible values are HPJOBACCT_JOBACNT (Job Accounting alone), HPJOBACCT_JOBACNT_TIMESTAMP (Job Accounting and Time Stamp)
*% A callback ID (must be 1) is specified and in the render module, the metrics data is obtained 
*% and sent as PJLs to the printer

*Feature: HPJobAccounting
{
    *Name: "HPJobAccounting"    
    *FeatureType: DOC_PROPERTY

    *Option: HPJOBACCT_JOBACNT_TIMESTAMP
    {
        *Name: "HPJOBACCT_JOBACNT_TIMESTAMP"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *CallbackID: =CMDCB_HPJOBACCOUNT
        }
    }
}

*% This feature is used for the Job By Hob Override feature. Here the user name needs to be sent with every job
*% Possible values are JBJO
*% A callback ID (must be 5) is specified and in the render module, the user name is obtained 
*% and sent as PJLs to the printer

*Feature: HPJobByJobOverride
{
    *Name: "HPJobByJobOverride"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: JBJO

    *Option: JBJO
    {
        *Name: "JBJO"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.40
            *CallbackID: =CMDCB_HPJBJO
        }
    }
}

*% This feature is used for specifying the HP specific XML file name that the printer is using
*% The HP specific XML file is an additional data fle to the UI and render modules. It specifies enhanced data like
*% Print Quality automation, External Quicksets, Media Type Ordering, DMC Install and Upgrade Time events etc
*% The XML file is used only in the read mode dynamically during the UI session

*Feature: HPXMLFileUsed
{
    *Name: "HPXMLFileUsed"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: hpw2bc6l.xml

    *Option: hpw2bc6l.xml
    {
        *Name: "hpw2bc6l.xml"
    }

    *Option: HPXMLFileNameEnd
    {
        *Name: ""
    }
}

*% This feature is used for specifying whether PCL5 pass through support is present in the printer.
*% This feature would only be present in PCL6 drivers since only they support PCL5 passthrough.
*% Only Protcol version 3 and higher printers support PCL5 passthrough

*Feature: HPPCL6PassThrough
{
    *Name: "HPPCL6PassThrough"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: True

    *Option: True
    {
        *Name: "True"
    }    
}

*% This feature is used for enabling smart duplexing on a single page job
*% (i.e not playing the blank side of the page)
*% Required as True for all products

*Feature: HPSmartDuplexSinglePageJob
{
    *Name: "HPSmartDuplexSinglePageJob"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: True

    *Option: True
    {
        *Name: "True"
    }
}

*% This feature is used for enabling smart duplexing on odd page job and improving duplex performance for the same
*% Option is printer model dependent. False if model does not support this and True otherwise

*Feature: HPSmartDuplexOddPageJob
{
    *Name: "HPSmartDuplexOddPageJob"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: False
    
    *Option: False
    {
        *Name: "False"
    }
}

*%  Poster Printing feature. Currently used only in BIJ and DJ.

*Feature: HPPosterPrinting
{
    *rcNameID: =IDS_POSTER_PRINTING
    *FeatureType: DOC_PROPERTY
    *HelpIndex: =IDH_POSTER_NUP_EC6
    *DefaultOption: False

    *Option: False
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
    }

    *Option: True
    {
        *rcNameID: =IDS_ENABLED_DISPLAY
    }
}

*%  Poster Printing options.
*%  Read in UI module and appended to the N-Up (Pages Per Sheet) combo box on the Finishing tab

*Feature: HPPosterPrintingOption
{
    *rcNameID: =IDS_POSTER_PRINTING
    *FeatureType: DOC_PROPERTY
    *DefaultOption: POSTER_2
 
    *Option: POSTER_2
    {
        *rcNameID: =IDS_POSTER_PRINTING_2X2
    }

    *Option: POSTER_3
    {
        *rcNameID: =IDS_POSTER_PRINTING_3X3
    }

    *Option: POSTER_4
    {
        *rcNameID: =IDS_POSTER_PRINTING_4X4
    }

    *Option: POSTER_5
    {
        *rcNameID: =IDS_POSTER_5X5
    }
}

*%  Poster Printing Tile Selection enabler
*%  Read in UI module and Tile Selection shown if True

*Feature: HPTilingSelection
{
    *Name: "HPTilingSelection"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: True

    *Option: True
    {
        *Name: ""
    }

    *Option: False
    {
        *Name: ""
    }    
}

*%  HPCovers custom feature
*%  Mandatory for models supporting Use Different Paper from 03Q3 level onwards.
*%  This feature defines the list of options that will appear in the List Box on the Paper/Quality tab page
*%  Additional feeder options are used for processing the Cover Sheet options for Digital Copiers

*Feature: HPCovers
{
    *Name: "HPCovers"
    *FeatureType: DOC_PROPERTY
    *ConflictPriority: 6
    *DefaultOption: Other_Pages

    *Option: Front_Cover
    {
        *rcNameID: =IDS_FRONT_DOVER
    }

    *Option: First_Page
    {
        *rcNameID: =IDS_STA_FIRST_PAGE
    }

    *Option: Other_Pages
    {
        *rcNameID: =IDS_MEDIA_LB_OTHER_PAGES
    }

    *Option: Last_Page
    {
        *rcNameID: =IDS_LAST_PAGE
    }

    *Option: Back_Cover
    {
        *rcNameID: =IDS_BACK_COVER
    }
}

*%-------------------------------------------------------------------------
*% PRN_PROP Custom features section
*%-------------------------------------------------------------------------

*%  Job Storage custom feature
*%  JRConstraints will have an option value for full, none or partial
*%  (1) JRCHDFull - the printer requires a Hard Disk for ALL JR options
*%  (2) JRCHDPartial - the printer requires a HardDisk only for SOME JR options.
*%  (3) JRCHDNone - the printer does NOT require a HardDisk for ANY JR options

*Feature: JRConstraints
{
    *Name: "JRConstraints"
    *FeatureType: DOC_PROPERTY
    *DefaultOption: JRCHDFull

    *Option: JRCHDFull
    {
        *Name: "JRCHDFull"
    }
    *Option: JRCJobRet
    {
        *Name: "JRCJobRet"
    }
    *Option: 0
    {
        *Name: "0"
    }
}

*% This feature is used for specifying the Support for Larger paper (SLP) feature which allows the user to select a paper
*% size larger than what the printer supports and still print that onto a supported (mapped) paper without any page reflow
*% in the document at the application side
*% Currently, this feature is either always supported for printers or not suppoted at all. 
*% This means that this feature is not user modifiable and has no UI exposure
*% To support SLP, define this feature with *DefaultOption: Installed
*% To remove SLP support, define this feature with *DefaultOption: NotInstalled or do not define the feature

*Feature: ScaleFromLargePaper
{    
    *rcNameID: =IDS_LARGE_PAPER_SUPPORT    
    *FeatureType: PRINTER_PROPERTY
    *HelpIndex: =IDH_UNIDRV_LARGER_PAPER
    *DefaultOption: Installed

    *Option: NotInstalled
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
    }

    *Option: Installed
    {
        *rcNameID: =IDS_ENABLED_DISPLAY
    }
}

*% This feature is used in conjunction with the ScaleFromLargePaper above. It should be present only if 
*% ScaleFromLargePaper above is present. This specifies the Actual (supported) MaxSize dimensions of the printer
*% since the *MaxSize keyword dimensions have been specified as the maximum larger (SLP) paper
*% Specify the option name as X_Y whre X and Y are the width and height of the paper in "tens of mm"

*Feature: ActualCustomRange
{
    *Name: "Actual Custom Range"
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: 215900_355600

    *Option: 215900_355600
    {
        *Name: "215900_355600"
    }
}

*% This feature is used for the "Combine Media Types and Sources in the application list" feature
*% This feature is currently not shown in the treeview because of Unidrv limitations. 
*% So in any product, this feature is either always present as installed or always present as Not Installed

*Feature: CombineMediaTypesAndInputBins
{
    *rcNameID: =IDS_COMBINE_SOURCE_TYPE
    *FeatureType: PRINTER_PROPERTY 
    *HelpIndex: =IDH_UNIDRV_COMBINE_SOURCE_TYPE
    *DefaultOption: NotInstalled
    
    *Option: NotInstalled
    {
        *rcNameID: =IDS_DISABLED_DISPLAY
    }
}

*%  EAC custom feature
*%  This feature is used to get the Feature Name of the Installable Tray. 
*%  Since all Installable Input Trays are separate GPD features,
*%  a separate custom feature is required to get all the Instalable Input Tray names
*%  This printer has 3 installable trays - EnvFeeder, Tray3 and Tray4

*% Verify that each Installable Tray option corresponds to an option here 

*Feature: HPInstallableTrayFeatureName
{
    *Name: "HPInstallableTrayFeatureName"
    *FeatureType: PRINTER_PROPERTY

    *Option: Tray1
    {
         *Name: ""
    }

    *Option: Tray3
    {
         *Name: ""
    }
}

*%  EAC custom feature
*%  This feature is used to get the part number of each Installable Tray so that mapping with the PML values can be done

*% Verify that each Installable Tray option having PML specification as part number multiple corresponds to an option here 

*Feature: HPInstallableTrayName
{
     *Name: "HPInstallableTrayName"
     *FeatureType: PRINTER_PROPERTY

     *Option: Tray1-C8227A
     {
          *Name: ""
     }

     *Option: Tray3-C8226A
     {
          *Name: ""
     }

}

*% This feature is used for specifying if the HP custom font installer is to be used

*Feature: HPFontInstaller
{
    *Name: "HPFontInstaller"
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: TRUE

    *Option: TRUE
    {
        *Name: ""
    }
}

*%  This feature is used for specifying the range of User Defined Media types. 
*%  This range is used to construct the command sent to the printer for user defined media types

*Feature: HPMediaPMLRange
{
    *Name: "HPMediaPMLRange"
    *FeatureType: PRINTER_PROPERTY

    *Option: 18-22
    {
         *Name: "18-22"
    }
}

*%-------------------------------------------------------------------------
*% Constraints section
*%-------------------------------------------------------------------------

*InvalidCombination: LIST(JobRetention.Installed, PrinterHardDisk.NotInstalled)

*%-------------------------------------------------------------------------
*% Commands section
*%-------------------------------------------------------------------------

*%  Job and page commands

*Command: CmdStartJob
{
    *Order: JOB_SETUP.1
    *Cmd: =PJL_STARTJOB =PJL_COMMENT 
}

*Command: CmdEndJob
{
    *Order: JOB_FINISH.1
    *Cmd: =CloseDataSource =EndSession =PJL_ENDJOB
}

*%  Cursor commands

*Command: CmdCR { *Cmd: "" }
*Command: CmdLF { *Cmd: "" }
*Command: CmdFF { *Cmd: "" }
*Command: CmdXMoveAbsolute
{
    *Cmd: ""
}
*Command: CmdXMoveRelRight
{
    *Cmd: ""
    *Params: LIST(DestXRel, TextXRes)
}
*Command: CmdXMoveRelLeft
{
    *Cmd: ""
    *Params: LIST(DestXRel, TextXRes)
}
*Command: CmdYMoveAbsolute
{
    *Cmd: ""
    *Params: LIST(DestY, TextYRes)
}
*Command: CmdYMoveRelDown
{
    *Cmd: ""
    *Params: LIST(DestYRel, TextYRes)
}
*Command: CmdYMoveRelUp
{
    *Cmd: ""
    *Params: LIST(DestYRel, TextYRes)
}

*% Font commands

*Command: CmdSetFontID
{
    *Cmd : ""
}
*Command: CmdSelectFontID
{
    *Cmd: ""
    *Params: LIST(FontHeight, CurrentFontID, TextYRes)
}
*Command: CmdSetCharCode
{
    *Cmd : ""
}
*Command: CmdBoldOn
{
    *Cmd : ""
}
*Command: CmdBoldOff
{
    *Cmd : ""
}
*Command: CmdSetAnyRotation
{
    *Cmd: ""
    *Params: LIST(PrintDirInCCDegrees)
}
*Command: CmdSetSimpleRotation
{
    *Cmd: ""
    *Params: LIST(PrintDirInCCDegrees)
}

*%-------------------------------------------------------------------------
*% Render standard keywords section
*%-------------------------------------------------------------------------

*CharPosition: BASELINE     *% character positioning keyword must be present even if device font are not present
*RotateCoordinate?: TRUE
*RotateRaster?: TRUE
*RotateFont?: TRUE
*EjectPageWithFF?: FALSE
*TextCaps: LIST(TC_CR_ANY,TC_CR_90,TC_SF_X_YINDEP,TC_SA_CONTIN,TC_IA_ABLE,TC_UA_ABLE)
*MemoryUsage: LIST(FONT)
*CursorXAfterCR: AT_PRINTABLE_X_ORIGIN
*CursorXAfterSendBlockData: AT_GRXDATA_ORIGIN
*CursorYAfterSendBlockData: AUTO_INCREMENT
*BadCursorMoveInGrxMode: LIST(X_PORTRAIT,Y_LANDSCAPE)
*XMoveThreshold: 0
*YMoveThreshold: 0
*XMoveUnit: 1200
*YMoveUnit: 1200
