检索特定打印机的可用纸张格式

时间:2017-12-01 20:58:27

标签: c++ windows printing

正如我在标题中所写,我正在寻找一种方法来检索C ++中特定打印机的可用纸张格式。目前我只能以这种方式检索当前设置:

LPWSTR pName = L"My Printer Name";
HANDLE _printerHandle;
OpenPrinterW(pName, &_printerHandle, NULL);

LONG size = DocumentPropertiesW(NULL, _printerHandle, pName, NULL, NULL, 0);
PDEVMODEW info = (PDEVMODEW)malloc(size); //here I get/set settings
DocumentPropertiesW(NULL, _printerHandle, pName, info, NULL, DM_OUT_BUFFER);

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

使用DeviceCapabilities查询DC_BINS。那将为您提供一系列WORD,其中每个单词对应一个纸质来源。 (请查看dmDefaultSource说明中DEVMODE的说明以解释这些值。)

您还可以使用DeviceCapabilities查询DC_PAPERSDC_PAPERSIZES以了解支持的纸张尺寸。