NTGPC Data Extensions

The Windows NTGPC extensions provide Windows NT-specific information about the printer that is later passed to GDI. In particular, the Windows NTGPC extensions data consists of color rendering (halftoning) information made up of two major components. First, the COLORINFO structure is defined to characterize the printer’s color rendering. The COLORINFO structure specifies information such as the purity of the printer’s inks (how much cyan and magenta is in the yellow ink), the actual color of the inks, and the gamma of the printer (how the intensity of the color changes as the amount of color is increased).

The other major component of the Windows NTGPC data characterizes the printing mechanism. This data defines both the effective resolution of the printer and the default halftone pattern size to use. In practice, the printer’s stated resolution, such as 300 dpi, actually indicates only the positioning ability of the printer. To print correctly, the printer’s effective resolution is also required because the actual dots the printer creates on the paper are often larger than the printer’s stated resolution. For example, the LaserJet Series II has a stated positioning ability of 1/300th of an inch, but the actual dots are a slightly less than 1/200th of an inch. In this case, if every second dot is printed, more than 50 percent of the page appears to be covered in ink.

The effective resolution allows the halftoning code to compensate for these large dots and the image comes out at about the expected intensity. The halftone pattern size is set on a subjective basis to make the output look good. As the pattern size increases, the number of grey levels in the image increases (for a monochrome printer). The image resolution decreases as the halftoning operation effectively averages over larger chunks of the image.

The Windows NT DDK contains the ntgpcedt.exe program that specifies the NTGPC extensions data. The ntgpcedt.exe program reads data from a file and generates the required data structures in the desired file format. The structures used in the output file are described in the file ntres.h, that is also included in the DDK. Because RasDD accepts this file format, consider the ntgpcedt.exe program as the best means to produce GPC extensions data.