在我的 WPF 应用程序中,我想打印一个自定义生成的 FlowDocument,但是我在将页面放在纸张中心时遇到了很大的问题。每个页面都与左上角对齐。即使如此靠近打印机也无法触及它。文件的小部分丢失。下方和右侧有足够的空白空间,因此文档可以轻松地放在纸上。如果它是居中的!
有什么方法可以为 PrintTicket 或 Paginator 设置边框/边距/或偏移量?
我没有找到任何可行的方法。
这就是我所做的:
// selectedDocument is a FlowDocument
private const double PAGE_HEIGHT = 728;
private const double PAGE_WIDTH = 1024;
var paginator
= ((IDocumentPaginatorSource)this .selectedDocument).DocumentPaginator;
paginator.PageSize = new Size(PAGE_WIDTH, PAGE_HEIGHT);
printDialog.PrintTicket.PageOrientation
= System.Printing.PageOrientation.Landscape;
printDialog.PrintDocument(paginator, "Report");
我也尝试了不同的页面大小,但没有区别。
如果我通过 XpsSerializationManager 将 FlowDocument 保存为 XpsDocument,则创建的文件看起来很完美。边框和边距都是应有的。在后面的步骤中,我使用这个文件来创建一个 pdf 文件。如果我然后打印 pdf 文件,它在纸上看起来也很好。