Sample Code
Windows Driver Samples/ MSPLOT Plotter Driver Sample/ C++/ mini/ plotgpc.txt/
;============================================================================= ; Copyright (c) 1990-2003 Microsoft Corporation ;============================================================================= ; ; Plotter GPC data file format ; ; 1. All key value(s) for the keyword must be encloses by a {} brace pair. ; 2. Any Strings must be enclosed by quotes (""). ; 3. a ';' denotes a comment to the end of the current line. ; 4. Types ; a. FLAG - 1 or 0 ; b. WORD - 16 bit number ; c. DWORD - 32 bit number ; d. STRING - ANSI character string, maximum size depends on keyword ; e. FORMSRC - 1. 31 byte string for the name of the form (paper source) ; 2. 2 DWORDs: size width/height (SIZEL) 1/1000mm ; ** if height is <= 25400 (1 inch) or it greater ; then DeviceSize CY then it is assumed that ; the form is variable length and the height ; will be reset to zero (0) ; ; 3. 4 DWORDs: Left/Top/Right/Bottom margins in 1/1000mm ; ; f. CONSTANT - Pick from a set of predefined strings in the header file ; g. COLORINFO - Windows 2000, Windows XP and Windows Server 2003 DDI COLORINFO data structure (30 DWORDs) ; h. PENDATA - 1. One word that specifies the location in the carousel ; of this pen (1=slot 1, 2=slot 2). ; 2. constant which specifies the predefined pen color ; PC_IDX_xxxx can be one of: ; ; Index R G B ; ------------------------------ ; PC_IDX_WHITE 255 255 255 ; PC_IDX_BLACK 0 0 0 ; PC_IDX_RED 255 0 0 ; PC_IDX_GREEN 0 255 0 ; PC_IDX_YELLOW 255 255 0 ; PC_IDX_BLUE 0 0 255 ; PC_IDX_MAGENTA 255 0 255 ; PC_IDX_CYAN 0 255 255 ; PC_IDX_ORANGE 255 128 0 ; PC_IDX_BROWN 255 192 0 ; PC_IDX_VIOLET 128 0 255 ; ; i. ROPLEVEL - One of following levels: ; ; ROP_LEVEL_0 - No Rop support ; ROP_LEVEL_1 - ROP1 support (SRC) ; ROP_LEVEL_2 - ROP2 support (SRC/DEST) ; ROP_LEVEL_3 - ROP3 support (SRC/DEST/PAT) ; ; *** if DeviceSize' height is <= 25400 (1 inch) then it is assumed that the ; device can handle variable length paper and the height will be reset to ; zero (0) ; ; *** RasterDPI must be defined for both raster and pen plotters. For raster ; plotters this should be the raster resolution of the device. For pen ; plotters it should be the ideal resolution for the device that GDI ; will report back to the calling windows application. ; ; Keyword Type Count Range/Size ; ------------------------------------------------------------------------- ; DeviceName STRING 31 Device name as it appears in UI's ; DeviceSize DWORD 2 Device cx/cy in 1/1000mm ; DeviceMargin DWORD 4 Device L/T/R/B margin in 1/1000mm ; RasterCap Flag 1 0/1 (1=Raster Device, 2=Pen Device) ; ColorCap Flag 1 0/1 (1=Color Device, 2=Mono) ; BezierCap Flag 1 0/1 (1=Device supports HPGL2 ; Beziers extension) ; RasterByteAlign Flag 1 0/1 (1=Device must receive all ; raster data on byte alligned ; x coordinates) ; PushPopPal Flag 1 0/1 (1=Driver must push/pop ; pallete when switching ; between RTL / HPGL2) ; TransparentCap Flag 1 0/1 (1=Device supports transp. cmd) ; WindingFillCap Flag 1 0/1 (1=Device can do winding fills) ; RollFeedCap Flag 1 0/1 (1=Device has roll paper src) ; PaperTrayCap Flag 1 0/1 has a main paper tray? ; NoBitmapFont Flag 1 0/1 Do not do bitmap font ; RTLMonoEncode5 Flag 1 0/1 RTL Mono Compress Mode 5? ; RTLNoDPIxy Flag 1 0/1 NO RTL DPI X,Y Move command ; RTLMonoNoCID Flag 1 0/1 RTL Mono No CID command ; RTLMonoFixPal Flag 1 0/1 RTL Mono PAL ONLY 0=W, 1=K ; PlotDPI DWORD 2 Plotter UNIT X/Y Dots per Inch ; RasterDPI WORD 2 Raster (RTL) X/Y Dots per Inch ; ROPLevel DWORD 1 0/1/2/3 ; MaxScale WORD 1 0-10000 (100 times bigger) ; MaxPens WORD 1 Device max # of pens for pen plotter ; MaxCopies WORD 1 Device max # of copies of each ; page device can render by itself. ; MaxPolygonPts WORD 1 Device max # of points when defining ; a polygon to later be stroked or ; filled. ; MaxQuality WORD 1 Device maximum quality levels ; PaperTraySize DWORD 2 Paper Tray width/height in 1/1000mm ; COLORINFO DWORD 30 COLORINFO data structure ; DevicePelsDPI DWORD 1 Dots Per Inch ; HTPatternSize CONSTANT 1 HT_PATSIZE_xx ; InitString STRING 255 Standard string sent to device for ; initialization. ; PlotPenData PENDATA 32 (Max) Pen Plotter's carousel def. ; FormInfo FORMSRC 64 Device supported forms ; ; Following are example values for the PLOTTER characterization data: ; DeviceName { "HP DesignJet 650C (C2859B)" }; Device Name DeviceSize { 914400, 15240000 } ; Device Size (36" x 50') DeviceMargin { 25400, 25400, 5000, 36000 } ; Device Margin (in 1/1000mm) RasterCap { 1 } ; Pen/Raster plotter (0/1) ColorCap { 1 } ; Color plotter (0/1) BezierCap { 1 } ; Can do bezier curves (0/1) RasterByteAlign { 0 } ; need to byte aligned (0/1) PushPopPal { 1 } ; need to push/pop palette (0/1) TransparentCap { 0 } ; Has transparent mode (0/1) WindingFillCap { 0 } ; Can do winding fills (0/1) RollFeedCap { 1 } ; Can do RollPaper feed (0/1) PaperTrayCap { 0 } ; Has paper input tray (0/1) NoBitmapFont { 0 } ; Do not do bitmap font RTLMonoEncode5 { 1 } ; RTL Mono Adapt Compression RTLNoDPIxy { 0 } ; Has RTL DPI XY move comand RTLMonoNoCID { 0 } ; Has RTL MONO CID Command RTLMonoFixPal { 0 } ; Can change RTL Palette 0/1 PlotDPI { 1016, 1016 } ; Pen Plotter X/Y DPI RasterDPI { 300, 300 } ; Raster Plotter X/Y DPI ROPLevel { ROP_LEVEL_2 } ; ROP levels (0/1/2/3) MaxScale { 1600 } ; Maximum allowed Scale % MaxPens { 256 } ; Maximum allowed pens MaxCopies { 1 } ; Maximum allowed copies MaxPolygonPts { 8192 } ; Maximum Polygon points MaxQuality { 3 } ; Maximum quality levels ; ; Only needed if PaperTrayCap = 1, ; PaperTraySize { 215900, 279400 } ; Letter size paper tray ; COLORINFO { 6810, 3050, 0, ; xr, yr, Yr 2260, 6550, 0, ; xg, yg, Yg 1810, 500, 0, ; xb, yb, Yb 2000, 2450, 0, ; xc, yc, Yc 5210, 2100, 0, ; xm, ym, Ym 4750, 5100, 0, ; xy, yy, Yy 3324, 3474, 10000, ; xw, yw, Yw 10000, 10000, 10000, ; RGB gamma 1422, 952, 787, ; Dye correction datas 495, 324, 248 } DevicePelsDPI { 0 } ; effective device DPI (default) HTPatternSize { HT_PATSIZE_6x6_M } ; GDI Halftone pattern size InitString { "\033E" } ; ; Only allowed if RasterCap = 0, and must define all pens (MaxPens) ; ; PlotPenData { 1, PC_WHITE } ; PlotPenData { 2, PC_BLACK } ; PlotPenData { 3, PC_RED } ; PlotPenData { 4, PC_GREEN } ; PlotPenData { 5, PC_YELLOW } ; PlotPenData { 6, PC_BLUE } ; PlotPenData { 7, PC_MAGENTA } ; PlotPenData { 8, PC_CYAN } ; PlotPenData { 9, PC_ORANGE } ; PlotPenData { 10, PC_BROWN } ; PlotPenData { 11, PC_VIOLET } ; FormInfo { "Roll Paper 24 in", 609600, 0, 0, 0, 0, 0 } FormInfo { "Roll Paper 36 in", 914400, 0, 0, 0, 0, 0 } FormInfo { "ANSI A 8.5 x 11 in", 215900, 279400, 0, 0, 0, 0 } FormInfo { "ANSI B 11 x 17 in", 279400, 431800, 0, 0, 0, 0 } FormInfo { "ANSI C 17 x 22 in", 431800, 558800, 0, 0, 0, 0 } FormInfo { "ANSI D 22 x 34 in", 558800, 863600, 0, 0, 0, 0 } FormInfo { "ANSI E 34 x 44 in", 863600, 1117600, 0, 0, 0, 0 } FormInfo { "ISO A4 210 x 297 mm", 210000, 297000, 0, 0, 0, 0 } FormInfo { "ISO A3 297 x 420 mm", 297000, 420000, 0, 0, 0, 0 } FormInfo { "ISO A2 420 x 594 mm", 420000, 594000, 0, 0, 0, 0 } FormInfo { "ISO A1 594 x 841 mm", 594000, 841000, 0, 0, 0, 0 } FormInfo { "ISO A0 841 x 1189 mm", 841000, 1189000, 0, 0, 0, 0 } FormInfo { "ISO OS A2 480 x 625 mm", 480000, 625000, 0, 0, 0, 0 } FormInfo { "ISO OS A1 625 x 900 mm", 625000, 900000, 0, 0, 0, 0 } FormInfo { "JIS B4 257 x 364 mm", 257000, 364000, 0, 0, 0, 0 } FormInfo { "JIS B3 364 x 515 mm", 364000, 515000, 0, 0, 0, 0 } FormInfo { "JIS B2 515 x 728 mm", 515000, 728000, 0, 0, 0, 0 } FormInfo { "JIS B1 728 x 1030 mm", 728000, 1030000, 0, 0, 0, 0 } FormInfo { "Arch A 9 x 12 in", 228600, 304800, 0, 0, 0, 0 } FormInfo { "Arch B 12 x 18 in", 304800, 457200, 0, 0, 0, 0 } FormInfo { "Arch C 18 x 24 in", 457200, 609600, 0, 0, 0, 0 } FormInfo { "Arch D 24 x 36 in", 609600, 914400, 0, 0, 0, 0 } FormInfo { "Arch E 36 x 48 in", 914400, 1219200, 0, 0, 0, 0 } FormInfo { "Arch E1 30 x 42 in", 762000, 1066800, 0, 0, 0, 0 }
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