프린터 이름을 C#에서 지정하는 방법

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

IronPrint의 PrintSettings 클래스는 인쇄 작업을 특정 프린터로 전송하는 PrinterName 속성을 제공합니다. 대상 프린터의 정확한 이름을 문자열로 지정하고, 구성된 PrintSettings 객체를 IronPrint의 인쇄 메서드에 전달하면, 문서는 시스템 기본 프린터 대신 해당 프린터로 전송됩니다.

이 가이드는 프린터 이름 설정, 실행 시 사용 가능한 프린터 검색, 다른 인쇄 설정과의 프린터 선택 결합 방법을 안내합니다.

빠른 시작: 프린터 이름 지정

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPrint 설치하기

    PM > Install-Package IronPrint
  2. 다음 코드 조각을 복사하여 실행하세요.

    using IronPrint;
    
    // Print a document to a specific printer
    Printer.Print("report.pdf", new PrintSettings
    {
        PrinterName = "HP LaserJet Pro M404"
    });
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPrint 사용 시작하기

    arrow pointer

C#에서 프린터 이름을 어떻게 지정합니까?

PrinterName 개체의 PrintSettings 속성에 프린터 이름을 할당하여 대상 프린터를 지정합니다. 그런 다음 해당 객체를 Printer.Print로 전달합니다.

입력

invoice.pdf는 항목별 내역과 합계가 포함된 A4 용지 형식의 B2B 청구서로, PrintSettings.PrinterName을 통해 지정된 프린터로 인쇄됩니다.

: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

먼저 PrintSettings를 인스턴스화합니다. 이는 PrinterName = null로 초기화되며, 이는 OS의 기본 프린터를 의미합니다. 그런 다음 PrinterName을 대상 프린터의 정확한 문자열 이름으로 대체합니다. Printer.Print를 호출하면 IronPrint는 해당 프린터의 대기열로 작업을 직접 전송합니다.

산출

인보이스가 지정된 프린터로 직접 전송됩니다. 작업은 무음 인쇄 예제에서 볼 수 있는 대기열에 나타납니다.

"Microsoft Print to PDF"에 PrinterName을 사용하여 인보이스 출력을 인쇄합니다.

염두에 둬야 할 두 가지 세부사항. 첫째, 프린터 이름은 운영 체제가 보고하는 것과 정확히 일치해야 합니다; 이 비교는 대소문자를 구분합니다. "HP LaserJet" 대신 "hp laserjet"와 같이 일치하지 않는 경우, 오류 메시지 없이 실패하거나 오류가 발생합니다. 둘째, 사용자가 ShowPrintDialog을 통해 PRINT 대화 상자를 열 경우, 대화 상자에서 선택한 내용이 코드에서 설정된 PrinterName을 무시하므로 사용자에게 최종 결정권이 주어집니다.

프린터 이름을 미리 알지 못하면, 런타임에 설치된 모든 프린터를 쿼리하여 값을 하드코딩하는 대신 사용할 수 있습니다.

사용 가능한 프린터를 어떻게 발견합니까?

프린터 이름을 하드코딩하는 대신, 런타임 시 Printer.GetPrinterNames을 사용하여 시스템에 쿼리를 보낼 수 있습니다. 이 메서드는 컴퓨터에 설치된 모든 프린터를 포함하는 List<string>을 반환합니다.

입력

report.pdf는 A4 비즈니스 보고서이며 요약 섹션과 데이터 테이블이 포함되어 있으며, 동적으로 발견된 첫 번째 프린터로 인쇄됩니다.

: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을 호출하여 로컬, 네트워크 및 "Microsoft Print to PDF"와 같은 가상 프린터를 포함하여 운영 체제가 인식하는 모든 프린터를 가져옵니다. 그런 다음 목록을 순차적으로 처리하며 인덱스, 이름 일치 또는 애플리케이션에서 요구하는 사용자 지정 논리를 통해 프린터를 선택합니다.

산출

보고서는 사용 가능한 첫 번째 프린터로 전송됩니다. 작업은 위에서 본 것처럼 프린터 대기열에 나타납니다.

GetPrinterNames를 통해 보고서 출력을 사용 가능한 첫 번째 프린터에 인쇄합니다.

이 발견 후 인쇄 패턴은 다른 기기에 배포되는 응용 프로그램에 필수적입니다. 프린터 이름을 하드코딩하는 것은 단일 컴퓨터 시나리오에 적합하지만, 프로덕션 응용 프로그램에서는 사용할 수 있는 프린터를 쿼리하여 사용자가 선택하거나 이름 규칙에 따라 프로그래밍적으로 하나를 선택해야 합니다.

프린터 선택은 용지 크기, DPI, 복사본 수, 여백과 함께 단일 구성 객체에 페어링할 수 있습니다.

프린터 이름과 다른 설정을 어떻게 결합합니까?

PrintSettings 클래스는 PrinterName을 비롯해 용지 크기, 방향, DPI, 여백, 복사 매수 등의 속성을 제공합니다. 우리는 모든 것을 하나의 객체로 구성합니다.

입력

quarterly-report.PDF는 KPI 카드와 차트가 포함된 A4 분기 재무 보고서이며, PrinterName를 사용하여 용지 크기, DPI 및 인쇄 매수를 하나의 PrintSettings 객체에 결합하여 인쇄됩니다.

: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

가독성을 위해 객체 초기화 구문을 사용합니다. PrinterName은 작업을 "Office 컬러 프린터"로 라우팅하며, 나머지 속성은 출력 형식을 제어합니다. Dpi을 300으로 설정하면 선명한 텍스트와 그래픽을 얻을 수 있습니다. PaperMarginsMargins 생성자를 통해 밀리미터 단위의 값을 받아들입니다. 사용 가능한 속성의 전체 목록은 인쇄 설정 가이드를 참조하세요.

