C#'da Yazıcı Adını Belirtme

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

IronPrint'in PrintSettings sınıfı, yazdırma işlerini belirli bir yazıcıya yönlendiren PrinterName özelliğini ortaya çıkarır. Hedef yazıcının tam adını bir dize olarak atarız, yapılandırılmış PrintSettings nesnesini herhangi bir IronPrint yazdırma yöntemine aktarırız ve belge, sistem varsayılanı yerine o yazıcıya gönderilir.

Bu kılavuz, bir yazıcı adı belirlemeyi, çalışırken kullanılabilir yazıcıları keşfetmeyi ve yazıcı seçimini diğer baskı ayarlarıyla birleştirmeyi anlatır.

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

  1. IronPrint aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPrint
  2. Bu kod parçacığını kopyalayın ve ç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 için dağıtım yapın

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

    arrow pointer

C#'da Yazıcı Adını Nasıl Belirtirim?

Hedef yazıcıyı, PrintSettings nesnesindeki PrinterName özelliğine adını atayarak belirtiriz. Ardından bu nesneyi Printer.Print'ye aktarıyoruz.

Giriş

invoice.PDF, satır öğeleri ve toplamları içeren, PrintSettings.PrinterName aracılığıyla belirli bir yazıcıya yazdırılan, stilize edilmiş bir A4 B2B faturasıdır.

: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";

// Print 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"

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

Öncelikle PrintSettings'yi örneklendiriyoruz; bu, işletim sisteminin varsayılan yazıcısı anlamına gelen PrinterName = null ile başlatılır. Ardından PrinterName'yi hedef yazıcının tam dize adıyla değiştiririz. Printer.Print'yi çağırdığımızda, IronPrint işi doğrudan o yazıcının kuyruğuna gönderir.

Çıktı

Fatura doğrudan adlandırılmış yazıcıya gönderilir. İş, sessiz baskı örneğinde görüldüğü gibi yazdırıcı kuyruğunda görünür.

Fatura çıktısı, PrinterName kullanılarak "Microsoft Print to PDF"ye yazdırıldı.

Dikkat edilmesi gereken iki ayrıntı. İlk olarak, yazıcı adı işletim sisteminin rapor ettiğiyle tam olarak eşleşmelidir; Bu karşılaştırma büyük/küçük harfe duyarlıdır. "HP LaserJet" yerine "hp laserjet" gibi bir uyumsuzluk, sessizce başarısız olur veya bir hata verir. İkincisi, kullanıcı ShowPrintDialog aracılığıyla bir PRINT iletişim kutusu açarsa, iletişim kutusundaki seçim kodda ayarlanan PrinterName değerini geçersiz kılar ve son kontrolü kullanıcılara verir.

Yazıcı adı önceden bilinmiyorsa, değeri sert kodlamak yerine çalışma zamanında yüklenen tüm yazıcıları sorgulayabiliriz.

Kullanılabilir Yazıcıları Nasıl Keşfederim?

Yazıcı adlarını sabit kodlamak yerine, Printer.GetPrinterNames kullanarak çalışma zamanında sisteme sorgu gönderebiliriz. Bu yöntem, makinede kurulu tüm yazıcıları içeren bir List<string> döndürür.

Giriş

report.pdf, dinamik olarak keşfedilen ilk yazıcıya yazdırılan bir A4 iş raporudur ve özet bölümü ve veri tablosu ile birlikte yazdırılır.

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

// List every installed printer
List<string> printers = Printer.GetPrinterNames();

// Print each printer name
foreach (string name in printers)
{
    Console.WriteLine(name);
}

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

' List every installed printer
Dim printers As List(Of String) = Printer.GetPrinterNames()

' Print each printer name
For Each name As String In printers
    Console.WriteLine(name)
Next

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

GetPrinterNames komutunu çağırarak, yerel, ağ ve "Microsoft Print to PDF" gibi sanal yazıcılar dahil olmak üzere işletim sisteminin tanıdığı tüm yazıcıları alırız. Ardından listeyi tarar ve indeks, ad eşleşmesi veya uygulamanın gerektirdiği herhangi bir özel mantık kullanarak bir yazıcı seçeriz.

