C#에서 PDF 인쇄용 프린터 이름을 가져오는 방법

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

시스템에 어떤 프린터가 설치되어 있는지 아는 것은 문서를 인쇄하는 .NET 애플리케이션에 공통된 전제 조건입니다. 사용자가 드롭다운에서 프린터를 선택할 수 있도록 하거나 특정 장치로 자동으로 인쇄 작업을 라우팅하는 것이 목표이든, 프로그램적으로 프린터 이름을 검색하는 것이 첫 번째 단계입니다.

IronPrint는 현재 Windows 기계에 설치된 모든 프린터를 List<string>로 반환하는 하나의 정적 메서드 — Printer.GetPrinterNames() —를 노출합니다. 아래에서 설치, 동기 및 비동기 검색, 선택한 프린터 이름을 인쇄 작업에 입력하는 방법을 다룹니다.

Quickstart: 프린터 이름 검색

  1. NuGet을 통해 IronPrint 설치: Install-Package IronPrint
  2. 파일에 using IronPrint; 추가
  3. Printer.GetPrinterNames()을 호출하여 프린터 이름의 List<string>을 얻습니다
  4. 목록을 반복하여 각 이름을 표시하거나 저장
  5. 인쇄할 때 선택한 이름을 PrintSettings.PrinterName에 전달합니다
  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPrint 설치하기

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

    using IronPrint;
    
    // Retrieve every printer installed on this machine
    List<string> printers = Printer.GetPrinterNames();
    
    foreach (var name in printers)
    {
        Console.WriteLine(name);
    }
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

    arrow pointer

설치된 모든 프린터 이름을 나열하는 방법은?

Printer.GetPrinterNames()는 운영 체제를 쿼리하고 모든 등록된 프린터를 List<string>로 반환합니다. 이 방법을 한 번 호출하고 결과를 반복합니다:

:path=/static-assets/print/content-code-examples/how-to/retrieve-printer-names/retrieve-printer-names-list-all-printers.cs
using IronPrint;
using System;
using System.Collections.Generic;

// Get every printer registered on this Windows machine
List<string> printerNames = Printer.GetPrinterNames();

Console.WriteLine($"Found {printerNames.Count} printer(s):\n");

foreach (string name in printerNames)
{
    Console.WriteLine($"  • {name}");
}
Imports IronPrint
Imports System
Imports System.Collections.Generic

' Get every printer registered on this Windows machine
Dim printerNames As List(Of String) = Printer.GetPrinterNames()

Console.WriteLine($"Found {printerNames.Count} printer(s):" & vbCrLf)

For Each name As String In printerNames
    Console.WriteLine($"  • {name}")
Next
$vbLabelText   $csharpLabel

콘솔 출력

3개의 프린터가 발견되었습니다:

  • Microsoft Print to PDF
  • HP LaserJet Pro MFP M428
  • OneNote (데스크톱)

반환된 목록에는 로컬 프린터, 네트워크 프린터 및 가상 인쇄 드라이버가 포함되어 있습니다. 각 문자열은 Windows 설정 > 프린터 및 스캐너 패널에 표시된 정확한 이름과 일치하므로 인쇄 설정 구성에서 직접 사용할 수 있습니다.

프린터가 설치되지 않은 경우 메서드는 예외를 던지지 않고 빈 목록을 반환합니다. 사용자에게 옵션을 제시하기 전에 필요한 것은 빠른 printerNames.Count 확인 뿐입니다.

프린터 이름을 비동기적으로 검색하는 방법은?

UI 스레드를 차단할 수 없는 애플리케이션 — WPF, MAUI, ASP.NET 웹 앱 —에서 IronPrint는 Printer.GetPrinterNamesAsync()을 제공합니다. 이 메서드는 Task<List<string>>을 반환하며 그 동기화 버전과 동일하게 작동합니다.

:path=/static-assets/print/content-code-examples/how-to/retrieve-printer-names/retrieve-printer-names-async-printer-names.cs
using IronPrint;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

// Await the async call to avoid blocking the UI thread
List<string> printerNames = await Printer.GetPrinterNamesAsync();

foreach (string name in printerNames)
{
    Console.WriteLine(name);
}
Imports IronPrint
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks

' Await the async call to avoid blocking the UI thread
Dim printerNames As List(Of String) = Await Printer.GetPrinterNamesAsync()

For Each name As String In printerNames
    Console.WriteLine(name)
Next
$vbLabelText   $csharpLabel

다른 비동기 API처럼 await 호출합니다. 결과는 GetPrinterNames()에 의해 반환된 것과 동일한 List<string>이므로 추가적인 파싱이나 변환이 필요하지 않습니다. 이 비동기 패턴은 async Task 컨트롤러 액션 및 async void 이벤트 핸들러와 자연스럽게 통합됩니다.

특정 프린터 이름으로 인쇄하는 방법은?

프린터 이름을 얻은 후, 우리는 그것을 PrintSettings.PrinterName에 지정하고 설정 객체를 Printer.Print()에 전달합니다. 이렇게 하면 대화 상자를 표시하지 않고 선택한 프린터로 문서를 직접 전송합니다:

:path=/static-assets/print/content-code-examples/how-to/retrieve-printer-names/retrieve-printer-names-print-to-specific-printer.cs
using IronPrint;
using System.Collections.Generic;

// Step 1 — Retrieve available printers
List<string> printers = Printer.GetPrinterNames();

// Step 2 — Select a printer (first match containing "LaserJet" as an example)
string targetPrinter = printers.Find(p => p.Contains("LaserJet"))
                       ?? printers[0]; // fallback to first available

// Step 3 — Configure print settings
PrintSettings settings = new PrintSettings
{
    PrinterName = targetPrinter,
    PaperSize = PaperSize.A4,
    NumberOfCopies = 1
};

// Step 4 — Print the document
Printer.Print("invoice.pdf", settings);
Imports IronPrint
Imports System.Collections.Generic

' Step 1 — Retrieve available printers
Dim printers As List(Of String) = Printer.GetPrinterNames()

' Step 2 — Select a printer (first match containing "LaserJet" as an example)
Dim targetPrinter As String = printers.Find(Function(p) p.Contains("LaserJet")) _
                       OrElse printers(0) ' fallback to first available

' Step 3 — Configure print settings
Dim settings As New PrintSettings With {
    .PrinterName = targetPrinter,
    .PaperSize = PaperSize.A4,
    .NumberOfCopies = 1
}

' Step 4 — Print the document
Printer.Print("invoice.pdf", settings)
$vbLabelText   $csharpLabel

PrintSettingsDpi, PaperOrientation, Grayscale, PaperMargins 같은 추가 속성을 지원합니다. 전체 목록은 PrintSettings API 참조인쇄 설정 안내서에서 참조하세요.

특정 프린터의 경우 Printer.GetPrinterTrays(printerName)를 사용하여 사용 가능한 용지함도 검색합니다. 이는 인쇄 작업이 특정 용지함에서 용지를 가져와야 하는 경우 유용합니다.

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

우리는 네 가지 작업을 다루었습니다: IronPrint 설치, GetPrinterNames()와 함께 모든 프린터 이름 나열, GetPrinterNamesAsync()과 함께 동일한 쿼리를 비동기로 실행, PrintSettings.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 다운로드 38,930 | 버전: 2026.4 방금 출시되었습니다
Still Scrolling Icon

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

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