PCD source file format
Important
The modern print platform is Windows' preferred means of communicating with printers. We recommend that you use Microsoft's IPP inbox class driver, along with Print Support Apps (PSA), to customize the print experience in Windows 10 and 11 for printer device development.
For more information, see Modern print platform and the Print support app design guide.
All plotter device characteristics are specified using the following format:
keyword { value }
where keyword is one of the PCD source file keywords and value is a quoted string or numeric value. For example, the following statement specifies that the plotter supports color:
ColorCap {1}
Keywords are described in the following table.
Keyword | Value definition | Default value |
---|---|---|
BezierCap | 1=Device supports HPGL2 Beziers extension. 0=No support. |
0 |
ColorCap | 1=Color device 0=Monochrome device |
0 |
COLORINFO | 30 DWORD-sized values representing the contents of a COLORINFO structure | { {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, // M/C, Y/C 787,495, // C/M, Y/M 324,248 // C/Y, M/Y } |
DeviceMargin | Four DWORD-sized values representing the left, top, right, and bottom paper margins, in 1/1000-mm units. | {5000, 5000, 5000, 36000} |
DeviceName | Quoted string representing a displayable device name (31 characters max.) | "HPGL/2 Plotter" |
DevicePelsDPI | One DWORD-sized value representing the device's effective DPI. For more information, see the upDevicePelsDPI member of GDIINFO. | The default is zero, causing GDI to calculate a value. |
DeviceSize | Two DWORD-sized values representing maximum paper size, in x and y coordinates of 1/1000-mm units. A y value of 25400 (1 inch) or less indicates the device accepts variable paper lengths. |
{215900, 279400} |
FormInfo | A form description for each form supported by the plotter. For more information, see the Form Descriptions section that follows this table. | None. |
HTPatternSize | One of the HT_PATSIZE_-prefixed constants that identify standard halftoning patterns. | 0xffffffff |
InitString | Quoted C-language string representing commands sent to the printer by the driver's DrvStartPage function. | NULL string. |
MaxCopies | Maximum number of copies per page that the device can render. | 1 |
MaxPens | Number of pens (32 maximum) | 8 |
MaxPolygonPts | Maximum number of points to define a polygon to be stroked or filled. | 128 |
MaxQuality | Number of quality levels (4 maximum) | 4 |
MaxScale | Maximum scale size. 0-10000 (100 is 100%) | 100 |
NoBitmapFont | 1=Device doesn't support bitmap fonts. 0=Bitmap fonts are supported. |
0 |
PaperTrayCap | 1=Device has paper tray source. 0=No support. |
0 |
PaperTraySize | Two DWORD-sized values representing the paper tray width and height, in 1/1000-mm units. | {-1, -1} |
PlotDPI | Two DWORD-sized values representing a pen plotter's x and y resolution, in dots per inch. | {1016, 1016} |
PlotPenData | A pen description for each pen. For more information, see the Pen Descriptions section that follows this table. | None. |
PushPopPal | 1=Driver must push/pop palette when switching between RTL and HPGL2. 0=Push/pop isn't required. |
0 |
RasterByteAlign | 1=Device must receive all raster data on byte-aligned x coordinates. 0=Byte alignment isn't required. |
0 |
RasterCap | 1=Raster device 0=Pen device |
0 |
RasterDPI | Two DWORD-sized values representing x and y resolution, in dots per inch. For raster plotters, this is the raster resolution. For pen plotters, this is the ideal resolution the GDI supplies to an application. |
{300, 300} |
RollFeedCap | 1=Device has roll paper source. 0=No support. |
0 |
ROPLevel | ROP_LEVEL_0 = No RasterOp support. ROP_LEVEL_1 = Rop1 support. ROP_LEVEL_2 = Rop2 support. ROP_LEVEL_3 = Rop3 support. |
ROP_LEVEL_0 |
RTLMonoEncode5 | 1=HP Raster Transfer Language (RTL) Monochrome Compression Mode 5 is supported. 0=No support. |
0 |
RTLMonoFixPal | RTL Monochrome palette only. 0=White, 1=Black |
0 |
RTLMonoNoCID | 1=In RTL Mono mode, CID commands aren't required. 0=In RTL Mono mode, CID commands are required. |
0 |
RTLNoDPIxy | 1=RTL DPI X,Y move commands aren't supported. 0=These commands are supported. |
0 |
TransparentCap | 1=Device supports transparent mode. 0=No support. |
0 |
WindingFillCap | 1=Device supports winding fills. 0=No support. |
0 |
Pen Descriptions
Each pen description must have the following format:
PlotPenData {Pen Number, Color**}**
where Pen Number identifies the pen's slot number and Color is a PC_IDX_-prefixed color identifier. Following are example pen descriptions:
PlotPenData {1, PC_IDX_WHITE}
PlotPenData {2, PC_IDX_BLACK}
PlotPenData {3, PC_IDX_RED}
Form Descriptions
Each form description must have the following format:
FormInfo {"Form Description", Width**,** Length**,** Left Margin**,** Top Margin**,** Right Margin**,** Bottom Margin**}**
where Form Description is a string describing the form, Width and Length specify the form size in 1/1000-mm units, and the margins are also specified in 1/1000-mm units. Following are three examples:
FormInfo {"Roll Paper 24 in", 609600, 0, 0, 0, 0, 0}
FormInfo {"ANSI A 8.5 x 11 in", 215900, 279400, 0, 0, 0, 0}
FormInfo {"ISO A4 210 x 297 mm", 210000, 297000, 0, 0, 0, 0}