2009-11-02 4 views
5

BitmapImage를 인쇄하는 가장 좋은 방법은 무엇입니까? System.Drawing의 배경에서 비트 맵으로 변환 한 다음 인쇄하는 방법에 대해 생각하고 있었지만 더 나은 방법이 있다고 생각합니다.WPF BitmapImage 인쇄

감사합니다.

답변

5

Drew의 답을 바탕으로, PrintVisual 메서드에 전달 된 컨테이너를 측정하고 정렬하는 것이 가장 좋습니다. 이렇게하면 8.5 x 11 크기의 용지보다 큰 이미지가 잘 리지 않게됩니다. 이러한 요법 StackPanel에, 캔버스, 그리드, 나의 예

PrintDialog dlg = new PrintDialog(); 
bool? result = dlg.ShowDialog(); 

if (result.HasValue && result.Value) 
{ 
    ImageViewer.Measure(new Size(dlg.PrintableAreaWidth, dlg.PrintableAreaHeight)); 
    ImageViewer.Arrange(new Rect(new Point(0, 0), ImageViewer1.DesiredSize)); 

    dlg.PrintVisual(ImageViewer, "Print a Large Image"); 
} 

이미지 뷰어는 모든 UIElement에 컨테이너로 대체 할 수있다 : 여기가 화면에 부분적으로 눈에 보였다 이미지를 인쇄하는 방법의 예입니다. ImageViewer.Source는 인쇄 할 준비가 된 BitmapImage로 설정되어야합니다.

나는이 페이지에서 아이디어를 얻었다 : http://www.switchonthecode.com/tutorials/printing-in-wpf

+0

가 대단히 감사합니다. 이 이미지를 인쇄 내 문제가 해결되었습니다. – user4134476

0

체크 아웃 the PrintDialog class을 확인하십시오. 사용자가 BitmapImage을 소스로 사용하는 영상으로 Image을 전달하면 the PrintVisual method으로 전화하면됩니다.

다른 인쇄 옵션을 설정할 수도 있지만, PrintDialog 및 관련 API를 탐색 할 때 이러한 옵션을 발견 할 수 있습니다.