Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder PrinterSetupDialog ve PrintDialog ile Yazdırma İşlemleri (Belge veya Dosya Yazdırma)


PrinterSetupDialog ve PrintDialog ile Yazdırma İşlemleri (Belge veya Dosya Yazdırma)

AÇIKLAMA

C++ Builder 6 ile uyumludur. Bu projede PrinterSetupDialog ve PrintDialog bileşenleri anlatılmış ve bir belgenin C++ Builder ile nasıl yazdırıldığı gösterilmiştir. PrinterSetupDialog yazıcı ayarlarını ( yazıcı seçme, kağıt boyutu, kağıt yerleşimi, ağ üzerinden bir yazıcı tanıtılması gibi) sağlanmasında kullanılırken, PrintDialog yazdırılacak belgenin hangi kısımlarının yazdırılacağı kopya sayısı harmanla gibi bilinen rutin özelliklerin yapıldığı yerdir. Buradaki yazdırma işlemi (Canvas->TextOut) yardımıyla sağlanır. Burada sayfa başına 86 satır yazdırılmış olup(Yazıtipi=Lucidia Console Yazıtipi Sitili=Normal Boyut=10 baz alınarak hesaplanmıştır), satırların başlangıç noktası sayfanın (x,y)=(300,300) noktasındandır, her satırda yazıların üst üste gelmemesi için y koordinatı döngü değişkeni ile çarpılmıştır.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt

Program Kodu:

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. #include "Printers.hpp"
  8. //---------------------------------------------------------------------------
  9. #pragma package(smart_init)
  10. #pragma resource "*.dfm"
  11. TForm1 *Form1;
  12. //---------------------------------------------------------------------------
  13. __fastcall TForm1::TForm1(TComponent* Owner)
  14.         : TForm(Owner)
  15. {
  16. }
  17. //---------------------------------------------------------------------------
  18.  
  19. void __fastcall TForm1::Button1Click(TObject *Sender)
  20. {
  21. if(PrinterSetupDialog1->Execute())
  22. ;       
  23. }
  24. //---------------------------------------------------------------------------
  25.  
  26. void __fastcall TForm1::Button2Click(TObject *Sender)
  27. {
  28.  
  29. if(PrintDialog1->Execute())
  30. {
  31.   int tur=0;
  32.   TPrinter *Prntr = Printer();
  33.   int toplamsatir=Memo1->Lines->Count;
  34.   while(toplamsatir>0)
  35.   {
  36.   Prntr->BeginDoc();
  37.   for( int i = 0; i < 87; i++)
  38.   {
  39.   Prntr->Canvas->TextOut(300,300 + (i *Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i+(87*tur)])),Memo1->Lines->Strings[i+(87*tur)]);
  40.   }
  41.   Prntr->EndDoc();
  42.   toplamsatir-=86;
  43.   tur++;
  44.   }
  45. }
  46. }
  47. //---------------------------------------------------------------------------
  48. void __fastcall TForm1::FormCreate(TObject *Sender)
  49. {
  50. PrintDialog1->FromPage=1;
  51. PrintDialog1->MinPage=1;
  52. PrintDialog1->MaxPage=2500;
  53. PrintDialog1->ToPage=PrintDialog1->MaxPage;
  54. }
  55. //---------------------------------------------------------------------------
  56.  
Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Pazartesi, 03 Eylül 2012 09:40 )