如何删除系统默认打印机表格?


12

在Windows上,存在无法从“打印服务器属性”对话框中删除的系统默认打印机表单。还有其他删除方式吗?我们将永远不会使用信封,B5(JIS),US Std Fanfold等页面大小,并且我想避免用户(和我自己)滚动大量的噪音。

打印服务器属性框具有不可用的删除按钮

如果有任何区别,我们的打印服务器是Windows Server 2003。


删除系统表格可能不是一个选择。为什么不尝试为打印机上的每个纸盘设置默认表格,而不必每次都向下滚动?
ServerFaulter 2012年

@ServerFaulter,我需要用于多台打印机的相同表格(大多数情况下它们只有一个纸盘;大多数是大幅面自动进纸绘图仪)。
马特·威尔基

2
这完全是贫民窟,但是您可以命名表格000 MyForm - MyPageSize或类似名称。
voretaq7

@ voretaq7我认为这实际上是最好的选择。
2012年

2
@Dan可以避免此问题,但肯定不能解决问题。您确实应该能够删除不必要的模板,但是如果MS要为此烦琐的话。
voretaq7

Answers:


5

我的第一个想法是,看看是否可以通过使用Windows API的实现,但根据网站对Win32的打印机表单API,它甚至不能以编程方式删除系统形式:

不能在内置表单上使用DeleteForm():它失败并显示ERROR_INVALID_PARAMETER。

我的第二个想法是找到一个相对唯一的表单名称,例如,US Std Fanfold然后搜索整个注册表。出人意料的是,入口在很多地方都有收获。因此,我的建议是建造一台空白的32位计算机(避免与影子密钥混淆的32位计算机)并使用其中一些密钥。如果您可以使用它,那么很容易将其转置到您需要执行此操作的任何地方。

但是,必须要说的是,鉴于Microsoft显然不希望您这样做的程度,您将开放自己的支持和兼容性问题。


链接表单API页面的编写非常出色。即使我不是开发人员,它也让我更清楚了许多事情。谢谢。
马特·威尔基

2

标准纸张形式是打印机驱动程序的一部分,只能从相应的文件中手动删除。

这是我如何做到的指南:

1.以管理员身份打开CMD。

2.输入“ printui / s / t2”(不带引号)

3.在打开的窗口中,选择要删除纸张形式的打印机,然后单击底部的“属性”。

4,在指定路径下的资源管理器中查找列出的文件(可能是C:\ Windows \ System32 \ spool \ drivers \ x64 \ 3)

5.对所有这些文件进行备份(例如,在桌面上的文件夹中)

6.使用编辑器打开每个原始文件(一次打开一个)。如果包含可读代码,请按Ctrl + F(打开搜索),然后输入一种名称更为突出的纸质表格,应将其删除(例如,明信片,法律,信函...)。如果找不到任何搜索到的单词,关闭文件而不保存,然后尝试下一个文件。(就我而言,我在物理打印机的扩展名为“ .gpd”和“ .inx”的文件中找到了它们,对于PDF-Creator在扩展名为“ .PPD”的文件中找到了它们)

7.找到条目时:应该有一个段落,其中列出了所有纸质表格的代码块。一些例子:

    [JAPANESE_POSTCARD]
    MediaType=8.1055
    InputBin=7

要么

    *Option: JAPANESE_POSTCARD_90x90x50x95
    {
        *Name: ""
    }

要么

    *Option: JAPANESE_POSTCARD
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *Constraints: LIST(Duplex.VERTICAL, Duplex.HORIZONTAL)
        *Constraints: InputBin.4
        *PageDimensions: PAIR(4724, 6992)
        *PrintableArea: PAIR(4412, 6680)
        *PrintableOrigin: PAIR(156, 156)
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *CursorOrigin: PAIR(156, 156)
            }
            *case: LANDSCAPE_CC270
            {
                *CursorOrigin: PAIR(4568, 156)
            }
        }
        *Command: CmdSelect
        {
            *CallbackID: 0x00470002
            *Order: DOC_SETUP.2
        }
        *Command: CmdSelect
        {
            *CallbackID: 0x00470002
            *Order: PAGE_SETUP.2
        }
    }

删除所有不需要的纸质表格的所有此类块。最有可能的是,一个以上的段落包含相似的块,因此请继续搜索文件并重复进行操作,直到没有找到为止。然后保存并关闭文件。

8.更改完每个文件后,打开任何文档(例如Word,Excel ...),然后检查该打印机的打印属性中是否仍列出了不需要的纸张格式。

-如果仍然存在:返回步骤6,搜索下一个文件。

-如果没有:恭喜!(如果有更多打印机要清除不需要的表格,请返回步骤3)。

-如果有任何问题:用备份覆盖上次编辑的文件。(也许您输入有误,请重试)

希望这可以帮助。干杯!


1

在打印服务器本身上,表格位于注册表中:

HKLM \ System \ CurrentControlSet \ Control \ Print \ Forms

(注意:我从来没有从这里删除过表格,因此在删除和测试结果之前,我会先备份密钥)。


我删除了该键下的条目并重新启动,但它们仍显示在列表中(打印机和传真>服务器属性>表单)。
马特·威尔基09年

...还有“服务器属性”对话框中列出的许多表格,这些表格都没有显示在该注册表项下。
马特·威尔基

1
这正是我要摆脱第二本无法删除的A2表格所要做的事情。谢谢!
Stefan Schmiedl

1

启动“打印管理”过程(printmanagement.msc)。

在打印服务器/表格下,您可以删除打印机表格,但不能删除内置表格。

我还没有找到一种删除内置表单的方法,因为我也不希望在该下拉菜单中看到所有的“噪音”。


1
与管理多个打印机或用户表单的打印机属性相比,这是一个更好的界面,谢谢。太糟糕了,无法从常规视图中移除或至少隐藏内置的。
马特·威尔基
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.