【问题标题】:How to set paper form that came from DeviceCapabilities?如何设置来自 DeviceCapabilities 的纸质表格?
【发布时间】:2013-08-02 11:07:47
【问题描述】:

我的打印机具有无法通过EnumForms 检索的表单。 EnumForms 只从打印服务器获取表单。通过带有 DC_PAPERNAMES 参数的DeviceCapabilities,我得到了我需要设置的表单(超长纸)。

我试着这样设置表单

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

这不起作用。

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

我会感激每一个正确方向的建议。

这必须在 Windows XP 下工作。

编辑:

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

【问题讨论】:

    标签: c++ winapi printing


    【解决方案1】:

    找到了解决办法。您必须拨打DeviceCapabilities 三次。一次是DC_PAPERS,一次是DC_PAPERNAMES,一次是DC_PAPERSIZE。每次调用都会为您提供一个包含打印机支持表单的表单名称、大小和编号(在 DevMode 中设置)的数组。通过这些你可以设置 DevMode 的dmPaperSize,dmPaperLengthanddmPaperWidth`属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多