Pri tomto postupe si zodpovedý aj za obslúženie požiadaviek, ktoré tlačiareň môže vyžadovať.

uses WinSpool;
 
procedure WriteRawStringToPrinter(PrinterName:String; S:String);
 var
   Handle: THandle;
   N: DWORD;
   DocInfo1: TDocInfo1;
 begin
   if not OpenPrinter(PChar(PrinterName), Handle, nil) then
     begin
      ShowMessage('error ' + IntToStr(GetLastError));
      Exit;
     end;
   with DocInfo1 do begin
     pDocName := PChar('test doc');
     pOutputFile := nil;
     pDataType := 'RAW';
 
   end;
   StartDocPrinter(Handle, 1, @DocInfo1);
   StartPagePrinter(Handle);
   WritePrinter(Handle, PChar(S), Length(S), N);
   EndPagePrinter(Handle);
   EndDocPrinter(Handle);
   ClosePrinter(Handle);
 end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  WriteRawStringToPrinter('HP LaserJet 5MP', 'Test This');
end;