대화 상자를 통해 C#에서 인쇄하는 방법

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

IronPrint는 Printer.ShowPrintDialog(): 네이티브 OS 인쇄 대화 상자를 열고, 사용자의 프린터 및 용지 설정을 캡처한 후, 문서를 인쇄 대기열로 전송하는 하나의 메서드를 제공합니다. 하나의 NuGet 패키지를 설치하고 한 줄의 코드를 작성하십시오.

프린트 대화 상자는 사용자가 인쇄하기 전에 프린터를 선택하고, 사본 수를 설정하고, 페이지 범위를 선택하고, 용지 옵션을 조정할 수 있는 표준 OS 창입니다. 사용자에게 이 제어 기능을 제공해야 하는 데스크톱 애플리케이션이 주된 사용 사례입니다.

빠른 시작: 대화 상자와 함께 인쇄하기

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

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

    using IronPrint;
    
    // Display the print dialog and print the document
    Printer.ShowPrintDialog("document.pdf");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

    arrow pointer

인쇄 대화 상자가 C#에서 어떻게 작동합니까?

Printer.ShowPrintDialog() 메서드는 운영 체제의 기본 PRINT 대화 상자를 엽니다. 사용자는 프린터 선택, 사본 수, 페이지 범위, 방향 및 용지 크기와 같은 전체 인쇄 옵션을 확인할 수 있습니다. 사용자는 인쇄를 클릭하여 작업을 보내거나 인쇄하지 않고 대화 상자를 닫기 위해 취소를 클릭합니다.

내부적으로, 네이티브 .NET 방식은 System.Windows.Forms.PrintDialog 인스턴스를 생성하고, 이를 PrintDocument에 연결하며, PrintPage 이벤트를 처리하여 PRINT 그래픽 표면에 콘텐츠를 그리며, DialogResult를 확인한 후 PrintDocument.Print()를 호출해야 합니다. 그 설정은 일반적으로 15–25줄의 코드로 실행됩니다. 또한 기본 PDF 또는 이미지 렌더링(네이티브 대화 상자를 통해 PDF를 인쇄한다는 것은 PDF를 그릴 수 있는 페이지로 먼저 구문 분석해야 함을 의미하며, 이는 또 다른 라이브러리가 필요함)을 포함하지 않습니다.

IronPrint는 전체 파이프라인을 한 번의 호출로 처리합니다.

입력

ShowPrintDialog로 전달된 quarterly-report.pdf는 KPI 지표 카드와 사업부별 매출 표가 포함된 기업용 3분기 재무 요약 문서로, PRINT 대화 상자로 전송되는 일반적인 비즈니스 문서를 나타냅니다.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-open-and-print.cs
using IronPrint;

// Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf");
Imports IronPrint

' Open the print dialog and print
Printer.ShowPrintDialog("quarterly-report.pdf")
$vbLabelText   $csharpLabel

산출

ShowPrintDialog으로 열리는 네이티브 인쇄 대화 상자

ShowPrintDialog으로 열리는 분기별 보고서의 네이티브 인쇄 대화 상자.

이 메서드는 string 형식의 파일 경로 또는 byte[] 형식의 원시 파일 데이터를 인수로 받습니다. IronPrint는 문서 형식을 감지하고 적절한 엔진을 통해 렌더링한 다음 대화 상자를 표시합니다. 사용자가 확인하면 선택한 설정으로 문서가 인쇄됩니다. 문서 인쇄 튜토리얼에서는 전체 인쇄 수명 주기에 대해 자세히 설명합니다.

대화 상자 설정을 사전 구성하려면 어떻게 해야 하나요?

PrintSettings 객체를 생성하여 두 번째 매개변수로 전달함으로써 대화 상자가 열리기 전에 기본값을 설정할 수 있습니다. 대화 상자는 이 값이 미리 선택된 상태로 열리며 사용자는 그대로 수락하거나 설정을 변경할 수 있습니다.

입력

