- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Writting a raw string of data to the printer.

Question:

How do I write a raw string of a data to the printer?

Answer:

Under Win16, you can use the SpoolFile function, or the

Passthrough escape if the printer supports it. This is detailed in 

TI3196 - Direct Commands to Printer - Passthrough/Escape available 

from the Borland web site.  Under Win32, you should use WritePrinter.



The following is an example of opening a printer and writing a raw 

string of data to the printer. Note that you must send the correct 

printer name, such as "HP LaserJet 5MP" for the function to succeed.

You are also responsible for embedding any necessary control codes 

that the printer may require.



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', 'Test This');

end;



* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile