与PrintDialog和XPS Document Writer的纸张尺寸不一致

时间:2014-12-18 13:53:19

标签: c# wpf printing xps

我有一段看起来像

的代码
var dlg = new PrintDialog();
myDocumentPaginator =
        new System.Windows.Size(dlg.PrintableAreaWidth, dlg.PrintableAreaHeight);
dlg.PrintDocument(myDocumentPaginator, "Print");

默认打印机是XPS文档编写器。

我的DocumentPaginator的GetPage方法看起来像

public override DocumentPage GetPage(int pageNumber)
{
    var root = new ContentPresenter();
    // Fill root with content, dynamically sized using a Viewbox.
    root .Measure(PageSize);
    root .Arrange(new Rect(new Point(), PageSize));
    root .UpdateLayout();
    return new DocumentPage(root );
}

现在dlg.PrintableAreaWidthdlg.PrintableAreaHeight大约是1122和798,这意味着XPS文档编写器配置为使用A4纸,这是正确的。但是,打印机生成的文件使用的是美国字母格式,这会切断页面页脚。

这是我的Paginator或XPS Document Writer中的错误吗?

1 个答案:

答案 0 :(得分:0)

应该是XPSDocumentWriter中的错误。尝试使用.NET 3.5,它应该工作。我想我有同样的问题.Net 4.5 wpf printing issue, paper size is always NorthAmericaLetter