IronPrint의 ShowPrintDialog 동작 (2024.9 이후)

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

ShowPrintDialogShowPrintDialogAsync는 지원되지 않는 타겟 프레임워크에서 호출될 때 더 이상 예외를 발생시키지 않습니다. 버전 2024.9부터 이들은 경고를 기록하고 대신 PrintAsync()로 넘어갑니다.

이 변경 이전에 호환 가능한 TargetFramework 없이 메서드를 호출하면 다음과 같은 오류가 발생했습니다:

System.AggregateException: 'One or more errors occurred.
(Please try Print/PrintAsync since ShowPrintDialog/ShowPrintDialogAsync in NET Core or NET Standard,
it required UI component so please set more specific OS TargetFrameworks
e.g. net462; net472; net7.0-windows; net7.0-macos; net7.0-maccatalyst; net7.0-android)'

대화 상자 메서드에는 UI 컴포넌트가 필요하며 이는 일반 .NET Core 또는 .NET Standard 타겟에서는 사용할 수 없습니다. 이전 빌드는 이를 심각한 실패로 간주하고 예외를 발생시켰습니다. 런타임에서 예외가 방해가 되었기 때문에 2024.9에서 의도적으로 동작을 변경했습니다.

해결책

대체 동작은 자동이지만 올바른 타겟을 선택하여 어떤 경로를 실행할지 제어할 수 있습니다.

1. 자동 대체 경로에 의존하기

지원되지 않는 프레임워크에서 호출은 이제 경고를 기록하고 PrintAsync()로 라우팅되며, 예외는 발생하지 않습니다. 기존 코드는 충돌 없이 계속 실행되지만 인쇄 대화 상자는 표시되지 않습니다.

경고대체 동작은 대화 상자 없이 인쇄합니다. 사용자는 지원되지 않는 타겟에서 인쇄 프롬프트를 보지 못하므로 UI 프레임워크를 타겟으로 하지 않는 한 대화 상자가 표시될 것이라 믿지 마십시오.

2. 대화 상자를 위한 UI 지원 프레임워크 타겟

실제 인쇄 대화 상자를 얻으려면 UI 지원을 포함한 OS 특정 타겟을 빌드하십시오:

<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
<TargetFrameworks>net462;net472;net7.0-windows;net7.0-macos;net7.0-maccatalyst;net7.0-android</TargetFrameworks>
XML

이러한 프레임워크 중 하나가 있는 경우 ShowPrintDialogShowPrintDialogAsync는 예상대로 대화 상자를 표시합니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 44,051 | 버전: 2026.7 방금 출시
Still Scrolling Icon

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

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