Как послать файл на принтер?

Материал из DRKB


uses winspool;
const
  GenericPrinter: PChar = 'Universal/Nur Text';
  // Change to systems generic drivers name, it's localized
procedure PrintLineToGeneric(const line: string );
var
  BytesWritten: DWORD;
  hPrinter: THandle;
  DocInfo: TDocInfo1;
begin
  if not WinSpool.OpenPrinter(GenericPrinter, hPrinter, nil) then
    raise Exception.Create('Printer not found');
  try
    DocInfo.pDocName := 'MyDocument';
    DocInfo.pOutputFile := Nil;
    DocInfo.pDatatype := 'RAW';
    if StartDocPrinter(hPrinter, 1, @DocInfo) = 0 then
      Abort;
    try
      if not StartPagePrinter(hPrinter) then
        Abort;
      try
        if not WritePrinter(hPrinter, @line[1], Length(line), BytesWritten) then
          Abort;
      finally
        EndPagePrinter(hPrinter);
      end;
    finally
      EndDocPrinter(hPrinter);
    end;
  finally
    WinSpool.ClosePrinter(hPrinter);
  end;
end;


ID: 03258