Sample Code
Windows Driver Samples/ OEM Printer Customization Plug-in Samples/ C++/ gdl/ res/ gdlsmpl.gpd/
*GPDFileName: "gdlsmpl.gpd" *GPDFileVersion: "1.0" *GPDSpecVersion: "1.0" *Include: "StdNames.gpd" *ModelName: "OEM Unidrv GDL Sample" *MasterUnits: PAIR(1200, 1200) *ResourceDLL: "unires.dll" *PrinterType: PAGE *MaxCopies: 99 *PrintRate: 16 *PrintRateUnit: PPM *PrintRatePPM: 16 *% *% This line indicates which file the GDL parser should use to find Bidi information. *% This is also the same file that will be parser when querying the GDL via *% IPrintCoreHelperUni. GDL is compatible with GPD syntax, and this can be the driver's *% GPD file, whis is what this sample does. *% *BidiQueryFile: "gdlsmpl.gpd" *%****************************************************************************************** *% Orientation *%****************************************************************************************** *Feature: Orientation { *rcNameID: =ORIENTATION_DISPLAY *DefaultOption: PORTRAIT *Option: PORTRAIT { *rcNameID: =PORTRAIT_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.6 *Cmd: "<1B>&l0O" } } *Option: LANDSCAPE_CC90 { *rcNameID: =LANDSCAPE_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.8 *Cmd: "<1B>&l1O" } } } *%****************************************************************************************** *% Input Bin *%****************************************************************************************** *Feature: InputBin { *rcNameID: =PAPER_SOURCE_DISPLAY *DefaultOption: AUTO *Option: AUTO { *rcNameID: =AUTO_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.11 *Cmd: "<1B>&l0H" } } *Option: UPPER { *rcNameID: =UPPER_TRAY_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.11 *Cmd: "<1B>&l1H" } } } *%****************************************************************************************** *% Resolution *%****************************************************************************************** *Feature: Resolution { *rcNameID: =RESOLUTION_DISPLAY *DefaultOption: 300dpi *Option: 300dpi { *Name: "300 x 300" =DOTS_PER_INCH *DPI: PAIR(300, 300) *TextDPI: PAIR(300, 300) *MinStripBlankPixels: 32 EXTERN_GLOBAL: *StripBlanks: LIST(ENCLOSED, TRAILING) *SpotDiameter: 100 *Command: CmdBeginRaster { *Cmd : "<1B>*v7S<1B>*r1A" } *Command: CmdEndRaster { *Cmd : "<1B>*rC" } *Command: CmdSendBlockData { *Cmd : "<1B>*b" %d{NumOfDataBytes}"W" } *Command: CmdSelect { *Order: DOC_SETUP.7 *Cmd: "@PJL SET RESOLUTION=300<0A>@PJL ENTER LANGUAGE=PCL<0A0D1B>E<1B>*t300R" } } } *%****************************************************************************************** *% HP-GL/2 Graphics Support *%****************************************************************************************** *Ifdef: WINNT_51 *Personality: =PERSONALITY_HPGL2 *Feature: GraphicsMode { *rcNameID: =GRAPHICSMODE_DISPLAY *DefaultOption: HPGL2MODE *Option: HPGL2MODE { *rcNameID: =GRAPHICSMODE_HPGL2_DISPLAY } *Option: RASTERMODE { *rcNameID: =GRAPHICSMODE_RASTER_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.5 *Cmd: "@PJL SET LIMAGEENHANCE=OFF<0A>" } } } *Endif: *%****************************************************************************************** *% Paper Size *%****************************************************************************************** *Feature: PaperSize { *rcNameID: =PAPER_SIZE_DISPLAY *DefaultOption: LETTER *Option: LETTER { *rcNameID: =RCID_DMPAPER_SYSTEM_NAME *PageProtectMem: 1028 *switch: Orientation { *case: PORTRAIT { *PrintableArea: PAIR(9500, 12500) *PrintableOrigin: PAIR(400, 400) *CursorOrigin: PAIR(300, 300) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l2a8c1E<1B>*p0x0Y<1B>*c0t5260x7704Y" } } *case: LANDSCAPE_CC90 { *PrintableArea: PAIR(9500, 12200) *PrintableOrigin: PAIR(450, 300) *CursorOrigin: PAIR(200, 12900) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l2a8c1E<1B>*p0x0Y<1B>*c0t7332x5880Y" } } } } *Option: LEGAL { *rcNameID: =RCID_DMPAPER_SYSTEM_NAME *PageProtectMem: 1692 *switch: Orientation { *case: PORTRAIT { *PrintableArea: PAIR(9000, 15500) *PrintableOrigin: PAIR(400, 600) *CursorOrigin: PAIR(180, 300) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l3a8c1E<1B>*p0x0Y<1B>*c0t5880x8900Y" } } *case: LANDSCAPE_CC90 { *PrintableArea: PAIR(9000, 15500) *PrintableOrigin: PAIR(400, 900) *CursorOrigin: PAIR(180, 16500) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l3a8c1E<1B>*p0x0Y<1B>*c0t8900x5880Y" } } } } *Option: EXECUTIVE { *rcNameID: =RCID_DMPAPER_SYSTEM_NAME *PageProtectMem: 4109 *switch: Orientation { *case: PORTRAIT { *PrintableArea: PAIR(8100, 11500) *PrintableOrigin: PAIR(300, 300) *CursorOrigin: PAIR(300, 200) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l1a8c1E<1B>*p0x0Y<1B>*c0t4860x7344Y" } } *case: LANDSCAPE_CC90 { *PrintableArea: PAIR(8300, 11500) *PrintableOrigin: PAIR(200, 300) *CursorOrigin: PAIR(200, 12300) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l1a8c1E<1B>*p0x0Y<1B>*c0t7272x4980Y" } } } } *Option: A4 { *rcNameID: =RCID_DMPAPER_SYSTEM_NAME *PageProtectMem: 4249 *switch: Orientation { *case: PORTRAIT { *PrintableArea: PAIR(9100, 13200) *PrintableOrigin: PAIR(400, 300) *CursorOrigin: PAIR(288, 180) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l26a8c1E<1B>*p0x0Y<1B>*c0t5594x8201Y" } } *case: LANDSCAPE_CC90 { *PrintableArea: PAIR(9100, 13200) *PrintableOrigin: PAIR(400, 300) *CursorOrigin: PAIR(204, 13824) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l26a8c1E<1B>*p0x0Y<1B>*c0t8129x5714Y" } } } } *Option: B5 { *rcNameID: =RCID_DMPAPER_SYSTEM_NAME *PageProtectMem: 3198 *switch: Orientation { *case: PORTRAIT { *PrintableArea: PAIR(7900, 11140) *PrintableOrigin: PAIR(352, 300) *CursorOrigin: PAIR(300, 100) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l12a8c1E<1B>*p0x0Y<1B>*c0t4970x7040Y" } } *case: LANDSCAPE_CC90 { *PrintableArea: PAIR(7760, 11140) *PrintableOrigin: PAIR(300, 400) *CursorOrigin: PAIR(100, 11940) *Command: CmdSelect { *Order: DOC_SETUP.12 *Cmd: "<1B>&l12a8c1E<1B>*p0x0Y<1B>*c0t6780x4970Y" } } } } } *%****************************************************************************************** *% Outputbin *%****************************************************************************************** *Feature: OutputBin { *rcNameID: =OUTPUTBIN_DISPLAY *HelpIndex: 12006 *DefaultOption: Option1 *Option: Option1 { *% Auto Select *Name: "default" *Command: CmdSelect { *Order: DOC_SETUP.4 *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN2<0A>@PJL SET FINISH=NONE<0A>" } } *Option: Option14 { *% Stacker *Name: "stacker" *% Stacker *Command: CmdSelect { *Order: DOC_SETUP.4 *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN2<0A>@PJL SET FINISH=NONE<0A>" } } } *%****************************************************************************************** *% Media Type *%****************************************************************************************** *Feature: MediaType { *rcNameID: =MEDIA_TYPE_DISPLAY *DefaultOption: PLAIN *Option: PLAIN { *rcNameID: =PLAIN_PAPER_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.15 *Cmd: "<1B>&n6WdPlain" } } *Option: TRANSPARENCY { *rcNameID: =TRANSPARENCY_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.15 *Cmd: "<1B>&n13WdTransparency" } } } *%****************************************************************************************** *% HalfTone *%****************************************************************************************** *Feature: Halftone { *rcNameID: =HALFTONING_DISPLAY *DefaultOption: HT_PATSIZE_AUTO *Option: HT_PATSIZE_AUTO { *rcNameID: =HT_AUTO_SELECT_DISPLAY } *Option: HT_PATSIZE_SUPERCELL_M { *rcNameID: =HT_SUPERCELL_DISPLAY } *Option: HT_PATSIZE_6x6_M { *rcNameID: =HT_DITHER6X6_DISPLAY } *Option: HT_PATSIZE_8x8_M { *rcNameID: =HT_DITHER8X8_DISPLAY } } *%****************************************************************************************** *% Memory *% *% Note: Unidrv uses the font memory information to estimate when it needs to stop *% downloading fonts for a page, and thus driver writers should err on the conservative *% side. Otherwise, printers will generate "out of memory" device errors for pages with *% a large number of fonts / unique glyphs. *%****************************************************************************************** *Feature: Memory { *rcNameID: =PRINTER_MEMORY_DISPLAY *DefaultOption: 32768KB *Option: 16384KB { *Name: "16MB" *MemoryConfigKB: PAIR(16384, 13950) } *Option: 32768KB { *Name: "32MB" *MemoryConfigKB: PAIR(32768, 28350) } } *%****************************************************************************************** *% Page Protect *%****************************************************************************************** *Feature: PageProtect { *rcNameID: =PAGE_PROTECTION_DISPLAY *DefaultOption: OFF *Option: ON { *rcNameID: =ON_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.1 *Cmd: "<1B>%%-12345X@PJL SET PAGEPROTECT=LETTER<0A>" } } *Option: OFF { *rcNameID: =OFF_DISPLAY *Command: CmdSelect { *Order: DOC_SETUP.1 *Cmd: "<1B>%%-12345X@PJL SET PAGEPROTECT=OFF<0A>" } } } *%****************************************************************************************** *% Doc setup commands *%****************************************************************************************** *Command: CmdStartDoc { *Order: DOC_SETUP.7 *Cmd: "<1B>&u1200D<1B>*r0F" } *Command: CmdStartPage { *Order: PAGE_SETUP.1 *Cmd: "<1B>*b0M<0D>" } *Command: CmdEndJob { *Order: JOB_FINISH.1 *Cmd: "<1B>E<1B>%%-12345X@PJL<20>LPORTROTATE<0A><1B>%%-12345X" } *Command: CmdCopies { *Order: DOC_SETUP.13 *Cmd: "<1B>&l" %d{NumOfCopies}"X" } *%****************************************************************************************** *% Cursor, Page and Color Commands *%****************************************************************************************** *RotateCoordinate?: TRUE *RotateRaster?: TRUE *RotateFont?: TRUE *TextCaps: LIST(TC_CR_90,TC_UA_ABLE) *MemoryUsage: LIST(FONT, RASTER, VECTOR) *CursorXAfterCR: AT_PRINTABLE_X_ORIGIN *BadCursorMoveInGrxMode: LIST(X_PORTRAIT,Y_LANDSCAPE) *XMoveThreshold: 0 *YMoveThreshold: 0 *XMoveUnit: 300 *YMoveUnit: 300 *Command: CmdXMoveAbsolute { *Cmd : "<1B>*p" %d{(DestX) }"X" } *Command: CmdXMoveRelRight { *Cmd : "<1B>*p+" %d[0,9600]{max_repeat((DestXRel) )}"X" } *Command: CmdXMoveRelLeft { *Cmd : "<1B>*p-" %d[0,9600]{max_repeat((DestXRel) )}"X" } *Command: CmdYMoveAbsolute { *Cmd : "<1B>*p" %d{(DestY) }"Y" } *Command: CmdYMoveRelDown { *Cmd : "<1B>*p+" %d{(DestYRel) }"Y" } *Command: CmdYMoveRelUp { *Cmd : "<1B>*p-" %d{(DestYRel) }"Y" } *Command: CmdDefinePaletteEntry { *Cmd : "<1B>*v" %d{RedValue}"a" %d{GreenValue}"b" %d{BlueValue}"c" + %d{PaletteIndexToProgram} "I" } *Command: CmdSelectPaletteEntry { *Cmd : "<1B>*v" %d{CurrentPaletteIndex}"S" } *Command: CmdCR { *Cmd : "<0D>" } *Command: CmdLF { *Cmd : "<0A>" } *Command: CmdFF { *Cmd : "<0C>" } *Command: CmdBackSpace { *Cmd : "<08>" } *Command: CmdUniDirectionOn { *Cmd : "<00>" } *Command: CmdUniDirectionOff { *Cmd : "<00>" } *Command: CmdPushCursor { *Cmd : "<1B>&f0S" } *Command: CmdPopCursor { *Cmd : "<1B>&f1S" } *Command: CmdSetSimpleRotation { *Cmd : "<1B>&a" %d{PrintDirInCCDegrees}"P" } *EjectPageWithFF?: TRUE *Command: CmdEnableTIFF4 { *Cmd : "<1B>*b2M" } *Command: CmdDisableCompression { *Cmd : "<1B>*b0M" } *OutputDataFormat: H_BYTE *OptimizeLeftBound?: TRUE *CursorXAfterSendBlockData: AT_GRXDATA_ORIGIN *CursorYAfterSendBlockData: AUTO_INCREMENT *%****************************************************************************************** *% Font Descriptions and Commands *%****************************************************************************************** *DefaultFont: 136 *DefaultCTT: 0 *CharPosition: BASELINE *DeviceFonts: LIST(136,138,146,147,148,149,150,151,152,153,154,155,156,157, + 163,164,165,166,196,197,198,199,200,201,202,203,209,210, + 211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226, + 227,228,229,230) *MinFontID: 16534 *MaxFontID: 32768 *FontFormat: HPPCL_OUTLINE *Command: CmdSetFontID { *Cmd : "<1B>*c" %d{NextFontID}"D" } *Command: CmdSelectFontID { *Cmd : "<1B>(" %d{CurrentFontID}"X" } *Command: CmdSetCharCode { *Cmd : "<1B>*c" %d{NextGlyph}"E" } *Command: CmdUnderlineOn { *Cmd : "<1B>&dD" } *Command: CmdUnderlineOff { *Cmd : "<1B>&d@" } *Command: CmdWhiteTextOn { *Cmd : "<1B>*v1o1T" } *Command: CmdWhiteTextOff { *Cmd : "<1B>*v0o0T" } *%******************************************************************************************** *%* Vector Commands. *%******************************************************************************************** *MinGrayFill: 1 *MaxGrayFill: 100 *Command: CmdSetRectWidth { *Cmd : "<1B>*c" %d{(RectXSize) }"A" } *Command: CmdSetRectHeight { *Cmd : "<1B>*c" %d{(RectYSize) }"B" } *Command: CmdRectGrayFill { *Cmd : "<1B>*c" %d{GrayPercentage }"g2P" } *Command: CmdRectWhiteFill { *Cmd : "<1B>*c1P" } *Command: CmdRectBlackFill { *Cmd : "<1B>*c0P" }
Our Services
-
What our customers say about us?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials