1

在我的 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 文件,它在纸上看起来也很好。

4

0 回答 0