C#'te Yazıcı Adı Nasıl Belirlenir?
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
- IronPrint'i NuGet ile yükleyin:
Install-Package IronPrint - Dosyaya
using IronPrint;ekleyin - Bir
PrintSettingsnesnesi oluşturun PrinterName'yi hedef yazıcının tam adına ayarlayın- Ayarları
Printer.Print()veyaPrinter.PrintAsync()'e aktarın
-
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; // Print a document to a specific printer Printer.Print("report.pdf", new PrintSettings { PrinterName = "HP LaserJet Pro M404" }); -
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
- Bir
PrintSettingsnesnesi oluşturun PrinterName'ı hedef yazıcının adına ayarlayın- Ayarları
Printer.Print()'e iletin - Belirtilmiş yazıcıda yazdırmak için projeyi çalıştırın
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)
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
İş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)
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
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ı
- Tüm mevcut özellikler için tam yazdırma ayarları yapılandırma kılavuzunu keşfedin
PrintToPrinter,ShowPrintDialogve tepsi yönetimi gibi yöntemler için Printer sınıfı API referansını inceleyin.PrintSettings,PaperSizeveMarginsiçin tam API referansını gözden geçirin.
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.