A4 세로 방향 설정으로 미리 로드된 invoice.pdf: 전문 청구서에는 라인 항목, 할인, 세금 및 송금 지침이 포함되어 있으며, 애플리케이션이 이미 필요한 용지 크기와 방향을 알고 있는 현실적인 문서를 보여줍니다.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-preconfigure-dialog-settings.cs
using IronPrint;

// Pre-configure default dialog settings
var settings = new PrintSettings
{
    PrinterName = "HP LaserJet Pro",
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    Grayscale = false
};

// Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings);
Imports IronPrint

' Pre-configure default dialog settings
Dim settings As New PrintSettings With {
    .PrinterName = "HP LaserJet Pro",
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .Grayscale = False
}

' Open the dialog with pre-filled settings
Printer.ShowPrintDialog("invoice.pdf", settings)
$vbLabelText   $csharpLabel

산출

사전 구성된 설정으로 Windows 인쇄 대화 상자

사전 구성된 A4 세로 방향 설정으로 열리는 네이티브 인쇄 대화 상자.

이는 응용 프로그램이 예상되는 프린터나 용지 형식을 미리 알고 있을 때 유용합니다. 예를 들어, 항상 특정 감열 프린터로 영수증을 인쇄하는 POS(판매 시점 관리) 시스템은 해당 장치를 기본값 PrinterName으로 설정할 수 있습니다. 사용자는 대화 상자에서 이를 변경할 수 있는 옵션을 여전히 가지고 있습니다.

시스템에서 사용 가능한 프린터를 확인하려면 Printer.GetPrinterNames() 호출하면 되며, 이 함수는 설치된 모든 프린터의 List<string>을 반환합니다. 마찬가지로, Printer.GetPrinterTrays()는 지정된 프린터에서 사용 가능한 용지함을 반환합니다.

구성 가능한 속성의 전체 목록에는 PrinterName, PaperSize, PaperOrientation, Dpi, NumberOfCopies, Grayscale, PaperMargins, Flatten(PDF 양식 필드용) 및 Tray가 포함됩니다. 인쇄 설정 안내서는 각 속성을 코드 예제와 함께 다룹니다. PrintSettings에 설정되지 않은 모든 속성은 선택한 프린터의 표준 구성으로 기본 설정됩니다.

비동기적으로 대화 상자를 표시하려면 어떻게 해야 하나요?

Printer.ShowPrintDialogAsync() 메서드는 Task를 반환하므로, await와 호환됩니다. 이는 UI 스레드를 차단하는 대화 상자를 방지하며, 이는 WPF, MAUI 및 고정된 인터페이스가 사용자 경험을 저하시킬 수 있는 애플리케이션에 필수적입니다.

입력

비동기로 대기 중인 report.pdf: IT 인프라 및 보안 보고서로 구성된 장문 형식의 문서를 나타내며, 파일이 로드되는 동안 비차단 대화 상자 프레젠테이션을 유지하여 UI 응답성을 유지할 수 있습니다.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-show-print-dialog-async.cs
using IronPrint;

// Open the print dialog asynchronously
await Printer.ShowPrintDialogAsync("report.pdf");
Imports IronPrint

' Open the print dialog asynchronously
Await Printer.ShowPrintDialogAsync("report.pdf")
$vbLabelText   $csharpLabel

산출

ShowPrintDialogAsync를 통해 열리는 비동기 인쇄 대화 상자

ShowPrintDialogAsync를 통해 비동기적으로 열리는 네이티브 인쇄 대화 상자, 콘솔이 비차단 실행을 확인합니다.

ShowPrintDialogAsync()는 동기식 버전과 동일한 매개변수를 받습니다. 즉, 파일 경로나 바이트 배열, 그리고 선택적인 PrintSettings 객체입니다. 비동기 패턴은 최신 .NET 개발 전반에 걸쳐 사용되는 작업 기반 비동기 패턴을 따릅니다.

