打印多个HTML文件,如何在一个文档中打印多个WPF页面

我想创建一个包含多个页面的文档,并在每个页面上显示一个wpf窗口.

我设法使用PrintDialog和PrintVisual打印一个窗口.然而,这似乎只适用于一个页面?任何想法如何我可以构建一个包含多个页面的文档并打印整套文档.

我可以插入那个视觉(在代码中引用)并将其作为页面插入文档中并在此之后打印出来吗?

方法真的很糟糕吗?还有其他方法可以解决这个问题吗?

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值