Как удалить системные принтерные формы по умолчанию?

12

В Windows есть системные принтерные формы по умолчанию, которые нельзя удалить из диалогового окна «Свойства сервера печати». Есть ли какой-то другой способ их удаления? Мы никогда не собираемся использовать размеры страниц, такие как Envelope, B5 (JIS), US Std Fanfold и т. Д., И я бы хотел избавить пользователей (и себя!) От необходимости пролистывать большой длинный список шума.

В окне свойств сервера печати есть неиспользуемая кнопка удаления

Наши серверы печати - Windows Server 2003, если это имеет какое-либо значение.

Мэтт Уилки
источник
Удаление системных форм не может быть вариантом. Почему бы не попробовать установить форму по умолчанию для каждого лотка на принтере, вместо того чтобы каждый раз прокручивать страницу вниз?
ServerFaulter
@ServerFaulter, мне нужны одни и те же формы для нескольких принтеров (по большей части они имеют только один лоток; большинство из них - широкоформатные рулонные плоттеры).
Мэтт Уилки
2
Это полностью гетто, но вы можете назвать свои формы 000 MyForm - MyPageSizeили аналогичные.
voretaq7
@ voretaq7 Я считаю, что это лучший вариант.
Дан
2
@Dan Это позволяет избежать проблемы, но, безусловно, не решает ее. Вы действительно ДОЛЖНЫ быть в состоянии удалить ненужные шаблоны, но если MS собирается сделать это рутинным занятием.
voretaq7

Ответы:

5

Моей первой мыслью было выяснить, можно ли это сделать с помощью Windows API, но, согласно этому веб-сайту об Win32 Printer Forms API, даже невозможно удалить системные формы программным способом:

Нельзя удалить DeleteForm () во встроенной форме: она завершается с ошибкой ERROR_INVALID_PARAMETER.

Моя вторая мысль состояла в том, чтобы найти относительно уникальное имя формы, такое как US Std Fanfoldпоиск по всему реестру. Удивительно, но вступление культур в целом ряде мест. Поэтому я предлагаю создать пустой 32-битный компьютер (32-битный, чтобы избежать путаницы с теневыми клавишами) и поехать в город с некоторыми из этих ключей. Если вы работаете, это должно быть легко перенести туда, где вам нужно это сделать.

Однако нужно сказать, что, учитывая, что Microsoft явно не хочет, чтобы вы это делали, вы открываете себя для проблем поддержки и совместимости.

Дэн
источник
Страница API связанных форм написана исключительно хорошо. Несмотря на то, что я не разработчик, мне многое становится понятнее. Благодарю.
Мэтт Уилки
2

Стандартные бумажные формы являются частью драйверов принтера и могут быть удалены только вручную из соответствующих файлов.

Вот руководство о том, как я смог это сделать:

1. Откройте CMD в качестве администратора.

2. введите "printui / s / t2" (без кавычек)

3.В окне opend выберите принтер, для которого необходимо удалить бумажные формы, и нажмите «Свойства» внизу.

4. Найдите указанные файлы в проводнике по указанному пути (вероятно, C: \ Windows \ System32 \ spool \ drivers \ x64 \ 3)

5. Сделайте резервную копию всех этих файлов (например, в папке на рабочем столе)

6. Откройте каждый из оригинальных файлов с помощью редактора (по одному за раз). Если он содержит читаемый код, нажмите Ctrl + F (чтобы открыть поиск) и введите одну из наиболее заметных бумажных форм, которую следует удалить (например, Postcard, Legal, Letter ...). Если ни одно из искомых слов не найдено, закройте файл без сохранения и попробуйте следующий файл. (В моем случае я нашел их в файлах с расширением ".gpd" и ".inx" для физических принтеров, ".PPD" для моего PDF-Creator)

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, если есть больше принтеров, чтобы избавиться от нежелательных форм).

-Если есть какие-либо проблемы: перезаписать последний отредактированный файл резервной копией. (Возможно, вы ошиблись, поэтому попробуйте еще раз)

Надеюсь это поможет. Ура!

Stallnig
источник
1

На самом принт-сервере формы находятся в реестре:

HKLM \ System \ CurrentControlSet \ Control \ Print \ Forms

(ПРИМЕЧАНИЕ. Я никогда сам не удалял формы отсюда, поэтому сначала делаю резервную копию ключа перед удалением и проверкой результатов).

Очиститель
источник
Я удалил записи под этим ключом и перезагрузил, но они все еще отображаются в списке (Принтеры и факсы> Свойства сервера> Формы).
Мэтт Уилки 16.09.09
... также есть много форм, перечисленных в диалоге свойств сервера, которые не отображаются в этом разделе реестра.
Мэтт Вилки
1
Это было именно то, что мне нужно было сделать, чтобы избавиться от второй формы А2, которую я не мог удалить иначе. Благодарность!
Стефан Шмидль
1

Запустите процесс «Управление печатью» (printmanagement.msc).

В разделе «Серверы печати / Формы» можно удалить формы «Принтер», но не «Встроенные формы».

Мне еще не удалось найти метод удаления встроенных форм, поскольку мне тоже не нравится видеть весь этот «шум» в этом раскрывающемся списке.

BlakBat
источник
1
Спасибо, это намного лучший интерфейс, чем Свойства принтера, для управления несколькими формами Принтер или Пользователь. Жаль, что встроенные не могут быть удалены или, по крайней мере, скрыты от обычного просмотра.
Мэтт Уилки