C#'te Yazıcı Adı Nasıl Belirlenir?

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPrint'in PrintSettings sınıfı, belirli bir yazıcıya baskı işlerini yönlendiren bir PrinterName özelliğini açığa çıkarır. Hedef yazıcının tam adını bir dizi olarak atarız, yapılandırılmış PrintSettings nesnesini IronPrint'in herhangi bir baskı yöntemlerine geçiririz ve belge sistem varsayılanı yerine o yazıcıya gider.

Bu kılavuz, bir yazıcı adı ayarlamayı, çalışma zamanında mevcut yazıcıları keşfetmeyi ve yazıcı seçimini diğer baskı ayarları ile birleştirmeyi ele alır.

Hızlı Başlangıç: Yazıcı Adını Belirleyin

  1. IronPrint'i NuGet ile yükleyin: Install-Package IronPrint
  2. Dosyaya using IronPrint; ekleyin
  3. Bir PrintSettings nesnesi oluşturun
  4. PrinterName'yi hedef yazıcının tam adına ayarlayın
  5. Ayarları Printer.Print() veya Printer.PrintAsync()'e aktarın
  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPrint yükleyin

    PM > Install-Package IronPrint
  2. Bu kod parçasını kopyalayıp çalıştırın.

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronPrint kullanmaya başlayın ücretsiz deneme ile

    arrow pointer

C#'te Bir Yazıcı Adı Nasıl Belirlenir?

Hedef yazıcıyı, adını bir PrintSettings nesnesindeki PrinterName özelliğine atayarak belirleriz. Daha sonra bu nesneyi Printer.Print işlevine aktarırız.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-set-printer-name.cs
using IronPrint;

// Configure print settings with a target printer
PrintSettings settings = new PrintSettings();
settings.PrinterName = "Microsoft Print to PDF";

// Send the document to the specified printer
Printer.Print("invoice.pdf", settings);
Imports IronPrint

' Configure print settings with a target printer
Dim settings As New PrintSettings()
settings.PrinterName = "Microsoft Print to PDF"

' Send the document to the specified printer
Printer.Print("invoice.pdf", settings)
$vbLabelText   $csharpLabel

Başta PrintSettings örneklendiririz, bu da PrinterName = null ile başlatılır — bu da işletim sisteminin varsayılan yazıcısı anlamına gelir. Sonra PrinterName'yi hedef yazıcının tam dize adı ile geçersiz kılıyoruz. Printer.Print çağırdığımızda, IronPrint görevi doğrudan o yazıcının kuyruğuna gönderir.

Bir akılda tutulması gereken iki önemli detay var. İlk olarak, yazıcı adı kendisine işletim sistemi tarafından rapor edilenle tam olarak eşleşmeli — bu karşılaştırma büyük/küçük harf duyarlıdır. "hp laserjet" yerine "HP LaserJet" gibi bir uyumsuzluk sessizce başarısız olur veya bir hata çıkarır. İkinci olarak, kullanıcı, ShowPrintDialog ile bir yazdırma iletişim kutusu açarsa, iletişim kutusu seçimi, kodda ayarlanan PrinterName'yi geçersiz kılar. Bu tasarım gereği — diyalog, kullanıcılara nihai kontrolü verir.

Mevcut Yazıcıları Nasıl Keşfederim?

Yazıcı adlarını sabitlemek yerine, çalışma zamanında Printer.GetPrinterNames() kullanarak sistemi sorgulayabiliriz. Bu yöntem, makinede yüklü olan her yazıcıyı içeren bir List<string> döndürür.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-discover-printers.cs
using IronPrint;

// Discover all installed printers
List<string> printers = Printer.GetPrinterNames();

foreach (string name in printers)
{
    Console.WriteLine(name);
}

// Use the first available printer
if (printers.Count > 0)
{
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = printers[0]
    });
}
Imports IronPrint

' Discover all installed printers
Dim printers As List(Of String) = Printer.GetPrinterNames()

For Each name As String In printers
    Console.WriteLine(name)
Next

' Use the first available printer
If printers.Count > 0 Then
    Printer.Print("report.pdf", New PrintSettings With {
        .PrinterName = printers(0)
    })
End If
$vbLabelText   $csharpLabel

İşletim sisteminin bildiği her yazıcıyı almak için GetPrinterNames() çağırırız — yerel, ağ ve "Microsoft Print to PDF" gibi sanal yazıcılar dahil. Sonra listeyi döngüden geçiririz ve uygulamanın gerektirdiği herhangi bir özel mantıkla eşleşmemizi, adını veya özelleştirilmiş mantığıyla bir yazıcı seçeriz.

Bu keşfet-ardından-yazdır deseni, farklı makinelerde dağıtılan uygulamalar için esastır. Tek-makine senaryoları için bir yazıcı adı sabitlemek işe yarar, ancak üretim uygulamaları mevcut yazıcıları sorgulamalı ve ya kullanıcıya seçtirmeli ya da isimlendirme konvansiyonlarına dayalı olarak programlı olarak bir seçim yapmalıdır. Özel bir kod örneği için, yazıcı adları örneğine bakın.

Yazıcı Adını Diğer Ayarlarla Nasıl Birleştiririm?

