我试图在多个页面上打印一个WPF画布。WPF DocumentPaginator和DocumentPage意外裁剪
我很高兴将它缩放到适合页面宽度,然后剪切和翻译每个页面的画布;所有非常简单的数学。
我不明白的是如何获得可打印区域的尺寸,以及如何告诉打印机打印到哪里。无论我尝试什么,看来我使用的值都是纸张的大小,因此当打印机不能正确打印到纸张边缘时,我会发生裁剪。
var capabilities = printDialog.GetPrintCapabilities(dialog.PrintTicket);
能力具有以下属性:
capabilities.PageImageableArea.ExtentWidth
// "Gets the width of the imageable area"
什么是 “成像” 区域?是我可以放入内容的纸张上的区域?我想是因为:
capabilities.PageImageableArea.OriginWidth
// Gets the distance from the left edge of the page to the imageable area.
但是,底部和右边距呢?我在哪里可以找到这些信息?
DocumentPaginator
的PageSize
属性应该设置为?我应该从capabilities.PageImageableArea
设置这个吗?或者dialog.Print()
函数设置了这个,我只需要从GetPage()
中读取它?
最后,当我返回一个DocumentPage
时,我会传递给三个几何参数pageSize
,bleedBox
和contentBox
?
谢谢:)
如何从画布上获取流文档? – 2010-07-07 14:55:13
忘记试图打印画布并创建一个FlowDocument来绑定数据。 esentially在FlowDocument中重新创建画布中的内容。 – Blounty 2010-07-07 21:40:24