C#에서 문서를 무음으로 인쇄하는 방법

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

무음 인쇄는 코드를 통해 문서를 직접 프린터로 전송합니다 — 대화 상자, 사용자 상호 작용, 중단 없음. 배치 송장 처리, 키오스크 응용 프로그램, Windows 서비스 백그라운드 작업과 같은 자동화된 워크플로에서는 인쇄 대화 상자의 제거가 필수적입니다. 기본 System.Drawing.Printing 네임스페이스는 무음 인쇄 경로를 제공하지만, 이는 팀과 프로젝트에 걸쳐 잘 확장되지 않는 이벤트 기반 상용구가 필요합니다.

IronPrint는 무음 인쇄를 단일 메서드 호출로 축소합니다. 우리는 하나의 NuGet 패키지를 설치하고 Printer.Print()를 호출합니다 — 라이브러리가 프린터 통신, 문서 렌더링, 및 인쇄 스풀러 상호 작용을 백그라운드에서 처리합니다.

빠른 시작: 무음 인쇄

  1. IronPrint를 NuGet을 통해 설치: Install-Package IronPrint
  2. 파일에 using IronPrint; 추가
  3. 문서를 기본 프린터로 보내려면 Printer.Print("filepath") 호출
  4. 프린터 이름, DPI, 사본 수 및 용지 구성을 제어하기 위해 PrintSettings 객체 전달
  5. 호출 스레드를 차단하지 않아야 할 때 Printer.PrintAsync() 사용
  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronPrint 설치하기

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

    using IronPrint;
    
    // Silent print — no dialog, no user interaction
    Printer.Print("invoice.pdf");
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

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

    arrow pointer

.NET에서 무음 인쇄는 어떻게 작동합니까?

.NET System.Drawing.Printing 네임스페이스는 인쇄 작업 중 상태 대화 상자를 억제하는 StandardPrintController 클래스를 포함합니다. 기본적으로, .NET은 "페이지 X/Y 인쇄 중" 팝업을 표시하는 PrintControllerWithStatusDialog를 사용합니다. StandardPrintController로 전환하면 그 대화상자를 제거하지만 설정 비용은 상당합니다.

기본 방법으로 무음 인쇄를 하려면 PrintDocument를 만들고, 인쇄 그래픽 표면에 콘텐츠를 그리는 PrintPage 이벤트 핸들러를 첨부하고, StandardPrintController를 할당하고, PrinterSettings를 구성하고, Print()를 호출합니다. 이 작업에는 단일 문서에 대해 약 15–25줄의 설정 코드가 필요하며, 새로운 문서 타입이나 형식은 모두 자체 렌더링 로직이 PrintPage 이벤트에서 필요합니다. 특히 PDF 렌더링은 System.Drawing.Printing에 내장되어 있지 않으며, 페이지를 추출하고 Graphics 표면에 그리기 위해 별도의 PDF 파싱 라이브러리가 필요합니다.

IronPrint는 이 전체 파이프라인을 정적 Printer 클래스에 포함시킵니다. Print() 메서드는 파일 경로나 바이트 배열을 받아 파일 형식을 감지하고, 적절한 엔진을 통해 렌더링하며, 기본 프린터로 전송합니다 — 모든 것이 대화 상자를 표시하지 않고 이루어집니다.

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

Print() 메서드는 PDF, PNG, TIFF, JPEG, GIF, HTML, BMP 파일 형식을 지원합니다. 우리는 파일 경로를 문자열로 전달하거나 원시 파일 데이터를 byte[]로 전달하며, IronPrint는 렌더링 전략을 자동으로 결정합니다.

무음 출력에 대한 인쇄 설정을 어떻게 구성합니까?

PrintSettings 클래스는 우리에게 인쇄 작업에 대한 완전한 제어를 제공합니다. 우리는 대상 프린터, 용지 크기, 방향, 여백, DPI, 컬러 모드, 사본 수 및 양면 인쇄 동작을 구성한 다음 설정 객체를 Printer.Print()에 전달합니다.

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

각 속성은 표준 인쇄 스풀러 설정에 매핑됩니다. DPI은 출력 해상도를 제어합니다 — 300은 비즈니스 문서에 일반적으로 사용되며, 150은 초안에 적합합니다. Grayscale은 색상이 필요하지 않을 때 토너 사용을 줄입니다. PaperMargins 값은 밀리미터 단위로 지정됩니다.

특정 프린터를 어떻게 선택하나요?

우리는 Printer.GetPrinterNames()를 사용하여 시스템에 설치된 모든 프린터를 나열한 다음 대상 프린터 이름을 PrintSettings.PrinterName에 할당합니다.

:path=/static-assets/print/content-code-examples/how-to/silent-printing/select-specific-printer.cs
// 이 코드 조각은 사용할 수 없습니다!
$vbLabelText   $csharpLabel

PrinterName이 지정되지 않으면, IronPrint는 작업을 운영 체제의 기본 프린터로 보냅니다. 여러 프린터가 있는 환경 — 공유 사무실, 창고, 인쇄실 — 에서는 프로그래밍 방식으로 적절한 프린터를 열거하고 선택하여 잘못된 경로의 작업을 방지합니다.

여러 문서를 배치로 인쇄하려면 어떻게 합니까?

