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

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

인쇄 대화 상자는 사용자로 하여금 인쇄기를 선택하고, 복사본 수를 설정하고, 페이지 범위를 선택하며, 인쇄 전에 용지 옵션을 조정할 수 있게 하는 표준 운영 체제 창입니다. 사용자가 문서가 어디서 어떻게 인쇄되는지 제어할 필요가 있는 데스크톱 애플리케이션에서는 이 대화 상자를 표시하는 것이 기대되는 동작입니다.

IronPrintPrinter.ShowPrintDialog()이라는 단일 메서드를 제공하여 기본 인쇄 대화 상자를 표시하고, 사용자 선택을 적용하며, 문서를 선택한 프린터로 보냅니다. 우리는 하나의 NuGet 패키지를 설치하고 한 줄의 코드를 작성합니다.

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

  1. NuGet을 통해 IronPrint 설치: Install-Package IronPrint
  2. 파일에 using IronPrint; 추가
  3. 기본 인쇄 대화 상자를 열기 위해 Printer.ShowPrintDialog("filepath") 호출
  4. (선택 사항) 대화 상자의 기본값을 미리 설정하기 위해 PrintSettings 객체 전달
  5. 사용자는 프린터, 복사본 및 옵션을 선택한 후 인쇄를 클릭합니다
  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() 메서드는 운영 체제의 기본 인쇄 대화 상자를 엽니다. 사용자는 프린터 선택, 복사본 수, 페이지 범위, 방향 및 용지 크기를 포함한 전체 인쇄 옵션을 확인하고 인쇄 버튼을 클릭하여 작업을 보내거나, 인쇄 없이 대화 상자를 닫으려면 취소를 클릭합니다.

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

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

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/show-print-dialog-open-and-print.cs
// 이 코드 조각은 사용할 수 없습니다!
$vbLabelText   $csharpLabel

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

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

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

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/preconfigure-dialog-settings.cs
// 이 코드 조각은 사용할 수 없습니다!
$vbLabelText   $csharpLabel

이는 응용 프로그램이 예상되는 프린터나 용지 형식을 미리 알고 있을 때 유용합니다. 예를 들어, 항상 특정 열 프린터에 영수증을 인쇄하는 POS 시스템은 디바이스에 PrinterName 기본값을 설정할 수 있습니다. 사용자는 여전히 대화 상자에서 변경할 수 있습니다.

시스템에서 사용할 수 있는 프린터를 확인하기 위해 Printer.GetPrinterNames()를 호출하여 모든 설치된 프린터의 List<string>을 반환합니다. 마찬가지로, Printer.GetPrinterTrays()는 주어진 프린터에 대한 사용 가능한 용지 트레이를 반환합니다.

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

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

Printer.ShowPrintDialogAsync() 메서드는 Task을 반환하여 asyncawait과 호환되도록 합니다. 이 메서드는 WPF, MAUI 및 인터페이스가 멈추면 사용자 경험이 저하되는 모든 응용 프로그램에서 UI 스레드를 차단하지 않게 합니다.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/show-print-dialog-async.cs
// 이 코드 조각은 사용할 수 없습니다!
$vbLabelText   $csharpLabel

ShowPrintDialogAsync()는 동기 버전과 동일한 매개변수를 수용합니다: 파일 경로 또는 바이트 배열, 추가적으로 PrintSettings 객체. 비동기 패턴은 최신 .NET 개발 전반에 걸쳐 사용되는 작업 기반 비동기 패턴을 따릅니다.

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

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

그 선택은 사용자가 인쇄 작업을 제어해야 하는지 여부에 따라 다릅니다.

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

사용자가 인쇄 전에 설정을 확인하거나 변경해야 하는 경우 대화 상자를 사용하십시오 — 보고서 내보내기, 송장 인쇄 또는 잘못된 프린터로 인해 페이지가 낭비되는 모든 상황에서 대화 상자를 사용하세요. 무음 인쇄는 응용 프로그램이 전체 작업을 제어하고 사람의 결정이 필요하지 않을 때 사용하세요. 문서 인쇄 튜토리얼은 두 가지 접근 방식을 나란히 설명합니다.

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

Printer.ShowPrintDialog()silent printing과 동일한 형식을 지원합니다: PDF, PNG, TIFF, JPEG, GIF, HTML 및 BMP. 우리는 형식에 관계없이 파일 경로를 전달하면, IronPrint가 렌더링 및 인쇄 스풀러 통신을 처리합니다. byte[]로 파일 데이터를 수용할 수도 있어 메모리에서 문서를 생성하거나 데이터베이스에서 검색할 때 유용합니다.

:path=/static-assets/print/content-code-examples/how-to/print-with-dialog/print-dialog-image-and-byte-array.cs
// 이 코드 조각은 사용할 수 없습니다!
$vbLabelText   $csharpLabel

코드 예제 페이지에서 추가적인 형식별 시나리오를 보여줍니다. PDF 특정 작업 흐름 — PDF를 생성하고 즉시 인쇄 — IronPDF와 IronPrint가 자연스럽게 결합됩니다. IronPrint 대 IronPDF 비교는 언제 각자를 사용해야 하는지 설명합니다.

다음 단계

대화 상자로 인쇄하는 것은 두 가지 메서드로 요약됩니다: 동기 호출을 위한 Printer.ShowPrintDialog() 및 논블로킹 실행을 위한 Printer.ShowPrintDialogAsync(). PrintSettings으로 기본값을 미리 설정하고, 사용자가 거기에서 조정하도록 합니다. 두 가지 방법 모두 IronPrint의 문서 형식을 지원하며 WinForms, WPF, MAUI 및 콘솔 프로젝트 전반에서 작동합니다.

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

실제 프로젝트에서 대화형 인쇄를 테스트하기 위해 무료 30일 체험판 시작하기 - 신용 카드 불필요. 출시 준비가 되면 라이선스 옵션 보기 $749부터 시작합니다.

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,093 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

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

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