Pregunta

¿Cuál es la mejor manera de imprimir una imagen de mapa de bits?Tengo experiencia en System.Drawing, así que estaba pensando en convertirlo a un mapa de bits y luego imprimirlo, pero creo que probablemente haya una manera mejor.

¡Gracias!

¿Fue útil?

Solución

Basándose en 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 sea mayor que una hoja de papel de 8,5 x 11.Aquí hay un ejemplo de cómo imprimí 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 podría reemplazarse con cualquier contenedor UIElement, como un panel de pila, un lienzo, una cuadrícula, etc.ImageViewer.Source debe configurarse en BitmapImage que esté listo para imprimir.

Saqué la idea de esta página:http://www.switchonthecode.com/tutorials/printing-in-wpf

Otros consejos

la clase PrintDialog . Todo lo que necesitará hacer es llamar la PrintVisual método que pasa en un Image como el visual que tiene su BitmapImage como fuente.

Es posible que desee configurar otras opciones de impresión, pero vas a descubrir a los a medida que explora PrintDialog y API relacionadas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top