배치 인쇄는 간단한 루프 패턴을 따릅니다. 우리는 파일 경로의 컬렉션을 반복하여 각 문서에 대해 Printer.Print()을 호출합니다. 모든 호출이 조용히 처리되므로, 전체 배치는 단 하나의 대화형 프롬프트 없이 완료됩니다.

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

Print() 호출을 try/catch로 감싸는 것은 파일이 손상되었거나 프린터 타임아웃이 전체 배치를 중지하지 않도록 보장합니다. 백그라운드 서비스에서 실행되는 대용량 배치의 경우, 각 결과를 데이터베이스나 모니터링 시스템에 기록하면 운영 팀이 검토할 수 있는 감사 추적을 제공합니다.

스레드를 차단하지 않고 비동기적으로 인쇄하는 방법은 무엇입니까?

Printer.PrintAsync() 메서드는 Task을 반환하여 await 패턴과 호환되도록 합니다. 이는 차단되는 인쇄 호출이 인터페이스를 멈추게 하는 UI 응용 프로그램과 동시 작업을 처리하는 서비스에 필수적입니다.

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

PrintAsync()Print()과 동일한 매개 변수를 허용합니다 — 파일 경로나 바이트 배열 그리고 선택적인 PrintSettings 객체입니다. 비동기 오버로드는 수십 개의 문서가 동시에 인쇄 대기열에 놓이는 고처리량 시나리오에서 스레드 풀 고갈을 방지합니다. 이는 현대 .NET 개발 전반에 걸쳐 권장되는 작업 기반 비동기 패턴과 동일한 흐름을 따릅니다.

플랫폼 고려 사항은 무엇입니까?

IronPrint는 데스크탑과 모바일 플랫폼에서 조용한 인쇄를 지원하지만, 동작은 운영 체제에 따라 다릅니다.

플랫폼 무음 인쇄 노트
Windows (7+) 전체 지원 대화 상자 없음, 완전한 PrintSettings 제어
macOS (10+) 지원됨 macOS 기본 인쇄 하위 시스템을 사용
iOS (11+) 대화 상자 표시 Print()는 여전히 시스템 인쇄 대화 상자를 표시합니다
Android (API 21+) 대화 상자 표시 Print()는 여전히 시스템 인쇄 대화 상자를 표시합니다

모바일 플랫폼에서는 운영 체제 제한으로 인해 진정한 무음 인쇄가 불가능합니다 — Printer.Print()은 네이티브 인쇄 대화 창을 표시할 것입니다. 안드로이드에서는 Printer.Initialize(Android.Content.Context) 호출이 모든 인쇄 작업 전에 필요합니다. 데스크탑 플랫폼(Windows 및 macOS)은 완전히 비중단의 조용한 인쇄를 모든 제약 없이 지원합니다.

네이티브 .NET 인쇄와 어떻게 비교됩니까?

라이브러리를 채택할지 기본 System.Drawing.Printing 네임스페이스 위에 구축할지 평가하는 엔지니어링 팀에게 있어, 다음과 같은 상쇄 요소가 있습니다:

PDF/UA-1 PDF/UA-2
게시됨 2012 2024
기본 사양 PDF 1.7 (ISO 32000-1) PDF 2.0 (ISO 32000-2)
규제 범위 미국 장애인법(ADA) 제2장 제508조, EU 접근성법 기존 규정과 호환됩니다.
검증 도구 veraPDF, Adobe Acrobat Pro, PAC 2024 veraPDF (점점 더 많은 지원)
폼 필드 의미론 기준 향상된 기능 (더욱 풍부한 접근성 메타데이터)
~에 가장 적합함 오늘날 대부분의 프로젝트 PDF 2.0 기능을 필요로 하는 새로운 시스템

네이티브 접근 방식은 이미 문서 렌더링 인프라가 있는 팀이 간단한 시나리오에서 작동합니다. PDF, 이미지 또는 HTML을 렌더링 코드 없이 인쇄하는 팀의 경우 IronPrint는 수주일의 개발과 지속적인 유지를 제거합니다. 2025년 5월 릴리스에서 제공된 30% 인쇄 속도 향상은 자체적으로 구축할 경우 엔지니어링 사이클을 소비할 최적화의 한 예입니다.

다음 단계

IronPrint로 무음 인쇄를 수행할 때, 세 가지 핵심 메서드로 구성됩니다: 동기화 무음 출력을 위한 Printer.Print(), 비차단 실행을 위한 Printer.PrintAsync(), 인쇄 작업에 대한 완전한 제어를 위한 PrintSettings. 이들은 데스크탑 플랫폼 전반에 걸쳐 단일 문서, 배치, 동시 인쇄 시나리오를 포괄합니다.

깊이 있는 튜토리얼을 살펴보려면 IronPrint 튜토리얼을 탐색하거나, 완전한 메서드 표면을 위해 프린터 클래스 API 레퍼런스를 검토하세요. 인쇄 설정 사용 방법은 트레이 선택 및 평면화와 같은 추가 구성 옵션을 다룹니다.

무료 30일 체험판을 시작하세요 실제 환경에서 조용한 인쇄를 테스트하십시오 — 신용카드가 필요 없습니다. 배포 준비가 되면, 749달러부터 시작하는 라이선스 옵션을 확인하세요.

Iron Software 엔지니어와 채팅하여 특정 배포 시나리오에 대한 도움을 받으세요.

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