program FormFeed; uses windows, winspool; // From MSDN... function RawDataToPrinter (const szPrinterName : string; const data; dwCount : DWORD) : boolean; var hPrinter : THandle; DocInfo : TDocInfo1; dwJOB : DWORD; dwBytesWritten : DWORD; begin result := False; if OpenPrinter (pchar (szPrinterName), hPrinter, Nil) then try // Fill in the structure with info about this "document" DocInfo.pDocName := 'My Document'; DocInfo.pOutputFile := Nil; DocInfo.pDatatype := 'RAW'; // Inform the spooler the document is beginning dwJob := StartDocPrinter (hPrinter, 1, @docInfo); if dwJob <> 0 then try if StartPagePrinter (hPrinter) then try if WritePrinter (hPrinter, @data, dwCount, dwBytesWritten) then result := dwBytesWritten = dwCount; finally EndPagePrinter (hPrinter) end finally EndDocPrinter (hPrinter); end finally ClosePrinter (hPrinter) end end; var printer : array [0..255] of char; p : Integer; const ff : char = #12; begin GetProfileString ('windows', 'device', ',,,', printer, sizeof(printer)); p := Pos (',', printer); if p > 0 then printer [p - 1] := #0; RawDataToPrinter (printer, ff, 1); end.