Cómo imprimir varias páginas WPF en un documento
Quiero crear un documento con varias páginas y con una ventana de wpf representada en cada página.
Logré imprimir una ventana usando PrintDialog y PrintVisual. Sin embargo, esto parece que sólo funciona con una sola página? Cualquier idea de cómo puedo construir un documento con varias páginas e imprimir el conjunto completo.
¿Puedo insertar ese visual (referido en el código) e insertarlo como una página en un documento e imprimirlo después de eso?
¿El enfoque es realmente malo? ¿Hay alguna otra manera de resolver este problema?
<code> Sub Print (Dim ele As FrameWorkElement) Dim margin As Double = 30 Dim titlePadding As Double = 10 Dim printDlg As PrintDialog = New PrintDialog() printDlg.PrintTicket.PageOrientation = PageOrientation.Landscape If (printDlg.ShowDialog() <> True) Then Return Dim formattedText As FormattedText = New FormattedText(Name, CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, New Typeface("Verdana"), 25, Brushes.Black) formattedText.MaxTextWidth = printDlg.PrintableAreaWidth Dim scale As Double = Math.Min(printDlg.PrintableAreaWidth / (ele.ActualWidth + (Margin * 2)), (printDlg.PrintableAreaHeight - (formattedText.Height + titlePadding)) / (ele.ActualHeight + (Margin * 2))) Dim visual As DrawingVisual = New DrawingVisual() Using context As DrawingContext = visual.RenderOpen() Dim brush As VisualBrush = New VisualBrush(ele) context.DrawRectangle(brush, Nothing, New Rect(New Point(margin, margin + formattedText.Height + titlePadding), New Size(ele.ActualWidth, ele.ActualHeight))) context.DrawText(formattedText, New Point(margin, margin)) End Using visual.Transform = New ScaleTransform(scale, scale) printDlg.PrintVisual(visual, "") End Sub </code>