如何设置来自DeviceCapabilities的纸质表单
How to set paper form that came from DeviceCapabilities?
我有一台打印机,它的表单无法通过EnumForms
检索。EnumForms
只从PrintServer获取表单。通过带有DC_PAPERNAMES参数的DeviceCapabilities
,我得到了需要设置的表单(超长纸)。
我试着把表格设置成这样
wcscpy(pDevMode->dmFormName, L"Super Long Paper");
pDevMode->dmFields |= DM_FORMNAME;
ResetDCW(hPrintDC, pDevMode);
这行不通。
是否可以为该特定表单获取可以通过pDevMode->dmPapersize
设置的值,或者是否有其他选项可以设置仅通过使用DeviceCapabilities
显示的表单?
如果能给我一点正确的建议,我将不胜感激。
这必须在Windows XP下运行。
编辑:
程序不应显示对话框。一切都是通过代码设置的。
找到了解决方案。你必须给DeviceCapabilities
打三次电话。与DC_PAPERS
一起一次,与DC_PAPERNAMES
一起一次和与DC_PAPERSIZE
一起一次。每个调用都会为打印机支持的表单提供一个数组,其中包含表单名称、大小和编号(在DevMode中设置)。有了这些,您可以设置DevMode的dmPaperSize,
dmPaperLength and
dmPaperWidth`属性。
相关文章:
- 没有找到相关文章