如何设置来自DeviceCapabilities的纸质表单

How to set paper form that came from DeviceCapabilities?

本文关键字:DeviceCapabilities 表单 何设置 设置      更新时间:2023-10-16

我有一台打印机,它的表单无法通过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`属性。

相关文章:
  • 没有找到相关文章