Çıktı

Rapor ilk mevcut yazıcıya gönderilir. Yukarıda görüldüğü gibi iş yazıcı kuyruğunda görünür.

Rapor çıktısı, GetPrinterNames ile ilk mevcut yazıcıya yazdırıldı.

Bu keşfet-sonra-yazdır deseni, farklı makinelerde dağıtılan uygulamalar için önemlidir. Bir yazıcı adını sabitlemek, tek makine senaryoları için işe yarar, ancak üretim uygulamaları, kullanılabilir yazıcıları sorgulamalı ve ya kullanıcıya seçim yapmalarını izin vermeli ya da isimlendirme konvansiyonlarına dayalı olarak bir yazıcıyı programatik olarak seçmelidir.

Yazıcı seçimi aynı zamanda tek bir yapılandırma nesnesinde kağıt boyutu, DPI, kopya sayısı ve kenar boşlukları ile eşleştirilebilir.

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

PrintSettings sınıfı, PrinterName'yi kağıt boyutu, yönlendirme, DPI, kenar boşlukları, kopya sayısı ve daha fazlası için özelliklerle birlikte sunar. Tüm ayarları tek bir nesnede yapılandırırız.

Giriş

quarterly-report.PDF, KPI kartları ve grafikleri içeren, PrinterName ile kağıt boyutu, DPI ve kopya sayısı tek bir PrintSettings nesnesinde birleştirilerek yazdırılan A4 boyutunda bir üç aylık finansal rapordur.

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

// Configure full print settings with a named 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 the quarterly report
Printer.Print("quarterly-report.pdf", settings);
Imports IronPrint

' Configure full print settings with a named 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 the quarterly report
Printer.Print("quarterly-report.pdf", settings)
$vbLabelText   $csharpLabel

Okunabilirliği artırmak için nesne başlatıcı sözdizimi kullanırız. PrinterName işi "Office Renkli Yazıcı"ya yönlendirirken, kalan özellikler çıktı formatını kontrol eder. Dpi 300'de keskin metin ve grafikler üretir. PaperMargins, Margins yapıcı aracılığıyla milimetre değerlerini kabul eder. Kullanılabilir özelliklerin tam listesi için baskı ayarları kılavuzu'na bakın.

Çıktı

Üç aylık rapor, adlandırılmış yazıcı, A4 portre, 300 DPI, 2 kopya ve tek bir işte bir araya getirilen 15 mm kenar boşlukları ile basılır. Yukarıda görüldüğü gibi iş yazıcı kuyruğunda görünür.

PrinterName, A4, 300 DPI, 2 kopya ve 15 mm kenar boşlukları ile üç aylık rapor çıktısı.

IronPrint, bu birimi bir bütün olarak doğrular ve birleşik ayarları yazıcı sürücüsüne tek bir iş olarak gönderir.

Baskı keşfi veya yazdırma sırasında ana dizini engelleyemeyen uygulamalar, her iki işlemin de eşzamansız versiyonlarını kullanabilir.

Yazıcı Seçimi ve Asenkron Yazdırma Nasıl Yapılır?

Ana iş parçacığını engellemenin mümkün olmadığı WPF ve WinForms uygulamaları için Printer.GetPrinterNamesAsync ve Printer.PrintAsync kullanıyoruz. Her ikisi de Task hatası verir ve kullanıcı arayüzünün duyarlılığını korur.

: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 available printers asynchronously
        List<string> printers = await Printer.GetPrinterNamesAsync();

        // Exit if no printers are installed
        if (printers.Count == 0)
        {
            Console.WriteLine("No printers found.");
            return;
        }

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

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

Public Class PrintService
    Public Async Function PrintToFirstAvailableAsync(filePath As String) As Task
        ' Discover available printers asynchronously
        Dim printers As List(Of String) = Await Printer.GetPrinterNamesAsync()

        ' Exit if no printers are installed
        If printers.Count = 0 Then
            Console.WriteLine("No printers found.")
            Return
        End If

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

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

