Печать WPF BitmapImage

Чувак, Codeplex является Вашим другом-> выезд этот порт из него. Это раньше имело выпуск на 64 бита, но можно или загрузить последнее и скомпилировать для (довольно легких) 64 битов или проверить предыдущие выпуски.

6
задан James Jones 2 November 2009 в 15:35
поделиться

2 ответа

Основываясь на ответе Дрю, лучше всего измерить и расположить контейнер, который передается методу 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, таким как панель стека, холст, сетка и т. Д. ImageViewer.Source должен быть установлен на BitmapImage, который готов к печати. ​​

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

5
ответ дан 17 December 2019 в 04:48
поделиться

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

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

0
ответ дан 17 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: