IRONSOFTWAREHOME

如何在C#中指定列印機名稱

Curtis Chau
Curtis Chau
Updated: 2026年5月9日

IronPrint的PrinterName屬性,用於將列印工作導向特定的列印機。 我們將目標列印機的確切名稱分配為字串,將配置的PrintSettings物件傳遞給任何IronPrint列印方法,文件將直接發送到該列印機,而不是系統預設的列印機。

本指南介紹如何設定列印機名稱、在運行時發現可用的列印機,以及將列印機選擇與其他列印設置組合起來。

快速入門:指定列印機名稱
  1. 1Install IronPrint with NuGet Package Manager

    PM > Install-Package IronPrint

  2. 2複製並運行這段程式碼片段。

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
    C#
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronPrint,透過免費試用
    arrow pointer

如何在C#中指定列印機名稱?

我們透過將目標列印機的名稱分配給PrintSettings物件。 然後我們將該物件傳遞給Printer.Print

輸入

invoice.pdf是一個樣式化的A4 B2B發票,包含項目列和總計,通過PrintSettings.PrinterName列印到特定名稱的列印機。

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);

我們首先實例化PrinterName = null,表示作業系統預設列印機。 然後我們使用目標列印機的確切字串名稱覆蓋PrinterName。 當我們呼叫Printer.Print時,IronPrint將工作直接發送到該列印機的隊列。

輸出

發票直接發送到命名的列印機。 作業顯示在列印機隊列中,如無聲列印範例所示。

使用PrinterName列印發票輸出到"Microsoft Print to PDF"。

需要記住的兩個細節。 首先,列印機名稱必須與作業系統報告的完全匹配; 此比較區分大小寫。不匹配如"HP LaserJet"將會靜默失敗或拋出錯誤。 其次,如果使用者通過PrinterName,使使用者保有最終控制權。

如果事先不知道列印機名稱,我們可以在運行時查詢所有已安裝的列印機,而非硬編碼值。

如何發現可用的列印機?

我們可以在運行時使用Printer.GetPrinterNames查詢系統,而不是硬編碼列印機名稱。 此方法返回List<string>,其中包含機器上已安裝的所有列印機。

輸入

report.pdf是一份A4商務報告,帶有摘要部分和資料表,列印到第一個動態發現的列印機。

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]
    });
}

我們呼叫GetPrinterNames以檢索作業系統知道的每台列印機,包括本地、網路和虛擬列印機,如"Microsoft Print to PDF"。然後遍歷列表,按索引、名稱匹配或應用程式需要的任何自定義邏輯選擇一台列印機。

輸出

報告發送到第一台可用的列印機。 作業顯示在上面所示的列印機隊列中。

使用GetPrinterNames列印的報告輸出到第一台可用的列印機。

這種先發現再列印的模式對於跨不同機器部署的應用程式至關重要。 硬編碼列印機名稱適用於單台機器情況,但生產應用程式應查詢可用列印機,並讓使用者選擇或根據命名約定以程式方式選擇列印機。

列印機選擇也可以與紙張尺寸、DPI、複印數量和邊距配對在一個配置物件中。

如何將列印機名稱與其他設置結合?

PrinterName以及紙張尺寸、方向、DPI、邊距、複印數量等屬性。 我們將所有這些設置配置在一個物件中。

輸入

quarterly-report.pdf是一份A4季度財務報告,帶有KPI卡片和圖表,以PrintSettings物件中列印。

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);

我們使用物件初始化器語法以提高可讀性。 PrinterName將工作路由到"Office Color Printer",而其餘屬性則控制輸出格式。 Dpi設置於300產生清晰的文字和圖形。 Margins構造函式接受毫米值。 有關可用屬性的完整列表,請參見列印設置指南

輸出

季度報告以命名列印機、A4縱向、300 DPI、2份和15毫米邊距結合在一個作業中列印。 作業顯示在上面所示的列印機隊列中。

季度報告輸出包括PrinterName、A4、300 DPI、2份和15毫米邊距。

IronPrint將配置作為一個單元進行驗證,並將組合設置提交給列印機驅動程式作為單一作業。

不能在列印機發現或列印期間阻塞主執行緒的應用程式可以使用這兩個操作的異步對應方法。

如何選擇列印機並以異步方式列印?

對於阻塞主執行緒不是選擇的WPF和WinForms應用程式,我們使用Printer.PrintAsync。 兩者均返回Task,保持UI保持響應。

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);
    }
}

