C# ile Diyalog Penceresi Kullanarak Nasıl Yazdırılır?
Yazdirma diyaloğu, kullanıcılara bir yazıcı seçme, kopya sayısını ayarlama, sayfa aralığını seçme ve yazdırmadan önce kağıt seçeneklerini ayarlama olanağı tanıyan standart işletim sistemi penceresidir. Kullanıcıların belgelerinin nasıl ve nerede yazdırılacağını kontrol etmeleri gereken masaüstü uygulamaları için bu diyalog penceresini göstermek beklenen davranıştır.
IronPrint, yerel yazdırma iletişim kutusunu görüntüleyen, kullanıcı seçimlerini uygulayarak belgeyi seçilen yazıcıya gönderen tek bir yöntem — Printer.ShowPrintDialog() — sağlar. Bir NuGet paketini kuruyoruz ve bir satır kod yazıyoruz.
Hızlı Başlangıç: Diyalog Penceresi ile Yazdırma
- NuGet aracılığıyla IronPrint yükleyin:
Install-Package IronPrint - Dosyaya
using IronPrint;ekleyin - Yerel yazdırma iletişim kutusunu açmak için
Printer.ShowPrintDialog("filepath")çağırın - (İsteğe bağlı) iletişim kutusu varsayılanlarını önceden yapılandırmak için bir
PrintSettingsnesnesi geçirin - Kullanıcı yazıcıyı, kopya sayısını ve seçenekleri seçer, ardından Yazdır'a tıklar
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPrint yükleyin
PM > Install-Package IronPrint -
Bu kod parçasını kopyalayıp çalıştırın.
using IronPrint; // Display the print dialog and print the document Printer.ShowPrintDialog("document.pdf"); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronPrint kullanmaya başlayın ücretsiz deneme ile
Minimal İş Akışı (5 adımda)
- IronPrint C# yazdırma kütüphanesini yükleyin
Printer.ShowPrintDialog("filepath")çağrısı yapın- Kullanıcı yazıcıyı, kopya sayısını ve sayfa aralığını seçer
- Belgeyi seçilen yazıcıya göndermek için Yazdır'a tıklayın
- Seçilen ayarlarla belgenin yazdırıldığını doğrulayın
C#'te Yazdırma Diyaloğu Nasıl Çalışır?
Printer.ShowPrintDialog() yöntemi işletim sisteminin yerel yazdırma diyalogunu açar. Kullanıcı tam yazdırma seçenekleri setini — yazıcı seçimi, kopya sayısı, sayfa aralığı, yönlendirme ve kâğıt boyutu — görür ve işi göndermek için Yazdır'a, veya yazdırmadan diyaloğu kapatmak için İptal'e tıklar.
Yerel .NET yaklaşımı, bir System.Windows.Forms.PrintDialog örneği oluşturarak, PrintDocument ile bağlanarak, yazdırma grafik yüzeyine içerik çizimi için PrintPage olayını ele alarak, DialogResult kontrol ederek ve ardından PrintDocument.Print() çağırarak çalışır. Bu kurulum genellikle 15-25 satır kodda çalışır. Ayrıca, yerleşik PDF veya görüntü işleme içermez — yerel diyalog üzerinden bir PDF yazdırmak, önce PDF'nin çizilebilir sayfalara ayrıştırılmasını gerektirir, bu da başka bir kütüphane gerektirir.
IronPrint, tüm boru hattını tek bir çağrıda ele alır:
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;
// Open the dialog, let the user configure settings, and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint
' Open the dialog, let the user configure settings, and print
Printer.ShowPrintDialog("quarterly-report.pdf")
Yöntem, bir string olarak dosya yolu veya bir byte[] olarak ham dosya verisi kabul eder. IronPrint belge formatını algılar, uygun motor ile işler ve diyaloğu sunar. Kullanıcı onayladığında, belge seçilen ayarlarla yazdırılır. yazdırma belgesi eğitimi, tam yazdırma yaşam döngüsünü daha ayrıntılı olarak açıklar.
Diyalog Ayarlarını Nasıl Önceden Yapılandırırım?
Diyalog açılmadan önce varsayılan değerleri ayarlayabiliriz, bir PrintSettings nesnesi oluşturarak ve ikinci parametre olarak geçirerek. Diyalog bu değerlerle önceden seçilmiş olarak açılacaktır ve kullanıcı bunları olduğu gibi kabul edebilir veya herhangi bir ayarı geçersiz kılabilir.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;
// Pre-configure defaults for the dialog
var settings = new PrintSettings
{
PrinterName = "HP LaserJet Pro",
PaperSize = PaperSize.A4,
PaperOrientation = PaperOrientation.Portrait,
Dpi = 300,
NumberOfCopies = 2,
Grayscale = false
};
// Open dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint
' Pre-configure defaults for the dialog
Dim settings As New PrintSettings With {
.PrinterName = "HP LaserJet Pro",
.PaperSize = PaperSize.A4,
.PaperOrientation = PaperOrientation.Portrait,
.Dpi = 300,
.NumberOfCopies = 2,
.Grayscale = False
}
' Open dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
Bu, uygulamanın olası yazıcı veya kağıt formatını önceden bildiği durumlarda kullanışlıdır. Örneğin, daima belirli bir termal yazıcıdan fiş yazdıran bir satış noktası sistemi, PrinterName varsayılan olarak bu cihaza ayarlayabilir. Kullanıcı yine de iletişim kutusunda bunu değiştirme seçeneğine sahiptir.
Sistemde hangi yazıcıların mevcut olduğunu keşfetmek için Printer.GetPrinterNames() çağrılıyor, bu da tüm yüklü yazıcıların bir List<string> döndürüyor. Benzer şekilde, Printer.GetPrinterTrays() belirli bir yazıcı için mevcut kağıt tepsilerini döndürüyor.
Konfigüre edilebilir özelliklerin tam listesi şunları içerir: PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten (PDF form alanları için) ve Tray. yazdırma ayarları nasıl yapılır, her özelliği kod örnekleri ile kapsar. Herhangi bir özellik PrintSettings içinde ayarlanmadıysa, seçilen yazıcının standart konfigürasyonuna döner.
Diyaloğu Eşzamanlı Olmayan Şekilde Nasıl Gösteririm?
Printer.ShowPrintDialogAsync() yöntemi, bir Task döndürür ve bu, await ile uyumludur. Bu, dizi karşısında yerel bir kullanıcı arayüzünü engellemekten kaçınır — WPF, MAUI ve donmuş bir arayüzün kötü bir kullanıcı deneyimi oluşturduğu her türlü uygulama için önemlidir.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;
// Non-blocking dialog — the UI remains responsive
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint
' Non-blocking dialog — the UI remains responsive
Await Printer.ShowPrintDialogAsync("report.pdf")
ShowPrintDialogAsync() eşzamanlı versiyonla aynı parametreleri kabul eder: bir dosya yolu veya bayt dizisi artı isteğe bağlı bir PrintSettings nesnesi. Asenkron desen, modern .NET geliştirme sırasında kullanılan Task-based Asynchronous Pattern (Görev Tabanlı Eşzamanlı Olmayan Desen) ile aynı kalıptadır.
IronPrint, WinForms, WPF, MAUI ve konsol uygulamalarında çalışır. Diyalog görünümü, ana platform ve işletim sistemi sürümüne uyarlanır, böylece kullanıcı her zaman bekledikleri yerel yazdırma penceresini görür.
Diyalog Kullanımı ile Sessiz Yazdırma Ne Zaman Kullanılmalı?
Seçim, kullanıcının yazdırma işini kontrol etmesi gerekip gerekmediğine bağlıdır.
| Kriterler | Diyalog ile Yazdır | Sessiz Yazdırma |
|---|---|---|
| Kullanıcı etkileşimi | Kullanıcı yazıcıyı, kopya sayısını, sayfa aralığını seçer | Hiçbir etkileşim yok - anında yazdırır |
| En iyisi | Masaüstü uygulamaları, tek seferlik yazdırmalar, kullanıcıya yönelik özellikler | Toplu işler, arka plan servisleri, kiosk uygulamalar |
| Yazıcı seçimi | Kullanıcı diyaloğdan seçer | Programlanabilir olarak PrintSettings aracılığıyla ayarlayın |
| IronPrint yöntemi | Printer.ShowPrintDialog() |
Printer.Print() |
| Asenkron varyant | ShowPrintDialogAsync() |
PrintAsync() |
Kullanıcıların yazdırmadan önce ayarları doğrulaması veya değiştirmesi gerektiğinde diyaloğu kullanın — rapor dışa aktarımları, fatura yazdırmaları veya yanlış yazıcının israf edilen bir sayfaya neden olduğu herhangi bir senaryo. Tüm işi uygulama kontrol ettiğinde ve insan kararına ihtiyaç olmadığında sessiz yazdırma kullanın. Yazdırma belgesi eğitimi her iki yaklaşımı yan yana gösterir.
Yazdırma Diyaloğu Hangi Dosya Biçimlerini Destekler?
Printer.ShowPrintDialog(), sessiz yazdırma ile aynı formatları destekler: PDF, PNG, TIFF, JPEG, GIF, HTML ve BMP. Format ne olursa olsun dosya yolunu geçiyoruz ve IronPrint render ve yazdırma havuz iletişimini hallediyor. byte[] olarak dosya verisi de kabul edilir, bu belgenin bellek içinde üretildiği veya bir veritabanından alındığı durumlarda kullanışlıdır.
:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;
// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");
// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint
' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")
' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
Kod örnekleri sayfası, ek biçime özel senaryoları gösterir. PDF'ye özgü iş akışları için — bir PDF oluşturma ve hemen yazdırma — IronPDF, IronPrint ile doğal bir şekilde eşleşir. IronPrint ve IronPDF kıyaslaması her birini ne zaman kullanmanız gerektiğini açıklıyor.
Sonraki Adımlar
Bir iletişim kutusu ile yazdırma, eşzamanlı çağrılar için Printer.ShowPrintDialog() ve engellemeyen yürütme için Printer.ShowPrintDialogAsync() olmak üzere iki metoda indirgenir. Varsayılanları PrintSettings ile önceden yapılandırın ve kullanıcının oradan ayarlama yapmasına izin verin. Her iki yöntem de IronPrint'in tüm belge biçimlerini destekler ve WinForms, WPF, MAUI ve konsol projelerinde çalışır.
Tam yürüyüşler için IronPrint öğreticilerini, mevcut her yöntem için Printer sınıfı API referansını veya ileri düzey yapılandırma için yazdırma ayarları nasıl yapılır kısmını keşfedin. Değişiklik günlüğü, yeni iyileştirmeler ve yeni özellikleri izler.
Ücretsiz 30 günlük deneme başlatın ve canlı bir projede diyalog yazdırmayı test edin — kredi kartı gerektirmez. Gönderilmeye hazır olduğunuzda, lisanslama seçeneklerini gör buradan $749'dan başlayan fiyatlarla.

