Imprimir em USB

Delphi

11/05/2010

Eu tenho essa pequena rotina para emitir etiqueta em uma impressora matricial ligada a uma porta LPT1. Agora eu troquei de computador que não possui essa porta, ele só tem portas USB. Eu tenho um cabo que liga na impressora matricial e com entrada no computador como USB. Como eu faço para imprimir? Eu troquei o AssignFile para (F,'USB'), mas não imprimiu. Será que está faltando mais alguma coisa? procedure Tfrmfazetiqueta.SpeedButton2Click(Sender: TObject);
var
F : TextFile;
i : integer;
begin
   telateste4.Visible:=false;
   tbetiqueta4.open;
   tbetiqueta4.Filter:='impresso=''N'''+' or impresso=''n''';
   tbetiqueta4.Filtered:=true;
   AssignFile(F,'LPT1');    Rewrite(F);
   if Epson4.Checked = true then  // LX 300
      Writeln(F,#27#15#27#48#27#77) // Epson ok
   else
      Writeln(F,#27#15#27#48#27#77);
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'***********************************************************');
   Writeln(F,'');
   if Application.MessageBox('Pronto para emitir etiqueta','Atenção',mb_yesno)=idyes then begin
   while not tbetiqueta4.eof do begin
      i:=1;
      while i <= tbetiqueta4['quantidade'] do begin
         Writeln(F,tbetiqueta4.fieldbyname('linha1').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha2').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha3').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha4').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha5').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha6').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha7').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha8').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('linha9').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('rodape1').asstring);
         Writeln(F,tbetiqueta4.fieldbyname('rodape2').asstring);
         Writeln(F,'');
         i:=i+1;
      end;
      tbetiqueta4.edit;
      tbetiqueta4['impresso']:='S';
      tbetiqueta4.post;
   end;
   tbetiqueta4.filtered:=false;
   tbetiqueta4.close;
   edit20.Text:='';
   edit21.Text:='';
   showmessage('Final de Relatório.');
   Rima4.Checked:=false;
   Epson4.Checked:=false;
   btincluir4.setfocus;
   end;
   CloseFile(F);
end;
Francisco Assis

Francisco Assis

Curtidas 0

Respostas

Carlos Mazzi

Carlos Mazzi

11/05/2010

Olha antigamente agente aqui na empresa, via os programadores "enganando" a impressora, ou o windows, como quiser, para fazer algo do tipo... Mas como eu nao me lembrava , procurei na Internet e achei isso:    "Para Imprimir em modo caracter usando uma porta USB vc deve digamos enganar o computador, esta dica serve apenas para computadores na rede."
  No caso de configurar a impressão na LPT1 se usa o seguinte comando:
"AssignFile(Imp, 'LPT1');"
porém para a porta USB se vc usar o comando:
"AssignFile(Imp, 'USB001');"
não vai resolver, então vc deve fazer o seguinte:
no prompt do dos dever digitar o seguinte comando:
"NET USE LPT1 \NOME COMPUTADORNOME IMPRESSORA COMPARTILHADA /YES" lembrando que a impressora deve estar compartilhada na rede mesmo sendo do seu próprio computador.
  Desta forma no delphi vc deve deixar o comando:
"AssignFile(Imp, 'LPT1');"
  Se vc já está usando a porta LPT1 para outra impressora é só trocar a porta LPT1 para LPT2.
Tenta ai, senao conseguir.. dá um tok.    
GOSTEI 0
Francisco Assis

Francisco Assis

11/05/2010

Valeu Carlos, vou tentar e logo eu informo se funcinou ou não. Obg!
GOSTEI 0
Francisco Assis

Francisco Assis

11/05/2010

Funcionou Carlos.
GOSTEI 0
POSTAR