2012-10-30 3 views
1

LocalReport을 XPS 파일로 렌더링하려고하므로 XPS Print API를 사용하는 Windows 서비스에서 인쇄 할 수 있습니다 (this article).프로그래밍 방식으로 LocalReport를 XPS로 렌더링

문제는 로컬 보고서를 XPS에 직접 렌더링 할 수 없다는 것입니다. 어쩌면 이미지 스트림으로 렌더링 한 다음 해당 이미지를 수동으로 만든 XPS에 포함시킬 수도 있지만 그 솔루션이 너무 좋지는 않습니다.

LocalReport를 XPS로 렌더링하는 것에 대해 조언 해 주시면 감사하겠습니다.

미리 감사드립니다.

답변

2

불행히도, 쉽지 않을 것입니다. 그렇다.

먼저 모든 것이 STA 스레드 내에서 발생해야합니다. 그래서 스레딩 문제로 시작합니다.

다음으로 XPS 문서는 WPF와 깊이 얽혀 있습니다. XPS 문서의 내용은 FixedDocumentSequences이고 노출 수는 DependencyObjects입니다. 그게 다 WPF 야. LocalReport는 이 아니며 양식 기반 구성 요소 인 WPF가 아닙니다.

유일한 옵션은 사용자가 코딩하는 일종의 구문 분석 및 렌더링 프로세스로 WPF 표현으로 변환 할 수있는 일종의 형식으로 보고서를 렌더링하는 것입니다. 이는 보고서에서 이미지를 만드는 것처럼 간단 할 수도 있고 XSLX 변환기를 작성하는 것만 큼 어려울 수도 있습니다.

하지만 왜 처음부터이 문제가 발생 했습니까? The documentation for LocalReport은 XPS 인쇄 경로를 처리하지 않고 보고서를 인쇄하는 방법을 보여줍니다.

+0

답변 해 주셔서 감사합니다. 필자는 Windows 서비스에서 인쇄하므로이 연습을 사용할 수 없습니다. Windows 서비스에서 인쇄하는 유일한 방법은 기본 API를 사용하는 것입니다. 이 경우 XPS Print API를 선택한 이유는이 질문에서 언급 한 기사 때문입니다. – Federico

+0

@Federico : ... 시도해 보셨습니까? 서비스에서 인쇄 할 때의 유일한 진짜 문제는 프린터 드라이버에서 팝업을 얻을 수 있다는 것입니다. – Will

관련 문제