IronPrint는 WinForms, WPF, MAUI, 콘솔 응용 프로그램 전반에서 작동합니다. 대화 상자 모양은 호스트 플랫폼 및 운영 체제 버전에 맞게 조정되므로 사용자는 항상 예상하는 기본 인쇄 창을 보게 됩니다.

언제 대화 상자를 사용하고 언제 무음 인쇄를 사용해야 하나요?

사용자가 각 작업 전에 프린터 설정을 선택해야 할 때는 대화 상자를 사용하십시오; 문서 간에 인간의 결정이 필요 없는 자동화된 워크플로에는 무음 인쇄를 사용하십시오.

기준 대화 상자와 함께 인쇄 무음 인쇄
사용자 상호작용 사용자가 프린터, 사본, 페이지 범위를 선택함 상호 작용 없음; prints immediately
~에 가장 적합함 데스크톱 앱, 일회성 인쇄, 사용자 친화적 기능 배치 작업, 백그라운드 서비스, 키오스크 앱
프린터 선택 사용자가 대화 상자에서 선택 PrintSettings을 통해 프로그래밍 방식으로 설정
IronPrint 메서드 Printer.ShowPrintDialog() Printer.Print()
비동기 변형 ShowPrintDialogAsync() PrintAsync()

잘못된 프린터가 재료를 낭비하는 모든 작업에서 보고서 내보내기, 송장 인쇄 및 대화 상자가 적합한 후보입니다. 무음 인쇄는 문서 간 인간의 결정이 필요 없는 자동화된 워크플로에 적합합니다.

인쇄 대화 상자가 지원하는 파일 형식은 무엇입니까?

Printer.ShowPrintDialog()은 무음 인쇄와 동일한 형식(PDF, PNG, TIFF, JPEG, GIF, HTML, BMP)을 지원합니다. 형식에 관계없이 파일 경로를 전달하면 IronPrint가 렌더링 및 인쇄 스풀러 통신을 처리합니다. byte[] 형식의 파일 데이터도 허용되며, 이는 문서가 메모리에서 생성되거나 데이터베이스에서 가져올 때 유용합니다.

입력

monthly-report.pdf 파일이 byte[]로 읽어지며, 이는 대화 상자로 전송되기 전에 데이터베이스에서 검색되거나 메모리 내에서 생성된 문서를 나타냅니다.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-with-dialog-print-dialog-image-and-byte-array.cs
using IronPrint;

// Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png");

// Print from a byte array
byte[] reportData = File.ReadAllBytes("monthly-report.pdf");
Printer.ShowPrintDialog(reportData);
Imports IronPrint

' Print an image with the dialog
Printer.ShowPrintDialog("product-photo.png")

' Print from a byte array
Dim reportData As Byte() = File.ReadAllBytes("monthly-report.pdf")
Printer.ShowPrintDialog(reportData)
$vbLabelText   $csharpLabel

산출

위의 예에서 볼 수 있듯이 대화 상자가 열립니다. 형식 감지는 자동으로 이루어집니다. 파일 경로를 전달하든 byte[]를 전달하든, IronPrint는 문서를 렌더링하고 동일한 기본 대화 상자를 표시합니다.

코드 예제 페이지에서 추가적인 형식별 시나리오를 보여줍니다. PDF 전용 워크플로(참고: PDF 생성 및 즉시 인쇄)를 위해 IronPDF가 IronPrint와 자연스럽게 짝을 이룹니다.

다음 단계

대화 상자를 사용한 PRINT는 크게 두 가지 방법으로 나뉩니다: Printer.ShowPrintDialog()는 동기식 호출을, Printer.ShowPrintDialogAsync()는 비차단 실행을 위한 방법입니다. PrintSettings을 사용하여 기본값을 미리 설정하고, 사용자가 이를 바탕으로 조정할 수 있도록 하십시오. 두 가지 방법 모두 IronPrint의 문서 형식을 지원하며 WinForms, WPF, MAUI 및 콘솔 프로젝트 전반에서 작동합니다.

