Represents printer capability information.


typedef struct _PRINTPROCESSOR_CAPS_2 {
  DWORD dwLevel;
  DWORD dwNupOptions;
  DWORD dwPageOrderFlags;
  DWORD dwNumberOfCopies;
  DWORD dwNupDirectionCaps;
  DWORD dwNupBorderCaps;
  DWORD dwBookletHandlingCaps;
  DWORD dwDuplexHandlingCaps;
  DWORD dwScalingCaps;



A value that indicates the structure's version number.


A bit mask representing the various numbers of document pages the printer can print on a single side of a physical sheet. The least significant bit represents one document page per side, the next bit represents 2 document pages per side, and so on. For example, 0x0000810B indicates the printer supports 1, 2, 4, 9, and 16 document pages per physical side.


A flag value that indicates the order in which pages will be printed. It can be NORMAL_PRINT, REVERSE_PRINT, or BOOKLET_PRINT.


The maximum number of copies the printer can handle.


The available patterns when multiple document pages are printed on the same side of a sheet of paper. The possible flags are the following:

PPCAPS_RIGHT_THEN_DOWNPages appear in rows from right to left, each subsequent row below its predecessor.
PPCAPS_DOWN_THEN_RIGHTPages appear in columns from top to bottom, each subsequent column to the right of its predecessor.
PPCAPS_LEFT_THEN_DOWNPages appear in rows from left to right, each subsequent row below its predecessor.
PPCAPS_DOWN_THEN_LEFTPages appear in columns from top to bottom, each subsequent column to the left of its predecessor.



Can be only PPCAPS_BORDER_PRINT, indicating that, when multiple document pages are being printed on a single side of a physical sheet, the printer can be told whether or not to print a border around the imageable area of each document page.


Can only be PPCAPS_BOOKLET_EDGE, indicating that the printer can print booklet style.

PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEXWhen printing in reverse order and duplexing, the processor can print swap the order of each pair of pages, so instead of printing in order 4,3,2,1, they will print in the order 3,4,1,2.
PPCAPS_DONT_SEND_EXTRA_PAGES_FOR_DUPLEXWhen duplexing, the Print Processor can be told not to send an extra page when there is an odd number of document pages. The processor will honor the value as best as it can, but in cases where preventing an extra blank page would cause improper output, the extra pages may still be sent.



Can only be PPCAPS_SQUARE_SCALING, indicating that the printer can scale the page image.


Values for all structure members are supplied by the GetPrintProcessorCapabilities function which is documented in the Windows Driver Kit.

When an application calls GetPrinterData, the spooler calls a print processor's GetPrintProcessorCapabilities function and specifies a value name that has a format of PrintProcCaps_datatype, where datatype is the name of an input data type.


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008 [desktop apps only]


Winspool.h (include Windows.h)

See also

Print Spooler API Structures