Desativar a impressão no Firefox

2

Estou usando o Firefox 23.0.1. Eu quero desativar totalmente a impressão do Firefox, isso é possível?

Eu usei about: config para definir as seguintes propriedades:

  • print.always_print_silent = true
  • print.show_print_progress = false

Me deixa no meio do caminho, o Firefox imprime silenciosamente e não mostra nenhum indício de impressão. No entanto, o trabalho ainda é enviado para a impressora padrão.

Eu então tentei definir print_printer para uma string vazia, já que esta parece ser a impressora padrão, mas ainda envia o trabalho para aquela impressora.

Existe alguma maneira de desativar completamente a impressão para o Firefox, de preferência através das configurações em about: config ?

Eu quero fazer isso, pois tenho testes semi-load automáticos (usando o Selenium junto com o JMeter). No aplicativo que é testado, um pdf é incorporado e tem um javascript enviando o pdf para a impressora padrão. Se a impressão não puder ser desativada, muitos trabalhos de lixo serão enviados para a impressora.

    
por Magnilex 11.09.2013 / 12:00

2 respostas

5

Você pode desativar a função de impressão JavaScript para evitar ações de impressão iniciadas por JS.

Existem duas maneiras de desativar uma função JS:

  • Definir políticas para não permitir a função
  • Substitua por uma função fictícia

  • Outra opção é definir uma impressora de todo o sistema fictícia

Opção 1: Políticas de segurança

Você pode definir as Políticas de segurança configuráveis adicionando a seguinte linha para o arquivo user.js (nota: o Firefox deve estar completamente fechado antes que este arquivo possa ser modificado):

user_pref("capability.policy.default.Window.print", "noAccess");

Como alternativa, você pode navegar até about:config e adicionar uma nova chave de string com o mesmo nome e valores. Observe que você não poderá ver ou remover essa chave na interface de configuração.

Se você deseja bloquear somente isso em sites específicos, o seguinte deve funcionar (substitua os domínios de exemplo):

user_pref("capability.policy.blockPrinting.Window.print", "noAccess");
user_pref("capability.policy.blockPrinting.sites", "http://example.com http://something.example.com");

O problema com essa abordagem é que ela lançará uma exceção JS, o que pode interferir na execução do JS. O othe rapproach, uma função JS fictícia, é provavelmente mais seguro.

Opção 2: Função Dummy

Você pode substituir a função de impressão por uma função JS fictícia da seguinte forma:

window.print = function(){};

Todas as chamadas para window.print depois disso não farão nada. Você pode executar isso na página solicitada, por exemplo, um userscript (Greasemonkey).

Opção 3: Impressora dummy

A terceira opção é fazer como você já fez e desabilitar a caixa de diálogo e, em seguida, definir a impressora padrão do sistema para uma que não faça nada. Isso não é recomendado, pois afetará todo o sistema (embora na maioria dos outros programas você possa simplesmente selecionar uma impressora diferente, isso é inconveniente).

Esta questão aborda a criação de uma impressora fictícia no Windows .

    
por 11.09.2013 / 13:00
1

Não vejo o que isso tem a ver com o Firefox. Isso é mais sobre o trabalho de impressão.

Você pode instalar algo como um gravador de PDF como sua impressora e configurá-lo como padrão ... No entanto, você provavelmente será solicitado a criar nomes de arquivos salvos, etc., que podem / não ser desejáveis.

Você pode criar uma impressora 'falsa' (basta instalar os drivers e o software, configurá-la como padrão para que o trabalho de impressão nunca seja executado).

Desligue a impressora durante o teste (lembre-se de limpar a fila antes de ligá-la novamente (isso me dá o meu voto, mas não tenho certeza da sua situação exata).

Existe possivelmente algum software de 'impressora virtual' já existente, o que pode ser suficiente para as suas necessidades (mas recomendar algum é fora do assunto aqui, por favor não pense que estou sendo inútil).

    
por 11.09.2013 / 12:35