PDA

Ver la Versión Completa : Como imprimir un fichero con codigos escape


comba
12-07-2006, 19:21:37
Hola

Tengo un fichero txt con los codigos de escape de una impresora zebra y tengo que imprimirlor pero no se se hace.

Alguién me puede dar una horientación. Se que tengo que enviar ese fichero hacia la impresora pero no nunca lo he hecho.

Un saludo

marcoszorrilla
12-07-2006, 19:53:26
Puedes probar con Print del antiguo MS.Dos, que lo encontrarás generalmente en Windows\System32.

Un Saludo.

neasoporte
05-08-2006, 01:18:33
Yo lo hago de esta manera,pego labeles en la linea a destacar en impresion.
alli al momento de imprimir el report lo exporto como archivo de texto,luego
lo imprimo desde el dos...


procedure TFprimostrador.btnpresuClick(Sender: TObject);
var
aexport:tqrasciiexportfilter;
chkdos:bool;
begin
imprimeok:='S';
chkdos:=fcfgprinter.chkprndos.Checked;
case chkdos of
False:begin
pnlopcprn.Visible:=false;
if imprimeok='S' then
begin
fprnpresu.exptot.Expression:='sum(qprev.subtotal)';
fprnpresu.qrppresu.Print;
end else
MessageDlg('Problemas de Comunicacion Con Impresora..Verifique', mtInformation,[mbOk], 0);
gridprev.SetFocus;
end else
begin
pnlopcprn.Visible:=false;
if imprimeok='S' then
begin
try
fprnpresu2.exptot.Expression:='sum(qprev.subtotal)';
fprnpresu2.k1.Caption:=chr(14);
fprnpresu2.k2.Caption:=chr(20);
fprnpresu2.k3.Caption:=chr(15);
fprnpresu2.k4.Caption:=chr(14);
fprnpresu2.k5.Caption:=chr(20);
aexport:=tqrasciiexportfilter.create('c:\preventa\presu.txt');
fprnpresu2.qrppresu2.ExportToFilter(aexport);
ShellExecute(handle,'open','Command.com','Command.com /c type c:\preventa\presu.txt>lpt1','',sw_normal);
aexport.Finish;
finally
if not printer.Printing then
begin
saltos:=fcfgprinter.edtsaltos.IntValue;
paracorte;
end;
end;
end else
MessageDlg('Problemas de Comunicacion Con Impresora..Verifique', mtInformation,[mbOk], 0);
gridprev.SetFocus;
end;
end;
end;

procedure TFprimostrador.mandocode(s: string);
var
Handle, hDeviceMode: THandle;
N: DWORD;
DocInfo1: TDocInfo1;
Device, Driver, Port: array[0..255] of char;
PrinterName: string;
buf:array[0..255] of char;
lbuf:integer;
begin
Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
PrinterName := Format('%s', [Device]);
if not OpenPrinter(PChar(PrinterName), Handle, nil) then
//RaiseLastWin32Error;
imprimeok:='N';
try
with DocInfo1 do
begin
pDocName := 'Control';
pOutputFile := nil;
pDataType := 'RAW';
end;
StartDocPrinter(Handle, 1, @DocInfo1);
try
lbuf:=length(s);
copymemory(@buf,Pchar(s),lbuf);
if not WritePrinter(Handle, @buf, lbuf, N) then
//RaiseLastWin32Error;
imprimeok:='N';
finally
EndDocPrinter(Handle);
end;
finally
ClosePrinter(Handle);
end;
end;

procedure TFprimostrador.paracorte;
var
inisalto:integer;
begin
for inisalto:=1 to saltos do
begin
s:=#27+#10;
mandocode(s);
end;
end;

delphi.com.ar
05-08-2006, 03:26:21
Podrías hacer algo como esto: http://www.clubdelphi.com/foros/showpost.php?p=118264&postcount=3