如何制作“打印预览版”” WPF应用程序中的FlowDocument?
我的各种WPF应用程序显示FlowDocument的。我可以使用打印WPF FlowDocument的答案中描述的方法打印它们。
现在我想添加一个“打印预览”功能。在正常情况下,我正在打印窗口中显示的FlowDocument,因此我不需要打印预览。但在某些情况下,要打印的FlowDocument是在内存中即时构建的。在这些情况下,我想在打印前显示它。
现在,我当然可以弹出一个新窗口并显示FlowDocument,但是
我希望预览真的感觉它是打印操作的一部分,而不仅仅是应用程序中的另一个窗口。
我不想在FlowDocumentScrollViewer中使用正常的FlowDocument。它不是“任何大小”,而是需要约束纸张的大小,特定的HxW比率和分页。
建议?
我应该只使用标准窗口,在这种情况下,如何确保FlowDocument处于适当的比例?
是否有更“集成”的方式在Windows的PrintDialog UI范围内进行预览?
谢谢
没有找到相关结果
已邀请:
2 个回复
宦哨抹存胳
它的作用:它实际上将视觉内容打印到XPS文档中。然后它加载“打印的”XPS文档并将其显示在一个非常简单的XAML文件中,该文件存储为字符串,而不是作为单独的模块,并在运行时动态加载。生成的窗口具有DocumentViewer按钮:print,adjust-to-max-page-width等。 我还添加了一些代码来隐藏搜索框。请参阅WPF的这个答案:如何在DocumentViewer中删除搜索框?我是怎么做到的 效果是这样的: alt text http://i48.tinypic.com/2hzkfat.jpg 可以在ReachFramework dll中找到XpsDocument,并且可以在System.Printing dll中找到XpsDocumentWriter,这两者都必须作为对项目的引用添加
誓猎贰
你可能会把这样一个控件放在你(和你的应用程序)当然,但我们的应用程序与典型的Office应用程序有类似的行为,你可以直接打印或预览(显示上面的界面)并从那里打印。