2

我有一台打印机,其表单无法通过EnumForms. EnumForms只从 PrintServer 获取表单。通过DeviceCapabilities使用 DC_PAPERNAMES 参数,我得到了我需要设置的表单(超长纸)。

我试图像这样设置表格

wcscpy(pDevMode->dmFormName, L"Super Long Paper");
pDevMode->dmFields |= DM_FORMNAME;
ResetDCW(hPrintDC, pDevMode);

这行不通。

是否可以获得可以通过设置的特定表单的值,pDevMode->dmPapersize或者是否有其他选项可以设置仅通过 using 显示的表单DeviceCapabilities

我将不胜感激在正确方向上的每一个建议。

这必须在 Windows XP 下工作。

编辑:

程序不应显示对话框。一切都通过代码设置。

4

1 回答 1

2

找到了解决方案。你必须打DeviceCapabilities三遍。一次和一次DC_PAPERS,一次DC_PAPERNAMES和一次DC_PAPERSIZE。每次调用都会为您提供一个包含打印机支持表单的表单名称、大小和编号(在 DevMode 中设置)的数组。使用这些您可以设置 DevMode 的dmPaperSize,dmPaperLength anddmPaperWidth`Properties。

于 2013-08-02T19:17:30.593 回答