Como excluir os formulários padrão da impressora do sistema?

12

No Windows, existem formulários de impressora padrão do sistema que não podem ser excluídos da caixa de diálogo Propriedades do servidor de impressão. Existe alguma outra maneira de removê-los? Nós nunca vamos usar tamanhos de página como Envelope, B5 (JIS), US Std Fanfold, etc.

A caixa de propriedades do servidor de impressão possui um botão de exclusão inutilizável

Nossos servidores de impressão são o Windows Server 2003, se isso faz alguma diferença.

Matt Wilson
fonte
Excluir os formulários do sistema pode não ser uma opção. Por que não tentar definir um formulário padrão para cada bandeja da impressora em vez de rolar para baixo todas as vezes?
ServerFaulter
@ServerFaulter, preciso dos mesmos formulários para várias impressoras (e elas têm apenas uma bandeja na maior parte; a maioria são plotadoras de alimentação de rolo de grande formato).
Matt Wilkie
2
Isso é completamente gueto, mas você pode nomear seus formulários 000 MyForm - MyPageSizeou algo semelhante.
voretaq7
@ voretaq7 Acho que essa é a melhor opção, na verdade.
Dan
2
@ Dan Evita o problema, mas certamente não o resolve. Você realmente deve ser capaz de excluir modelos desnecessários, mas se a MS for fazer disso uma tarefa árdua.
voretaq7

Respostas:

5

Meu primeiro pensamento foi verificar se isso poderia ser realizado usando as APIs do Windows, mas, de acordo com este site sobre a API de formulários de impressora do Win32, nem é possível excluir os formulários do sistema programaticamente:

Não se pode DeleteForm () em um formulário interno: falha com ERROR_INVALID_PARAMETER.

Meu segundo pensamento foi encontrar um nome de formulário relativamente único, como US Std Fanfoldpesquisar o registro inteiro. Surpreendentemente, a entrada é cultivada em vários lugares. Minha sugestão, portanto, seria construir uma máquina de 32 bits em branco (32 bits para evitar confusão com as teclas de sombra) e ir para a cidade com algumas dessas chaves. Se você conseguir fazê-lo, deve ser fácil transpor para onde você precisar.

No entanto, é preciso dizer que, considerando o quanto a Microsoft claramente não deseja que você faça isso, você está se abrindo para problemas de suporte e compatibilidade.

Dan
fonte
A página da API de formulários vinculados está excepcionalmente bem escrita. Mesmo que eu não seja um desenvolvedor, isso torna muitas coisas muito mais claras para mim. Obrigado.
mate Wilkie
2

Os formulários de papel padrão fazem parte dos drivers da impressora e só podem ser excluídos manualmente dos arquivos correspondentes.

Aqui está um guia de como eu consegui fazer isso:

1. Abra o CMD como administrador.

2.enter "printui / s / t2" (sem as aspas)

3.Na janela aberta, selecione uma impressora para a qual os formulários em papel devem ser excluídos e clique em Propriedades na parte inferior.

4. Procure os arquivos listados no explorer no caminho indicado (provavelmente C: \ Windows \ System32 \ spool \ drivers \ x64 \ 3)

5.Faça uma cópia de backup de todos esses arquivos (por exemplo, em uma pasta na área de trabalho)

6.Abra cada um dos arquivos originais com o editor (um de cada vez). Se ele contiver código legível, pressione Ctrl + F (para abrir a pesquisa) e insira um dos formulários de papel mais destacados, que devem ser excluídos (por exemplo, cartão postal, ofício, carta ...) Se nenhuma das palavras pesquisadas for encontrada, feche o arquivo sem salvar e tente o próximo arquivo. (No meu caso, eu os encontrei em arquivos com a extensão ".gpd" e ".inx" para impressoras físicas, ".PPD" para meu PDF-Creator)

7. Quando uma entrada é encontrada: deve haver um parágrafo com os blocos de código listados para todos os formulários em papel. Alguns exemplos:

    [JAPANESE_POSTCARD]
    MediaType=8.1055
    InputBin=7

ou

    *Option: JAPANESE_POSTCARD_90x90x50x95
    {
        *Name: ""
    }

ou

    *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
        }
    }

Exclua todos esses blocos para todos os formulários de papel indesejados. Provavelmente, há mais de um parágrafo que contém blocos semelhantes. Continue pesquisando o arquivo e repita, até que nenhum seja encontrado. Em seguida, salve e feche o arquivo.

8.Depois de cada arquivo alterado, abra qualquer documento (por exemplo, Word, Excel ...) e verifique se os formulários de papel indesejados ainda estão listados nas propriedades de impressão dessa impressora.

-se ainda estiver presente: volte para a Etapa 6, procure o próximo arquivo.

-se não: parabéns! (Volte à Etapa 3, se houver mais impressoras para eliminar formulários indesejados).

-se houver algum problema: substitua o último arquivo editado pelo backup. (Talvez você tenha cometido um erro, tente novamente)

Espero que isto ajude. Felicidades!

Stallnig
fonte
1

No próprio servidor de impressão, os formulários estão localizados no registro:

HKLM \ System \ CurrentControlSet \ Control \ Print \ Forms

(OBSERVAÇÃO: nunca excluí os formulários pessoalmente daqui para fazer um backup da chave antes de excluir e testar os resultados).

O limpador
fonte
Excluí as entradas dessa chave e reinicializei, mas elas ainda aparecem na lista (Impressoras e aparelhos de fax> Propriedades do servidor> Formulários).
mate Wilkie
... também existem muitos formulários listados na caixa de diálogo Propriedades do servidor que não aparecem nessa chave do Registro.
Matt Wilkie
1
Era exatamente o que eu precisava fazer para me livrar de um segundo formulário A2 que não poderia excluir de outra forma. Obrigado!
Stefan Schmiedl
1

Inicie o processo "Gerenciamento de impressão" (printmanagement.msc).

Em Servidores de impressão / formulários, você pode excluir os formulários da impressora, mas não os incorporados.

Ainda não encontrei um método para excluir formulários internos, pois também não gosto de ver todo esse "ruído" nesse menu suspenso.

BlakBat
fonte
1
Essa é uma interface muito melhor do que as Propriedades da impressora para gerenciar vários formulários de Impressora ou Usuário, obrigado. Pena que os embutidos não podem ser removidos ou pelo menos ocultados da visualização normal.
214156 #