Delphi32.com - Home!
| Home/News | Downloads | Forums | D32 Magazine | Resources | Info and Facts |  
 
 Printing in Delphi without using the TPrinter Unit


How can I print in Delphi without using the TPrinter Unit?   

    The following example uses the Windows API function PrintDlg() to allow the user to choose a printer and prints two pages using the returned dc. Example:

    uses CommDlg;
    {$IFNDEF WIN32}
     const MAX_PATH =  44;
    {$ENDIF}
    procedure TForm .Button Click(Sender: TObject);
    var
      Pd : TPrintDlg;
      DocInfo: TDocInfo;
    begin
      FillChar(Pd, sizeof(Pd), #0); 
      Pd.lStructSize := sizeof(Pd);
      Pd.hWndOwner := Form .Handle;
      Pd.Flags := PD_RETURNDC;
      if PrintDlg(pd) then begin
        FillChar(DocInfo, sizeof(DocInfo), #0);
        DocInfo.cbSize := SizeOf(DocInfo);
        GetMem(DocInfo.lpszDocName, 32);
        GetMem(DocInfo.lpszOutput, MAX_PATH);
        lStrCpy(DocInfo.lpszDocName, 'My Document');
       {Add this line to print to a file }
        lStrCpy(DocInfo.lpszOutput, 'C:\Download\Test.doc');
        StartDoc(Pd.hDc, DocInfo);
        StartPage(Pd.hDc);
        TextOut(Pd.hDc,  00,  00, 'Page  ', 6);
        EndPage(Pd.hDc);
        StartPage(Pd.hDc);
        TextOut(Pd.hDc,  00,  00, 'Page 2', 6);
        EndPage(Pd.hDc);
        EndDoc(Pd.hDc);
        FreeMem(DocInfo.lpszDocName, 32);
        FreeMem(DocInfo.lpszOutput, MAX_PATH);
      end;
    end;
    

     



  << Previous Faq     Complete List     Next Faq >>  



 
 Hits/month  2,500,000+ 
 Downloads
 (Since May 2000)
 7,393,709 
 Total Files  6,023 
 Forum msgs  7,670 
 Articles/FAQs  70+/900+ 
Kylix
Tips n Tricks
FAQs
Knowledge Base
Bug Listings
Articles
Books
Newsgroups
Links
Submissions
Testimonials
Advertising
Contact Us
About Us
Search Amazon:
Top Selling Software at Amazon

| Home/News | Downloads | Forums | Resources | Info and Facts | Testimonials |
  Site Search:
 


Comments/Problems: Webmaster@delphi32.com
Copyright © 1998-2006, Delphi32.com. All rights reserved.
Terms of Use