Главная страница | назад





Article #15651: Writing a raw string of data to the printer.

 Question and Answer Database

     FAQ: FAQ651D - Writing a raw string of data to the printer.
Category: Printing
Platform: All-32Bit
 Product: 

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;

6/28/99 10:01:10 AM
 

Last Modified: 01-SEP-99