我有一段看起来像
的代码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.PrintableAreaWidth
和dlg.PrintableAreaHeight
大约是1122和798,这意味着XPS文档编写器配置为使用A4纸,这是正确的。但是,打印机生成的文件使用的是美国字母格式,这会切断页面页脚。
这是我的Paginator或XPS Document Writer中的错误吗?
答案 0 :(得分:0)
应该是XPSDocumentWriter中的错误。尝试使用.NET 3.5,它应该工作。我想我有同样的问题.Net 4.5 wpf printing issue, paper size is always NorthAmericaLetter