UNIDRV打印机驱动程序 - 无法获得自定义纸张尺寸

时间:2015-03-11 20:44:34

标签: windows printing driver

使用自定义打印机驱动程序......

我无法使用某些应用程序(如Microsoft Word,其他人)来识别自定义纸张尺寸。

显示供应商纸张尺寸,但在自定义应用程序中,“海关大小”选项根本不显示

enter image description here

在Word中,我看到自定义页面大小 - 但是尝试打印时,有一系列关于页边距的警告:

enter image description here enter image description here

...

打印时,自定义尺寸文档将发送到其中一个定义的尺寸。

gpd(假设100 dpi):

*Feature: PaperSize
{
    *rcNameID: =PAPER_SIZE_DISPLAY
    *DefaultOption: Size_2x4
    *Option: Size_2x4
    {
        *Name: "2 x 4"
        *PageDimensions: PAIR(200, 400)
        *PrintableArea: PAIR(200, 400)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: Size_4x4
    {
        *Name: "4 x 4"
        *PageDimensions: PAIR(400, 400)
        *PrintableArea: PAIR(400, 400)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: Size_4x6
    {
        *Name: "4 x 6"
        *PageDimensions: PAIR(400, 600)
        *PrintableArea: PAIR(400, 600)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: CUSTOMSIZE
    {
        *rcNameID: =USER_DEFINED_SIZE_DISPLAY
        *MinSize: PAIR(40, 40)
        *MaxSize: PAIR(1200, 3000) 
        *MaxPrintableWidth: 3000
        *MinLeftMargin: 0
        *TopMargin: 0
        *BottomMargin: 0
        *CenterPrintable?: TRUE
        *CursorOrigin: PAIR(0, 0)        
    }
}

唯一缺少的项目是*Command - 在Microsoft examples

*Command: CmdSelect
{
    *Order: DOC_SETUP.13
    *Cmd: "<1B>&l101a8c1e63F<1B>*p0x0Y<1B>*c0t12456x8184Y"
}

不幸的是,我为此制作的自定义打印机具有不同的打印机语言,不包括页面设置命令。所以 - 因为我没有命令,所以不包含命令是有意义的。我已尝试更改纵向与横向的光标位置,但它没有产生良好的效果。

我的假设是正确的,如果gpd正确,应用程序将发送自定义大小信息,而“用户”选项不可用并且可由用户选择吗?我只是看不到我能做些什么来修复gpd ......

我认为由于这些是标准部分,因此UI插件不需要专门创建它们......如果这个假设是错误的,那么在OEM UI插件中需要什么才能显示此部分?

1 个答案:

答案 0 :(得分:2)

Word似乎试图成为&#34;有用的&#34;通过确定打印机支持的纸张尺寸。然后,Word将尝试通过调整边距和页面大小来强制文档符合它认为支持的维度。它通过检查GPD中定义的纸张尺寸来实现此目的。 仅分析标准和供应商定义的纸张尺寸; CUSTOMSIZE定义似乎完全被忽略。至少在Word 2013中,默认的*PaperSize选项也有所不同。例如,我在我的GPD中定义了一个较大的纸张尺寸,但在我将其设为默认选项之前,它被忽略了。

请注意,Word支持的最大页面大小为 22&#34; x22&#34; [link]。供应商定义的纸张大小可能比此大,但这些不会显示在Word的页面大小选项列表中。但是,在这种情况下,Word仍然接受将自定义页面大小指定为我的较大但未列出的供应商定义的纸张大小,而不会增加边距。

如果在Word中显示纸张尺寸至关重要,您可能需要尝试查看Word将接受的内容。我发现供应商定义的纸张尺寸的限制为~4.04&#34; x~20.04&#34;我的打印机驱动程序。 Word的页面大小列表中没有大于此的大小。

在诊断此问题时,我发现每次更改打印机时,Word 2013都会刷新与打印机相关的页面大小列表。根据这一观察结果,我能够使用以下程序试验可接受的纸张尺寸:

  1. 在具有管理员权限的程序中,在C:\Windows\System32\spool\drivers\<platform>\3处打开已安装的GPD。
  2. 启动Word。
  3. 打开测试文档。
  4. 文件&gt;打印。
  5. 选择您的打印机。
  6. 检查列出的页面大小。
  7. 调整您在步骤1中打开的GPD中供应商定义的纸张尺寸的*PageDimensions*PrintableArea值。
  8. 保存GPD文件。
  9. 在Word中选择其他打印机。
  10. 重复步骤5-9,直到纸张大小显示在Word的页面大小列表中。