Estoy es algo similar de lo que te dice Alejandro, puedes agregar los códigos de control por medio de 1 archivo de texto:
Código Delphi
[-]
....
var
Txt :TextFile;
try
AssignFile(txt,'c:\Codigos.txt');
Write(txt, #27'@');
finally
CloseFile(txt);
end;
if SpoolFile('c:\Codigos.txt','\\Servidor\Facturas') <> 0 then
ShowMessage('Impresora No esta Preparada');
......
function SpoolFile(const FileName, PrinterName: string): Integer;
var
Buffer: record
JobInfo: record Path: PChar;
JobID: DWORD;
end;
PathBuffer: array[0..255] of Char;
end;
SizeNeeded: DWORD;
Handle: THandle;
PrtName: string;
ok: Boolean;
begin
PrtName := PrinterName;
if PrtName = '' then
PrtName := Printer.Printers[Printer.PrinterIndex]; ok := False;
if OpenPrinter(PChar(PrtName), Handle, nil) then
if AddJob(Handle, 1, @Buffer, SizeOf(Buffer), SizeNeeded) then
if CopyFile(PChar(FileName), Buffer.JobInfo.Path, True) then
if ScheduleJob(Handle, Buffer.JobInfo.JobID) then
ok := True;
if not ok then
Result := GetLastError
else
Result := 0;
end;
Espero te sirva....Suerte.