Selam Webkolog okurları! Bugün C# .Net Framework 4 ve Visual Studio 2010'u kullanarak uygulamalarımızda yazdırma işlemlerini nasıl yapacağımıza bakacağız. Kullanıcıların belgeleri, raporları veya herhangi bir şeyi kolayca yazdırabilmesi, uygulamalarımızın kullanımını gerçekten kolaylaştırır. Bu yazıda, yazdırma sürecini adım adım ele alacak ve temel şeyleri örneklerle açıklayacağım. Hazırsanız, Visual Studio 2010'u açın ve yazdırma dünyasına dalalım!
Yazdırma İşlemlerinde
Kullanılan Temel Kontroller ve Sınıflar
C# .Net Framework, yazdırma işlemlerini kolaylaştırmak
için bir sürü kontrol ve sınıf sunar. İşte en önemlileri:
- PageSetupDialog: Yazdırılacak sayfanın boyutunu, yönünü ve kenar
boşluklarını ayarlamak için kullanılan bir diyalog kontrolüdür.
- PrintDialog: Yazdırma ayarlarını (yazıcı seçimi, kopya sayısı, yazdırılacak
sayfalar vb.) ayarlamak ve yazdırma işlemini başlatmak için kullanılan bir
diyalog kontrolüdür.
- PrintDocument: Yazdırılacak içeriği temsil eden ve yazdırma işlemini yöneten bir
sınıftır.
- PrintPreviewDialog: Yazdırılacak belgenin önizlemesini görmek için
kullanılan bir diyalog kontrolüdür.
Yazdırma işlemi sırasında yazı tipi, rengi, konumu
gibi şeyleri ayarlamak için de "Font", "SolidBrush" gibi
sınıflar kullanılır.
1. PrintDocument Sınıfı
PrintDocument sınıfı, yazdırma işleminin temelini
oluşturur. Yazdırılacak içeriği ve yazdırma ayarlarını yönetir. Bu sınıfı
kullanabilmek için projenize "System.Drawing.Printing" namespace'ini
eklemeniz gerekir.
// Örnek: PrintDocument nesnesi oluşturma ve yazdırma işlemini başlatma
PrintDocument yaziciCiktisi = new PrintDocument();
yaziciCiktisi.Print();
Ama bu kod, yazdırma işlemini başlatır ama neyin
yazdırılacağını belirtmez. Yazdırılacak içeriği PrintPage olayında belirtmemiz
gerekir.
2. PrintPageEventArgs
Sınıfı
PrintPage olayı, PrintDocument tarafından tetiklenir
ve yazdırılacak her sayfa için bir kez çalışır. Bu olaya ait PrintPageEventArgs
nesnesi, yazdırma işlemini kontrol etmek için çeşitli özellikler sunar:
- Graphics: Yazdırılacak içeriği çizmek için kullanılan grafik nesnesidir.
- HasMorePages: Yazdırılacak başka sayfalar olup olmadığını belirtir. Çok sayfalı
belgeler için önemlidir.
- PageBounds: Yazdırılacak sayfanın boyutlarını temsil eden bir dikdörtgen yapıdır.
- PageSettings: Sayfa ayarlarını (kağıt boyutu, yönlendirme vb.) içeren bir nesnedir.
- Cancel: Yazdırma işlemini iptal etmek için kullanılan bir özelliktir. true olarak ayarlanırsa yazdırma işlemi iptal edilir.
3. PrinterSettings Sınıfı
PrinterSettings sınıfı, yazıcının özelliklerini ve
yazdırma ayarlarını almak veya ayarlamak için kullanılır:
- Collate: Yazdırılan kopyaların harmanlanıp harmanlanmayacağını belirtir.
- Copies: Yazdırılacak kopya sayısını belirtir.
- DefaultPageSettings: Yazıcının varsayılan sayfa ayarlarını verir.
- Duplex: Yazıcının çift taraflı yazdırma (duplex) özelliğini destekleyip
desteklemediğini ve bu özelliğin etkin olup olmadığını belirtir.
- PrinterName: Kullanılacak yazıcının adını belirtir.
- IsDefaultPrinter: Belirtilen yazıcının sistemde varsayılan yazıcı
olup olmadığını gösterir.
- IsValid: Belirtilen yazıcının sistemde geçerli bir yazıcı olup olmadığını
gösterir.
- PaperSizes: Yazıcı tarafından desteklenen kağıt boyutlarını gösterir.
- FromPage, ToPage: Yazdırılacak sayfa aralığını belirtir.
- CanDuplex: Yazıcının çift taraflı yazdırmayı destekleyip desteklemediğini
gösterir.
4. Font ve Brush
Sınıfları
Yazdırılacak metnin görünümünü kontrol etmek için Font
ve Brush sınıflarını kullanırız:
- Font: Yazı tipini, boyutunu ve stilini (kalın, italik vb.) belirtir.
- Örnek: Font yaziTipi = new
Font("Arial", 12, FontStyle.Bold); // Arial, 12 punto, kalın
- Brush: Yazdırılacak metnin veya şekillerin rengini ve desenini belirtir.
- Örnek: SolidBrush firca = new
SolidBrush(Color.Black); // Siyah renkli dolgu
5. PrintDialog Kontrolü
PrintDialog kontrolü, kullanıcıya yazdırma
seçeneklerini sunan standart bir diyalog penceresi açar. Bu pencerede yazıcı
seçimi, kopya sayısı, yazdırılacak sayfalar gibi ayarlar yapılabilir.
PrintDialog pd = new PrintDialog();
if (pd.ShowDialog() == DialogResult.OK) {
// Yazdırma işlemi burada gerçekleşir.
}
PrintDialog sınıfının önemli
özellikleri:
AllowSelection: Kullanıcının sadece
seçili metni yazdırmasına izin verilip verilmeyeceğini kontrol eder.
AllowSomePages: Kullanıcının belirli
sayfa aralıklarını yazdırmasına izin verilip verilmeyeceğini kontrol eder.
ShowHelp: Yazdırma diyalogunda
Yardım butonu gösterilip gösterilmeyeceğini kontrol eder.
ShowNetwork: Ağ yazıcılarının
gösterilip gösterilmeyeceğini kontrol eder.
PrintToFile: Yazdırma işleminin bir
dosyaya yapılıp yapılmayacağını kontrol eder.
6. PrintPreviewDialog Kontrolü
`PrintPreviewDialog` kontrolü, yazdırma işleminden
önce belgenin nasıl görüneceğini gösteren bir önizleme penceresi açar. Bu,
hataları önlemek ve yazdırmadan önce son kontrolü yapmak için çok faydalıdır.
PrintPreviewDialog onizleme = new PrintPreviewDialog();
onizleme.Document = printDocument1; // Önizlenecek belgeyi belirtir.
onizleme.ShowDialog();
7. PageSetupDialog
Kontrolü
PageSetupDialog kontrolü, yazdırma işleminden önce
sayfa ayarlarını (kağıt boyutu, yönlendirme, kenar boşlukları) yapılandırmak
için standart bir diyalog kutusu görüntüler.
pageSetupDialog1.Document = printDocument1; // Kontrolün hangi belgeyle ilişkili olduğunu belirtir.
pageSetupDialog1.AllowMargins = true; // Kenar boşluklarının ayarlanmasına izin verir.
pageSetupDialog1.AllowOrientation = true; // Sayfa yönlendirmesinin (yatay/dikey) ayarlanmasına izin verir.
pageSetupDialog1.AllowPaper = true; // Kağıt boyutunun seçilmesine izin verir.
pageSetupDialog1.AllowPrinter = true; // Yazıcı seçimine izin verir.
pageSetupDialog1.ShowNetwork = true; // Ağ yazıcılarını gösterir.
pageSetupDialog1.ShowHelp = true; // Yardım butonu görüntüler.
pageSetupDialog1.EnableMetric = true; // Ölçü biriminin metrik (mm) olup olmadığını belirler.
// Diyalog kutusunu göster ve sonucu kontrol et
if (pageSetupDialog1.ShowDialog() == DialogResult.OK) {
// Kullanıcı Tamam'a tıkladıysa, sayfa ayarlarını PrintDocument'e uygula
printDocument1.DefaultPageSettings = pageSetupDialog1.PageSettings;
}
Örnek Bir Yazdırma İşlemi
Şimdi, bir TextBox kontrolündeki metni yazdıran basit
bir örnek yapalım:
private void buttonYazdir_Click(object sender, EventArgs e) {
PrintDocument kagit = new PrintDocument();
kagit.PrintPage += new PrintPageEventHandler(kagit_PrintPage); // PrintPage olayını bağla
kagit.Print(); // Yazdırma işlemini başlat
}
private void kagit_PrintPage(object sender, PrintPageEventArgs e) {
SolidBrush firca = new SolidBrush(Color.Black);
Font printFont = new Font("Times New Roman", 12, FontStyle.Regular);
e.Graphics.DrawString(textBox1.Text, printFont, firca, 10, 10); // Metni belirtilen konumda yazdır
}
Bu örnekte, buttonYazdir_Click olayı yazdırma işlemini başlatır. kagit_PrintPage metodu ise yazdırılacak içeriği ve biçimini tanımlar. e.Graphics.DrawString metodu, belirtilen metni, yazı tipini, rengi ve konumu kullanarak yazdırır.
Umarım bu makale, C# .Net Framework 4 ile yazdırma işlemlerini anlamanıza yardımcı olur. Başka bir konuda yardıma ihtiyacınız olursa çekinmeyin!
Webkolog'u takipte kalın!
Hepinize bol kodlu günler dilerim!
0 yorum:
Yorum Gönder