我有一台打印机,其中的表单无法通过 EnumForms
检索。 EnumForms
只从打印服务器获取表单。通过带有 DC_PAPERNAMES 参数的 DeviceCapativity
,我得到了需要设置的表单(超长纸张)。
我尝试像这样设置表单
wcscpy(pDevMode->dmFormName, L"Super Long Paper");
pDevMode->dmFields |= DM_FORMNAME;
ResetDCW(hPrintDC, pDevMode);
这不起作用。
是否可以获取可以通过 pDevMode->dmPapersize
设置的特定表单的值,或者是否有其他选项可以设置仅使用 显示的表单设备功能
?
我非常感谢您在正确方向上提出的每一条建议。
这必须在 Windows XP 下工作。
编辑:
程序不应显示对话框。一切都通过代码设置。
最佳答案
找到了解决方案。您必须调用 DeviceCapability
三次。一次使用 DC_PAPERS
,一次使用 DC_PAPERNAMES
,一次使用 DC_PAPERSIZE
。每次调用都会为您提供一个数组,其中包含打印机支持的表单的表单名称、大小和编号(在 DevMode 中设置)。通过这些,您可以设置 DevMode 的 dmPaperSize、
dmPaperLength 和
dmPaperWidth`属性。
关于c++ - 如何设置来自DeviceCapability的纸质表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015384/