以型別範例將發現和列印邏輯包裝在一個可重用的服務中。我們呼叫PrinterNameawait Printer.PrintAsync呼叫異步發送工作。

輸出

發票以異步方式列印到第一台發現的列印機。 作業顯示在上面所示的列印機隊列中。

發票輸出異步列印到第一台可用的列印機。

在生產中,我們可能會用符合命名約定的邏輯替換printers[0],如搜尋包含"Label"的列印機以用於運送標籤,或"Color"用於品牌文件。 IronPrint的異步方法均接受相同的PrinterName行為相同。

在涵蓋靜態分配、運行時發現、組合設定和異步工作流之後,有一些相關資源值得收藏。

我的下一步是什麼?

我們涵蓋了透過Printer.GetPrinterNames的動態運行時發現。 要點:列印機名稱必須完全匹配(區分大小寫),null預設為作業系統預設列印機,並且列印對話框會覆蓋程式化選擇。

獲取列印機名稱範例提供了獨立的發現片段,而列印設置指南詳述每個可配置屬性。 Printer類別API參考記錄了所有靜態列印方法,而PrintSettings API參考列出了每個字段及其預設值。 要進行端到端演練,Print Document教程將所有內容結合起來。

開始免費30天試用以在實際項目中測試列印機選擇。 準備就緒時,查看授權選項從$999開始。

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

常見問題

如何使用IronPrint在C#中指定印表機名稱?

使用IronPrint,您可以透過設置PrinterName屬性來在C#中指定印表機名稱。這允許您針對您的列印任務選擇特定的印表機。

什麼是IronPrint?

IronPrint是Iron Software推出的一個程式庫,使開發人員能夠在C#應用程式中管理列印任務,提供指定印表機名稱和其他列印選項的功能。

如何在C#中查找可用的印表機?

使用IronPrint,您可以透過存取印表機列表並選擇所需的PrinterName來輕鬆發現網路中的可用印表機。

我可以動態設置PrinterName屬性嗎?

可以,使用IronPrint,您可以在C#程式碼中動態設置PrinterName屬性,以在運行時選擇所需的印表機。

是否可以使用IronPrint列印至網路印表機?

是的,IronPrint允許您透過在C#應用程式中設置對應的PrinterName屬性來指定並列印至網路印表機。

Is it possible to print asynchronously with IronPrint?

Yes, you can use `Printer.GetPrinterNamesAsync` and `Printer.PrintAsync` methods in IronPrint to perform asynchronous printing, which is useful for keeping UI applications responsive.

Does IronPrint support user interaction via print dialogs?

Yes, in IronPrint, if a print dialog is opened using `ShowPrintDialog`, it can override the programmatic selection in the `PrinterName` property, giving end-users final control over printer selection.

What should I do if no printers are found using IronPrint?

If no printers are found with IronPrint's `Printer.GetPrinterNames`, ensure that printers are correctly installed and available on the system. You may also execute fallback logic or notify the user.

How do I ensure sharp print output using IronPrint?

To ensure sharp print output with IronPrint, set the `Dpi` property in the `PrintSettings` object to a suitable dpi value like 300, which produces high-quality text and graphics.

Can IronPrint be used for network and virtual printers?

Yes, IronPrint supports printing to local, network, and virtual printers, like 'Microsoft Print to PDF', as long as they are recognized by the operating system.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備好開始了嗎?

Nuget Downloads 46,090版本:2026.9剛剛發布

立即獲取您的免費30天試用金鑰
不需要信用卡或帳戶建立
C# NuGet PDF程式庫
安裝方法NuGet

版本: 2026.9

PM > Install-Package IronPrint
nuget.org/packages/IronPrint/
  1. 在解決方案資源管理器中,右鍵點擊引用,管理NuGet套件
  2. 選擇瀏覽並搜尋"IronPrint"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

  1. 下載並解壓IronPrint到比如~/Libs這樣的位置在您的Solution目錄下
  2. 在Visual Studio解決方案資源管理器中,右鍵點擊引用。選擇瀏覽,"IronPrint.dll"

授權從$999

有問題嗎?聯繫我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費
現場演示
Booking Badge

全球數百萬工程師信賴

Iron Software的客戶標誌
獲得非義務性諮詢
完成下列表單或發郵件到sales@ironsoftware.com
您的資訊將始終保密。
全球數百萬工程師信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立