산출

분기별 보고서는 명명된 프린터, A4 세로 방향, 300 DPI, 2매의 복사본, 15 mm 여백으로 인쇄 작업을 하나로 결합하여 인쇄됩니다. 작업은 위에서 본 것처럼 프린터 대기열에 나타납니다.

명명된 프린터, A4, 300 DPI, 2매의 복사본 및 15 mm 여백과 함께 분기별 보고서 출력.

IronPrint는 구성 전체를 검증하고 단일 작업에서 결합된 설정을 프린터 드라이버에 제출합니다.

프린터 탐색 중이나 인쇄 중에 주 스레드를 차단할 수 없는 애플리케이션은 두 작업의 비동기 등가 기능을 사용할 수 있습니다.

프린터를 선택하고 비동기적으로 인쇄하는 방법

메인 스레드를 차단할 수 없는 WPF 및 WinForms 앱의 경우, Printer.GetPrinterNamesAsyncPrinter.PrintAsync을 사용합니다. 두 경우 모두 Task를 반환하여 UI의 반응성을 유지합니다.

: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

이 클래스 기반 예제는 검색 및 인쇄 로직을 재사용 가능한 서비스로 묶어줍니다. UI를 멈추지 않고 프린터 목록을 가져오기 위해 GetPrinterNamesAsync를 호출한 다음, 사용 가능한 첫 번째 프린터를 PrinterName에 할당합니다. await Printer.PrintAsync 호출은 작업을 비동기적으로 전송합니다.

산출

인보이스는 먼저 발견된 프린터에 비동기적으로 인쇄됩니다. 작업은 위에서 본 것처럼 프린터 대기열에 나타납니다.

인보이스 출력은 처음으로 사용 가능한 프린터에 비동기적으로 인쇄되었습니다.

실제 운영 환경에서는 printers[0]을 명명 규칙에 부합하는 로직으로 대체할 수 있습니다. 예를 들어, 배송 라벨용 프린터는 "Label"이 포함된 프린터를, 브랜드 문서를 위한 프린터는 "Color"가 포함된 프린터를 검색하는 식입니다. IronPrint의 비동기 메서드는 모두 동일한 PrintSettings 객체를 받아들이므로, PrinterName 동작은 동기 및 비동기 경로 간에 동일합니다.

정적 할당, 런타임 탐색, 결합된 설정, 비동기 워크플로 모두를 다루었으므로 관련 리소스를 북마크할 가치가 있습니다.

내 다음 단계는 무엇인가요?

PrintSettings.PrinterName를 통해 프린터 이름을 지정하는 방법, 즉 정적 할당부터 Printer.GetPrinterNames를 사용한 동적 런타임 검색에 이르기까지 다루었습니다. 주요 사항: 프린터 이름은 대소문자를 구분하여 정확히 일치해야 하며, null은 OS 기본 프린터로 설정되며, 인쇄 대화 상자는 프로그래밍 방식으로 선택된 프린터를 무시합니다.

프린터 이름 가져오기 예제는 독립적인 탐색 스니펫을 제공하며, 인쇄 설정 가이드는 모든 구성 가능한 속성을 자세히 다룹니다. 프린터 클래스 API 레퍼런스는 모든 정적 인쇄 방법을 문서화하며, PrintSettings API 레퍼런스는 모든 필드와 기본값을 나열합니다. 끝에서 끝으로 전체 과정을 설명하는 문서 인쇄 튜토리얼이 모든 것을 연결합니다.

무료 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를 사용하면 C#에서 PrinterName 속성을 설정하여 프린터 이름을 지정할 수 있습니다. 이를 통해 특정 프린터를 인쇄 작업 대상으로 지정할 수 있습니다.

IronPrint 란 무엇인가요?

IronPrint는 Iron Software에서 제공하는 라이브러리로, C# 애플리케이션에서 인쇄 작업을 관리하는 기능을 제공하며, 프린터 이름 및 인쇄 옵션을 지정할 수 있습니다.

C#에서 사용 가능한 프린터를 어떻게 찾을 수 있나요?

IronPrint를 사용하여 네트워크의 사용 가능한 프린터를 쉽게 발견하고, 인쇄 작업을 위한 원하는 PrinterName을 선택할 수 있습니다.

PrinterName 속성을 동적으로 설정할 수 있나요?

네, IronPrint를 사용하면 원하는 프린터를 런타임에 선택할 수 있도록 코드 내에서 PrinterName 속성을 동적으로 설정할 수 있습니다.

IronPrint를 사용하여 네트워크 프린터로 인쇄할 수 있나요?

네, IronPrint를 사용하여 C# 애플리케이션에서 적절한 PrinterName 속성을 설정하여 네트워크 프린터로 지정하고 인쇄할 수 있습니다.

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'name'

Filename: sections/author_component.php

Line Number: 18

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 18
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'title'

Filename: sections/author_component.php

Line Number: 38

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 38
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Illegal string offset 'comment'

Filename: sections/author_component.php

Line Number: 48

Backtrace:

File: /var/www/ironpdf.com/application/views/main/sections/author_component.php
Line: 48
Function: _error_handler

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 63
Function: view

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 64
Function: main_view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

시작할 준비 되셨나요?
Nuget 다운로드 41,154 | 버전: 2026.5 just released
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronPrint
샘플을 실행하세요 문서가 프린터로 전송되는 것을 지켜보세요.