我正在尝试在多个页面上打印 WPF 画布。
我对缩放它以适应页面宽度非常满意,然后为每一页剪裁和翻译画布;所有非常简单的数学。
我不明白的是如何获得可打印区域的尺寸,以及如何告诉打印机打印到哪里。无论我尝试什么,我使用的值似乎都是纸张的大小,因此由于打印机无法打印到纸张的边缘,因此我会出现裁剪。
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.
但是底部和右边距呢?我在哪里可以找到这些信息?
应该将PageSize
属性DocumentPaginator
设置为什么?我应该设置这个capabilities.PageImageableArea
吗?或者dialog.Print()
函数是否设置了这个,我只需要从中读取GetPage()
?
最后,当我返回 a 时,我将DocumentPage
什么传递给三个几何参数pageSize
和?bleedBox
contentBox
谢谢 :)