Imprimir via JS na LPT1 da máquina do cliente

6 respostas
A

Boa tarde;

Alguém sabe como posso fazer para imprimir dados direto na impressora da máquina do usuário?
O que eu preciso é descobrir qual é a porta que a impressora esta instalada e enviar os dados direto nesta porta (LPT1:, LPT2:, COM1:, \SERVER\IMP01, etc)…

Agradeço qualquer ajuda…

6 Respostas

M

vc terá que usar um applet…

P

Via javascript ? document.print() nao da ?

A

Já tentei document.print(), mas o problema é que preciso enviar o caracter de controle 2 (ASCII) para a impressora(é de etiquetas da Datamax), e quando coloco esse carater no pagina, ele não funciona.

W
pra isso eu crei um objeto com no javascript :

function ImprImprimir(Linha,Coluna,Texto){

var DifeL = Linha - this.Linha ;

for (i=1;i0){

Texto = Replicate(? ?,DifeC)+Texto ;

}

this.Texto = this.Texto + Texto ;

this.Coluna = this.Texto.length ;

}

function ImprFechar(){

if (this.Texto!=?"){

this.objTextFile.WriteLine(this.Texto);

}

this.Linha = 0 ;

this.Coluna = 0 ;

this.Texto = ?? ;

this.objTextFile.Close();

}

function ImprAbrir(){

var ForReading = 1, ForWriting = 2, ForAppending = 8;

this.Arquivo = ?c:\?+this.Porta ;

this.objTextFile = this.objFSO.CreateTextFile(this.Arquivo, true);

}

function ImprAbrirLeitura(){

var ForReading = 1, ForWriting = 2, ForAppending = 8;

this.Arquivo = ?c:\?+this.Porta ;

this.objTextFile = this.objFSO.OpenTextFile(this.Arquivo, ForReading);

}

function ImprAjustarLC(Linha,Coluna){

this.Linha = Linha ;

this.Coluna = Coluna ;

}

function ImprEject(){

this.Linha = 0 ;

this.Coluna = 0 ;

this.Texto = this.Texto+String.fromCharCode(12) ;

}

function ImprNCOMP(){

this.Texto = this.Texto+String.fromCharCode(15) ;

}

function ImprCOMPN(){

this.Texto = this.Texto+String.fromCharCode(18) ;

}

function ImprLerTudo(){

return this.objTextFile.ReadAll() ;

}

function Impr(){

this.Linha = 0 ;

this.Coluna = 0 ;

this.Texto = ?? ;

this.Porta = ?LPT1 ;

this.Arquivo = ?c:\?+this.Porta ;
this.Imprimir = ImprImprimir ;

this.Fechar = ImprFechar ;

this.Abrir = ImprAbrir ;

this.AjustarLC = ImprAjustarLC ;

this.Eject = ImprEject ;

this.LerTudo = ImprLerTudo ;

this.AbrirLeitura = ImprAbrirLeitura ;

this.NCOMP = ImprNCOMP ;
this.COMPN = ImprCOMPN ;

this.objFSO = new ActiveXObject(?Scripting.FileSystemObject?);

}

ai é so usar assim :

Imp = new Impr();

Imp.Porta = ?LPT1′ ;

Imp.Abrir();

Imp.Imprimir(1,10,?Isso aki vai imprimir na linha 1 coluna 10′) ;

Imp.Imprimir(1,50,?Isso aki vai imprimir na linha 1 coluna 50′) ;

Imp.Imprimir(10,1,?Isso aki vai imprimir na linha 10 coluna 1′) ;

Imp.Fechar();
T

Hum… páginas Web podem chamar este objeto via Javascript? No meu tempo acho que um erro feio era cuspido na nossa cara (erro de permissão; isso não tinha jeito nenhum de contornar), mas não sei como está isso hoje em dia.

M

Alguem conseguiu fazer isso funciona? preciso muito fazer um sistema em php que roda na web imprimir direto na maquina do usuario e procuro uma solução?

Criado 2 de março de 2007
Ultima resposta 12 de out. de 2008
Respostas 6
Participantes 6