Adicione WinSpool no uses. OpenPrinter p/ pegar o Handle da impressora: var HPrinter:THandle;
begin
OpenPrinter(PChar('Nome_da_Impressora'), HPrinter, nil);
end;
StartDocPrinter p/ iniciar um job no spool de impressão:var Doc:Doc_Info_1;
begin
Doc.pDocName := 'Nome do Relatório';
Doc.pOutputFile := '';
Doc.pDatatype := 'RAW';
StartDocPrinter(HPrinter, 1, @Doc);
end;
Alguns comandos ESC:
var iRet:Longword; s:String;
s := #27#120#0; // coloca em modo Draft
WritePrinter(HPrinter, @s[1], 3, iRet);
s := #27#50; // define espacejamento vertical em 1/6 polegadas
WritePrinter(HPrinter, @s[1], 2, iRet);
s := #27#74 + Chr(10); // Avança 10 linhas
WritePrinter(HPrinter, @s[1], 3, iRet);
s := #27#69; // coloca fonte em estilo bold
WritePrinter(HPrinter, @s[1], 2, iRet);
s := #27#15#27#80; // imprime com 17 caracteres por polegada
WritePrinter(HPrinter, @s[1], 4, iRet);
s := 'Teste de Impressão'; // imprime uma linha
WritePrinter(HPrinter, @s[1], Length(s), iRet);
s := #13#10; // Carriage return e Line feed
WritePrinter(HPrinter, @s[1], 2, iRet);
EndDocPrinter p/ finalizar o job de impressão:
begin
EndDocPrinter(HPrinter);
end;
ClosePrinter p/ fechar o objeto HPrinter
begin
ClosePrinter(HPrinter);
end;
Verifique outros comando ESC no manual da impressora(existem muitos outros)