我有一个巨大的数据,我想用WPF打印.我发现WPF提供了PrintDialog.PrintVisual一种打印从Visual类派生的任何WPF控件的方法.
PrintVisual只打印一个页面,所以我需要缩放控件以适应页面.不幸的是,这对我不起作用,因为报告有时足够长,以至于在缩放以适合页面时无法轻松阅读.
WPF提供的另一种打印选项是在a中创建一个单独的视图FlowDocument.这可能是打印文档的最佳方式,但它比我想要的更多工作,更不用说我希望打印的每个控件都必须保留的额外视图.
我在这个链接中得到了另一个解决方案,但对我来说似乎太复杂了.
有没有更好,更简单的解决方案呢?谢谢你的帮助
我假设您的报告显示在DataGrid可滚动的或其他可滚动的内容中?
我相信,FlowDocument如果您想打印看起来(没有更好的词)专业的东西,这里绝对是您的最佳选择。但如果你想要一些快速而肮脏的东西,你可以使用一系列操作RenderTargetBitmap.Render。基本过程是:
RenderTargetBitmapRenderTargetBitmap.Render或DataGridScrollViewer再次强调,不要调用RenderTargetBitmap.Render“大”控件。ScrollViewer如果尚未将大控件包装在 a 中,则将其包装起来。这本质上就是你的分页器。
我不知道你对结果是否满意,但这是我能想到的最简单的方法。看起来就像你PrintScreen每次都手动点击一样。不确定这是否是您想要的,但如果您想让它看起来更好,我认为您需要使用FlowDocument.