You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UniDrv用户界面插件:如何使纸张尺寸字段(DMPUB_FORMNAME)显示?

解决UniDrv驱动打印首选项不显示纸张尺寸(DMPUB_FORMNAME缺失)的方案
  • 检查GPD文件的PaperSize Feature完整配置
    除了移除*ConcealFromUI?: TRUE,还要保证PaperSize的基础配置没有遗漏:

    • 必须包含*Name、*DefaultOption字段
    • 需添加自定义纸张对应的*Option: CUSTOMSIZE项,并配置*CustomSize: TRUE、尺寸范围及增量
      示例GPD代码片段:
    *Feature: PaperSize
    {
        *Name: "Paper Size"
        *DefaultOption: LETTER
        *Option: LETTER
        {
            *Name: "Letter"
        }
        *Option: CUSTOMSIZE
        {
            *Name: "Custom Size"
            *CustomSize: TRUE
            *MinSize: PAIR(100, 100)
            *MaxSize: PAIR(10000, 10000)
            *SizeIncrement: PAIR(1, 1)
        }
    }
    

    同时确认GPD中没有*UIConstraints或其他依赖配置限制PaperSize的显示。

  • 修正UI插件的OPTIF_HIDE标记逻辑
    找到插件中批量设置OPTIF_HIDE的代码块,调整逻辑以排除DMPUB_FORMNAME:

    for (int i = 0; i < pOemCUIPParam->cNumDMPub; i++) {
        // 仅对非纸张尺寸项设置隐藏(按需调整)
        if (pOemCUIPParam->pDMPub[i].dwDMPubID != DMPUB_FORMNAME) {
            // pOemCUIPParam->pDMPub[i].dwFlags |= OPTIF_HIDE;
        }
    }
    

    同时检查是否有代码在构建DMPUB列表时主动过滤了DMPUB_FORMNAME,确保该项未被跳过。

  • 开启UniDrv自定义纸张支持
    在GPD中添加*CustomPageSize?: TRUE字段,这是UniDrv生成DMPUB_FORMNAME项的必要前提;另外检查驱动INF文件,确认GPD文件路径配置正确,避免安装时加载异常。

  • 验证配置与调试流程
    使用GpdParser.exe工具检查GPD文件语法与配置合法性,排除语法错误;在UI插件的OEMCUIPreRender或OEMCUIPostRender函数中添加调试输出,查看UniDrv传递的DMPUB列表是否包含DMPUB_FORMNAME,若仍缺失,需重新核对GPD中PaperSize的所有配置项。

内容的提问来源于stack exchange,提问作者Thalia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 10:12:42