Imprimir dados na porta lpt1 do cliente
Por: Saturday 12 November 2005 às 11:12 AM
Vou falar neste post sobre um problema que tive há algum tempo atrás, que parecia ser quase impossível de se resolver, mas com a ajuda do meu antigo chefe e amigo Rogério A. Barlotti, que me mostrou algumas funções para me ajudar, vi que era possível e consegui.
O problema era a necessidade de se imprimir recibos diretamente na porta lpt1, utilizando o browser, ou seja, não bastaria eu codificar um script PHP para imprimir na porta lpt1, pois esta impressão teria que ser no computador do cliente.
A idéia de escrever este post surgiu de uma dúvida da lista PHP Especialistas uma lista muita boa para discussões de PHP.
A solução: montei um script que grava um arquivo no computador do cliente com as informações que devem ser impressas, outro arquivo .bat que será responsável pelo comando de imprimir o arquivo criado, e depois executo este .bat que foi criado, parece complicado, mas não é não.
Existem alguns inconvenientes.
O primeiro: para este script funcionar corretamente, você tem que diminuir alguns níveis de segurança do navegador, está tudo explicado no exemplo que coloquei aqui.
O segundo: ele foi testado somente no Internet Explorer, por isso não sei se ele funcionaria em outros browsers, principalmente no Firefox.
Apesar destes inconvenientes, acho que valeu a pena escrever este post para divulgar as várias funcionalidades do JavaScript.
Espero que este script seja útil, e se este apresentar alguma falha, alguma necessidade de ajuste, ou mesmo se funcionar no Firefox, fique a vontade para escrever seus comentários.
Download do arquivo de exemplo.
Fontes:
Programming the FileSystemObject
[update]
O Heliegesio me mandou um código que funciona pra SQL Server 2000, não cheguei a testar. Quem quiser pode baixar o código aqui.
Espero que possa ser útil para mais gente ainda.
[/update]
Artigos relacionados:
Tags: Impressão JavaScript PHP Programação Segurança Tecnologia
















# 1° Max November 21st, 2005 às 1:24 AM GMT
Não cheguei a testar o script, mas ainda assim, gostaria de fazer uma sugestão:
Ao se fazer estas alterações ditas nas configs de segurança do IE, a máquina do cliente vai ficar vulnerável.
Algo menos arriscado seria adicionar o endereço do servidor na lista de sites confiáveis que me parece já ter como padrão a opção:
Ferramentas -> Opcoes de Internet -> Seguranca ->
Sites Confiáveis -> Nivel Personalizado -> Iniciar e executar scripts de controle ActiveX nao marcados como seguro -> [Avisar]
O que acho ainda mais adequado, pois antes de ser executado será perguntado ao cliente se ele aceita a “execução”, mas até poderia-se mudar de [Avisar] para [Ativar], se a facilidade for tão desejável.