프린터 이름을 C#에서 지정하는 방법
IronPrint의 PrintSettings 클래스는 특정 프린터로 인쇄 작업을 보내는 PrinterName 속성을 노출합니다. 우리는 대상 프린터의 정확한 이름을 문자열로 할당하고, 구성된 PrintSettings 객체를 IronPrint의 모든 인쇄 메서드에 전달하며, 문서는 시스템 기본 프린터 대신 해당 프린터로 갑니다.
이 가이드는 프린터 이름 설정, 실행 시 사용 가능한 프린터 검색, 다른 인쇄 설정과의 프린터 선택 결합 방법을 안내합니다.
빠른 시작: 프린터 이름 지정
-
NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPrint 설치하기
-
다음 코드 조각을 복사하여 실행하세요.
using IronPrint; // Print a document to a specific printer Printer.Print("report.pdf", new PrintSettings { PrinterName = "HP LaserJet Pro M404" }); -
실제 운영 환경에서 테스트할 수 있도록 배포하세요.
무료 체험판으로 오늘 프로젝트에서 IronPrint 사용 시작하기
최소 워크플로우(5단계)
- IronPrint C# 인쇄 라이브러리 설치
PrintSettings객체 생성PrinterName을 대상 프린터의 이름으로 설정하십시오Printer.Print에 설정 전달- 지정된 프린터에 인쇄하기 위해 프로젝트를 실행하십시오.
C#에서 프린터 이름을 어떻게 지정합니까?
우리는 PrintSettings 객체의 PrinterName 속성에 프린터의 이름을 할당하여 대상 프린터를 지정합니다. 그런 다음 해당 객체를 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)
처음 PrintSettings을 인스턴스화하면, 이는 OS 기본 프린터를 의미하는 PrinterName = null으로 초기화됩니다. 그런 다음 대상 프린터의 정확한 문자열 이름으로 PrinterName을 재정의합니다. Printer.Print을 호출하면, IronPrint는 해당 프린터의 큐에 직접 작업을 보냅니다.
산출
인보이스가 지정된 프린터로 직접 전송됩니다. 작업은 무음 인쇄 예제에서 볼 수 있는 대기열에 나타납니다.
"Microsoft Print to PDF"에 PrinterName을 사용하여 인보이스 출력을 인쇄합니다.
염두에 둬야 할 두 가지 세부사항. 첫째, 프린터 이름은 운영 체제가 보고하는 것과 정확히 일치해야 합니다; 이 비교는 대소문자를 구분합니다. "hp laserjet" 대신 "HP LaserJet"가 있으면 조용히 실패하거나 오류가 발생합니다. 두 번째로, 사용자가 ShowPrintDialog를 통해 인쇄 대화상자를 열면, 대화상자 선택이 코드에서 설정된 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
우리는 운영 체제가 알고 있는 모든 프린터, 로컬, 네트워크, 'Microsoft Print to PDF'와 같은 가상 프린터를 검색하기 위해 GetPrinterNames를 호출합니다. 그런 다음 목록을 순회하며 인덱스, 이름 일치 또는 애플리케이션이 요구하는 모든 사용자 정의 논리에 따라 프린터를 선택합니다.
산출
보고서는 사용 가능한 첫 번째 프린터로 전송됩니다. 작업은 위에서 본 것처럼 프린터 대기열에 나타납니다.
GetPrinterNames를 통해 보고서 출력을 사용 가능한 첫 번째 프린터에 인쇄합니다.
이 발견 후 인쇄 패턴은 다른 기기에 배포되는 응용 프로그램에 필수적입니다. 프린터 이름을 하드코딩하는 것은 단일 컴퓨터 시나리오에 적합하지만, 프로덕션 응용 프로그램에서는 사용할 수 있는 프린터를 쿼리하여 사용자가 선택하거나 이름 규칙에 따라 프로그래밍적으로 하나를 선택해야 합니다.
프린터 선택은 용지 크기, DPI, 복사본 수, 여백과 함께 단일 구성 객체에 페어링할 수 있습니다.
프린터 이름과 다른 설정을 어떻게 결합합니까?
PrintSettings 클래스는 용지 크기, 방향, DPI, 여백, 복사 수 등과 함께 PrinterName를 노출합니다. 우리는 모든 것을 하나의 객체로 구성합니다.
입력
quarterly-report.pdf는 KPI 카드와 차트를 포함한 A4 분기별 재무 보고서로, PrintSettings 객체 내에 용지 크기, DPI, 복사 수와 결합된 PrinterName로 인쇄됩니다.
: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)
가독성을 위해 객체 초기화 구문을 사용합니다. PrinterName는 작업을 'Office Color Printer'로 라우팅하는 반면 나머지 속성은 출력 형식을 제어합니다. Dpi는 300에서 선명한 텍스트와 그래픽을 생성합니다. PaperMargins는 Margins 생성자를 통해 밀리미터 값을 수용합니다. 사용 가능한 속성의 전체 목록은 인쇄 설정 가이드를 참조하세요.
산출
분기별 보고서는 명명된 프린터, A4 세로 방향, 300 DPI, 2매의 복사본, 15 mm 여백으로 인쇄 작업을 하나로 결합하여 인쇄됩니다. 작업은 위에서 본 것처럼 프린터 대기열에 나타납니다.
명명된 프린터, A4, 300 DPI, 2매의 복사본 및 15 mm 여백과 함께 분기별 보고서 출력.
IronPrint는 구성 전체를 검증하고 단일 작업에서 결합된 설정을 프린터 드라이버에 제출합니다.
프린터 탐색 중이나 인쇄 중에 주 스레드를 차단할 수 없는 애플리케이션은 두 작업의 비동기 등가 기능을 사용할 수 있습니다.
프린터를 선택하고 비동기적으로 인쇄하는 방법
메인 스레드를 차단할 수 없는 WPF 및 WinForms 앱에서는 Printer.GetPrinterNamesAsync와 Printer.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
이 클래스 기반 예제는 탐색 및 인쇄 논리를 재사용 가능한 서비스에 래핑합니다. 우리는 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 속성을 설정하여 네트워크 프린터로 지정하고 인쇄할 수 있습니다.

