我有一个巨大的数据,我想使用 WPF 打印。我发现WPF提供了一个PrintDialog.PrintVisual
用于打印派生的任何 WPF 控件的方法Visual
class.
PrintVisual
只会打印一页,因此我需要缩放控件以适合页面。不幸的是,这对我来说不起作用,因为报告有时足够长,以至于在缩放以适合页面时无法轻松阅读。
WPF 提供的另一个打印选项是在FlowDocument
。这可能是打印文档的最佳方式,但是这比我希望投入的工作量要多,更不用说必须为我希望打印的每个控件维护额外的视图了。
我在这方面得到了另一个解决方案link http://www.codeproject.com/Articles/339416/Printing-large-WPF-UserControls,但对我来说似乎太复杂了。
有没有更好、更简单的解决方案?谢谢你的帮助
我假设您的报告显示在DataGrid
或者其他可滚动的东西?
我相信FlowDocument
如果您想打印看起来(没有更好的词)专业的东西,这绝对是您的最佳选择。但如果你想要一些快速而肮脏的东西,你可以使用一系列操作RenderTargetBitmap.Render
。基本过程是:
- 创建
RenderTargetBitmap
- 滚动视图,以便在一页上看到要打印的区域
- Call
RenderTargetBitmap.Render
on the DataGrid
or the ScrollViewer
包含“大”控件
- 打印生成的位图
- 重复下一个“页面”
再次强调,不要打电话RenderTargetBitmap.Render
关于“大”的控制。将大控件包裹在ScrollViewer
如果还没有的话。这本质上就是你的分页器。
我不知道你对结果是否满意,但这是我能想到的最简单的方法。看起来就像你手动点击PrintScreen
每一次。不确定这是否是您想要的,但如果您想让它看起来更好,我认为您需要使用FlowDocument
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)