[View Borland Home Page][View Product List][Search This Web Site][View Available Downloads][Join Borland Online][Enter Discussion Area][Send Email To Webmaster]
Delphi Devsupport

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;

Back To Faq Index
Borland Online
Trademarks & Copyright © 1997 Borland International, Inc.