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}