PrintSettings sınıfı PrinterName'i kağıt boyutu, yönlendirme, DPI, kenar boşlukları, kopya sayısı ve düzleştirme özellikleriyle birlikte açığa çıkarır. Her şey tek bir nesnede yapılandırılır.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-combined-settings.cs
using IronPrint;

// Build a fully configured print job targeting a specific printer
PrintSettings settings = new PrintSettings
{
    PrinterName = "Office Color Printer",
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    PaperMargins = new Margins(15, 15, 15, 15),
    Grayscale = false
};

// Print a branded report to the color printer
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint

' Build a fully configured print job targeting a specific printer
Dim settings As New PrintSettings With {
    .PrinterName = "Office Color Printer",
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .PaperMargins = New Margins(15, 15, 15, 15),
    .Grayscale = False
}

' Print a branded report to the color printer
Printer.Print("quarterly-report.pdf", settings)
$vbLabelText   $csharpLabel

Okunabilirlik için nesne başlatıcı sözdizimini kullanıyoruz. PrinterName işi "Ofis Renkli Yazıcı"ya yönlendirir ve kalan özellikler çıktı formatını kontrol eder. 300 DPI keskin metin ve grafikler üretir. PaperMargins, Margins yapılandırıcısı aracılığıyla dört milimetre değerini kabul eder — üst, sağ, alt, sol.

IronPrint, konfigürasyonu bir ünite olarak doğrular ve birleşik ayarları tek bir işte yazıcı sürücüsüne gönderir. Tepsi seçimi ve gri tonlama modu gibi ek seçenekler için tam baskı ayarları kılavuzuna bakın.

Bir Yazıcıyı Seçip Asenkron Nasıl Yazdırırım?

Ana konak iş parçacığını engelleme seçeneği sunulmayan uygulamalar için — WPF veya WinForms uygulamaları gibi — Printer.GetPrinterNamesAsync() ve Printer.PrintAsync() kullanıyoruz. Her ikisi de bir Task döndürür ve kullanıcı arayüzünü duyarlı tutar.

:path=/static-assets/print/content-code-examples/how-to/specify-printer-name/specify-printer-name-async-printer-select.cs
using IronPrint;
using System.Threading.Tasks;

public class PrintService
{
    public async Task PrintToFirstAvailableAsync(string filePath)
    {
        // Discover printers without blocking the UI
        List<string> printers = await Printer.GetPrinterNamesAsync();

        if (printers.Count == 0)
        {
            Console.WriteLine("No printers found.");
            return;
        }

        // Configure and print to the first available printer
        PrintSettings settings = new PrintSettings
        {
            PrinterName = printers[0],
            Dpi = 300
        };

        await Printer.PrintAsync(filePath, settings);
    }
}
Imports IronPrint
Imports System.Threading.Tasks

Public Class PrintService
    Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
        ' Discover printers without blocking the UI
        Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()

        If printers.Count = 0 Then
            Console.WriteLine("No printers found.")
            Return
        End If

        ' Configure and print to the first available printer
        Dim settings As New PrintSettings With {
            .PrinterName = printers(0),
            .Dpi = 300
        }

        Await Printer.PrintAsync(filePath, settings)
    End Function
End Class
$vbLabelText   $csharpLabel

Bu sınıf tabanlı örnek, keşif ve yazdırma mantığını yeniden kullanılabilir bir servis içinde sarar. Kullanıcı arayüzünü dondurmaksızın yazıcı listesini almak için GetPrinterNamesAsync() çağırırız, sonra ilk kullanılabilir yazıcıyı PrinterName'e atarız. await Printer.PrintAsync call, işi eşzamansız olarak gönderir.

Üretimde, printers[0]'i, isimlendirme kuralıyla eşleşen bir mantıkla değiştirebiliriz — örneğin, sevkiyat etiketleri için "Etiket" içeren veya marka belgeleri için "Renkli" içeren yazıcıları arama. IronPrint'in eşzamansız yöntemlerinin tümü aynı PrintSettings nesnesini kabul eder, bu nedenle PrinterName davranışı eşzamanlı ve eşzamansız yollar arasında aynıdır.

Sonraki Adımlarım Neler?

C#'ta IronPrint'in PrintSettings.PrinterName özelliğini kullanarak bir yazıcı adını nasıl belirleyeceğimizi, statik atamadan dinamik çalışma zamanı keşfi ile Printer.GetPrinterNames()'e kadar ele aldık. Ana noktalar: yazıcı isimleri tam olarak eşleşmelidir (büyük/küçük harf duyarlıdır), null varsayılan olarak işletim sisteminin varsayılan yazıcısına ayarlanmıştır ve yazdırma iletişim kutuları programatik seçimi geçersiz kılar.

IronPrint'in yeteneklerini daha fazla keşfetmek için devam edin:

yazıcı adı alma kod örneği için bağımsız bir keşif parçası

Yazıcı seçimi için kendi projelerinizde test etmek için ücretsiz 30 günlük denemeye başlayın veya lisanslama seçeneklerini görüntüleyin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 39,267 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPrint
bir örnek calistirin belgenizin yaziciya gitmesini izleyin.