IronPrint 튜토리얼에서 전체 사용 방법을 안내하는 가이드, 사용 가능한 모든 방법에 대한 프린터 클래스 API 참조 또는 고급 구성에 대한 인쇄 설정 가이드를 탐색하세요. 변경 로그에서는 최근 개선 사항과 새로운 기능을 추적합니다.

라이브 프로젝트에서 대화 상자 인쇄를 테스트하기 위해 30일 무료 체험을 시작하십시오, 신용카드 필요 없음. 출시 준비가 되면 $999부터 시작하는 라이선스 옵션을 확인하십시오.

자주 묻는 질문

T90: IronPrint는 개발자가 C# 응용 프로그램에서 인쇄 대화 상자를 표시하고 구성할 수 있도록 하여 미리 구성된 설정으로 PDF 및 이미지를 쉽게 인쇄할 수 있게 합니다.

T91: IronPrint를 사용하여 인쇄 대화 상자를 어떻게 표시할 수 있습니까?

T92: IronPrint의 ShowPrintDialog() 메서드를 사용하여 귀하의 C# 응용 프로그램에서 인쇄 대화 상자를 표시하면, 인쇄 설정을 구성할 수 있는 대화형 방법을 제공합니다.

T93: 예, IronPrint는 비동기 인쇄를 지원하여 인쇄 작업을 처리하는 동안 응용 프로그램이 반응성을 잃지 않도록 합니다.

T59: IronPrint는 비동기 인쇄를 지원하여 비차단 작업을 가능하게 하고, 인쇄 작업 중 애플리케이션 성능을 향상시킵니다.

T94: IronPrint로 인쇄 설정을 미리 구성할 수 있습니까?

T95: 예, IronPrint는 인쇄 대화 상자를 표시하기 전에 용지 크기, 방향 및 프린터 선택과 같은 인쇄 설정을 미리 구성할 수 있습니다.

T96: IronPrint를 사용하여 이미지를 인쇄할 수 있습니까?

T97: IronPrint는 PDF 및 이미지 인쇄를 지원하여 C# 응용 프로그램 내에서 다양한 문서 유형에 대한 유연성을 제공합니다.

T98: IronPrint는 C#에서 인쇄 대화 경험을 어떻게 향상시킵니까?

T99: IronPrint는 개발자가 인쇄 설정을 쉽게 사용자 정의하고 구성할 수 있도록 하여 동기 및 비동기 작업을 모두 지원함으로써 인쇄 대화 경험을 향상시킵니다.

T100: IronPrint로 어떤 유형의 문서를 인쇄할 수 있습니까?

T101: IronPrint를 사용하여 C# 응용 프로그램에서 PDF 및 이미지를 포함한 다양한 문서를 직접 인쇄할 수 있습니다.

T102: IronPrint를 기존 C# 애플리케이션에 통합할 수 있습니까?

T103: 예, IronPrint는 간단히 인쇄 대화 상자 기능을 추가할 수 있도록 기존 C# 응용 프로그램에 손쉽게 통합할 수 있도록 설계되었습니다.

T104: IronPrint는 쉬운 통합, 사용자 정의 가능한 인쇄 설정, 비동기 인쇄 지원 및 PDF와 이미지 인쇄 기능과 같은 장점을 제공합니다.

IronPrint C# 개발자에게 어떤 이점을 제공합니까?

T105: IronPrint는 서로 다른 프린터 구성들을 어떻게 처리합니까?

T106: IronPrint는 다양한 프린터와의 호환성을 보장하고, 특정 인쇄 요구에 맞게 프린터 설정을 구성할 수 있습니다.

T107: 이 웹 페이지는 IronPrint의 ShowPrintDialog()를 사용하여 C# 인쇄 대화 상자를 표시하고 구성하는 포괄적인 가이드를 제공하며, 비동기 작업 및 PDF와 이미지 인쇄를 지원합니다.

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
샘플을 실행하세요 문서가 프린터로 전송되는 것을 지켜보세요.