Печать WPF BitmapImage - PullRequest
       9

Печать WPF BitmapImage

6 голосов
/ 02 ноября 2009

Какой лучший способ распечатать BitmapImage? Я пришел из системы в System.Drawing, поэтому думал о том, чтобы преобразовать его в растровое изображение и затем распечатать, но я думаю, что, возможно, есть лучший способ.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 03 ноября 2009

Опираясь на ответ Дрю, лучше всего измерить и расположить контейнер, который передается методу PrintVisual. Это предотвратит обрезание изображения размером более 8,5 x 11 листов. Вот пример того, как я напечатал изображение, которое было частично видимым на экране:

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");
}

ImageViewer в моем примере может быть заменен любым контейнером UIElement, таким как панель стека, canvas, grid, ect. Для ImageViewer.Source должен быть установлен BitmapImage, готовый к печати. ​​

Я получил идею с этой страницы: http://www.switchonthecode.com/tutorials/printing-in-wpf

0 голосов
/ 02 ноября 2009

Выезд PrintDialog класс . Все, что вам нужно сделать, это вызвать метод PrintVisual , передав Image в качестве визуала, в котором ваш BitmapImage является источником.

Возможно, вы захотите настроить другие параметры печати, но вы обнаружите их при изучении PrintDialog и связанных с ним API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...