Bu sınıf tabanlı örnek, bulma ve PRINT mantığını yeniden kullanılabilir bir hizmet içinde birleştirir. Kullanıcı arayüzünü dondurmadan yazıcı listesini almak için GetPrinterNamesAsync'yi çağırırız, ardından kullanılabilir ilk yazıcıyı PrinterName'ye atarız. await Printer.PrintAsync çağrısı, işi eşzamansız olarak gönderir.

Çıktı

Fatura ilk keşfedilen yazıcıya eşzamansız olarak basılır. Yukarıda görüldüğü gibi iş yazıcı kuyruğunda görünür.

Fatura çıktısı eşzamansız olarak ilk mevcut yazıcıya basıldı.

Üretim aşamasında, printers[0] ifadesini, gönderim etiketleri için "Label" veya markalı belgeler için "Color" içeren yazıcıları arama gibi bir adlandırma kuralına uyan bir mantıkla değiştirebiliriz. IronPrint'in asenkron yöntemlerinin tümü aynı PrintSettings nesnesini kabul eder, bu nedenle PrinterName davranışı senkron ve asenkron yollar arasında aynıdır.

Sabit atama, çalışma zamanı keşfi, birleştirilmiş ayarlar ve eşzamansız iş akışlarını kapsayan her şeyle, bir avuç ilgili kaynak yer işaretçiliğine değer.

Sonraki Adımlarım Neler?

PrintSettings.PrinterName ile yazıcı adını belirleme konusunu, statik atamadan Printer.GetPrinterNames ile dinamik çalışma zamanı keşfine kadar ele aldık. Önemli noktalar: yazıcı adları tam olarak eşleşmelidir (büyük/küçük harfe duyarlı), null varsayılan olarak işletim sisteminin varsayılan yazıcısını kullanır ve yazdırma diyalogları programlı seçimi geçersiz kılar.

get printer names örneği bağımsız bir keşif kesiti sağlar, baskı ayarları kılavuzu ise ayrıntılı olarak ayarlanabilir her özelliği kapsar. Printer class API referansı tüm statik baskı yöntemlerini belgelendirir ve PrintSettings API referansı ise her alan ve varsayılanları listeler. Baştan sona bir tur için Belge Yazdır kılavuzu her şeyi bir araya getirir.

Canlı bir projede yazıcı seçimini test etmek için ücretsiz 30 günlük deneme başlatın. Hazır olduğunuzda, $999 adresinden başlayan lisans seçeneklerini inceleyin.

https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.PrintSettings.html https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html https://ironsoftware.com/csharp/print/how-to/print-settings/ https://ironsoftware.com/csharp/print/object-reference/api/IronPrint.Printer.html

Sıkça Sorulan Sorular

IronPrint kullanarak C#'da bir yazıcı adını nasıl belirleyebilirim?

IronPrint ile, yazıcı adını C#'da belirleyebilirsiniz, PrinterName özelliğini ayarlayarak yazdırma görevleriniz için belirli bir yazıcıyı hedeflemenize olanak tanır.

IronPrint nedir?

IronPrint, Iron Software'in C# uygulamalarında yazdırma görevlerini yönetmek için geliştiricilere olanak sağlayan bir kütüphanedir, yazıcı adlarını ve diğer yazdırma seçeneklerini belirtme işlevselliği sunar.

C#'da mevcut yazıcıları nasıl keşfedebilirim?

IronPrint kullanarak, ağınızdaki mevcut yazıcıları kolayca keşfedebilirsiniz, yazıcıların listesini erişerek ve yazdırma işiniz için istenen PrinterName'i seçerek.

PrinterName özelliğini dinamik olarak ayarlayabilir miyim?

Evet, IronPrint ile, C# kodunuzda çalışırken seçilen yazıcıyı belirlemek için PrinterName özelliğini dinamik olarak ayarlayabilirsiniz.

IronPrint kullanarak ağ yazıcısına yazdırmak mümkün mü?

Evet, IronPrint, C# uygulamanızda uygun PrinterName özelliğini ayarlayarak ağ yazıcılarına yazdırma işlemini gerçekleştirmenize olanak tanır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 41,154 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPrint
bir örnek çalıştır belgenizin yazıcıya ulaşmasını izleyin.