2009-11-02 9 views
5

¿Cuál es la mejor manera de imprimir un mapa de bits? Vengo de un contexto en System.Drawing, así que estaba pensando en convertirlo en un mapa de bits y luego imprimirlo, pero estoy pensando que probablemente haya una mejor manera.Imprimir un mapa de bits WPFImage

Gracias!

Respuesta

5

Según la respuesta de Drew, lo mejor es medir y organizar el contenedor que se entrega al método PrintVisual. Esto evitará que se corte una imagen que es más grande que una hoja de papel de 8.5 x 11. Aquí está un ejemplo de cómo he impreso una imagen que era parcialmente visible en la pantalla:

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 en mi ejemplo se podría sustituir por cualquier recipiente UIElement tales como StackPanel, lona, ​​rejilla, ect. ImageViewer.Source debe establecerse en BitmapImage que está listo para imprimirse.

me ocurrió la idea de esta página: http://www.switchonthecode.com/tutorials/printing-in-wpf

+0

Muchas gracias. Esto resolvió mi problema al imprimir una imagen. – user4134476

0

Consulte the PrintDialog class. Todo lo que debe hacer es llamar al the PrintVisual method pasando un Image como el visual que tiene su BitmapImage como fuente.

Es posible que desee configurar otras opciones de impresión, pero las descubrirá al explorar PrintDialog y las API relacionadas.

Cuestiones relacionadas