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

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

在 Windows 上,系统默认的打印机表单无法从“打印服务器属性”对话框中删除。还有其他方法可以删除它们吗?我们永远不会使用信封、B5(JIS)、美国标准折叠纸等页面尺寸,我想让用户(和我自己!)不必滚动浏览一大长串的噪音列表。

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

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

答案1

我的第一个想法是看看是否可以通过使用 Windows API 来实现这一点,但根据有关 Win32 打印机表单 API 的网站,甚至无法以编程方式删除系统表单:

无法在内置表单上执行 DeleteForm():它会失败并出现 ERROR_INVALID_PARAMETER。

我的第二个想法是找到一个相对独特的表单名称,例如,US Std Fanfold然后搜索整个注册表。令人惊讶的是,该条目出现在很多地方。因此,我的建议是构建一台空白的 32 位机器(32 位以避免与影子密钥混淆)并深入研究其中一些密钥。如果您让它工作,那么应该很容易转移到您需要执行此操作的任何地方。

然而,必须要说的是,考虑到微软显然不希望你这样做,你将面临支持和兼容性问题。

答案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)。

-如果有任何问题:用备份覆盖最后编辑的文件。(也许你犯了一个错误,所以再试一次)

希望这能有所帮助。干杯!

答案3

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

HKLM\系统\CurrentControlSet\控制\打印\表格

(注意:我从来没有亲自删除过这些表格,所以在删除并测试结果之前,我会先备份密钥)。

答案4

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

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

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

相关内容