여러 페이지에 WPF 캔버스를 인쇄하려고합니다.WPF DocumentPaginator 및 DocumentPage 예기치 않은 자르기
저는 페이지 너비에 맞추기 위해 크기를 조정 한 다음 각 페이지에 대해 캔버스를 자르고 번역하는 것에 만족합니다. 모든 아주 간단한 수학.
내가 이해할 수없는 것은 인쇄 영역의 크기와 인쇄 위치를 프린터에 알려주는 방법입니다. 내가 시도하는 것은 무엇이든간에 내가 사용하고있는 값은 용지의 크기이며, 따라서 프린터가 용지의 가장자리로 인쇄를 할 수 없으므로 자르기가 발생합니다.
capabilities.PageImageableArea.ExtentWidth
// "Gets the width of the imageable area"
은 "이미지 가능"영역은 무엇인가 :
var capabilities = printDialog.GetPrintCapabilities(dialog.PrintTicket);
기능에는 다음과 같은 속성이 있습니다? 내가 콘텐츠를 넣을 수있는 종이 영역입니까? 나는 그렇게 생각한다 :
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
세 개의 기하학적 인수로 무엇을 전달합니까?
캔버스에서 flowdocument를 얻는 방법은 무엇입니까? –
캔버스를 인쇄하고 데이터를 바인딩 할 FlowDocument를 만드는 것을 잊어 버리십시오. 기본적으로 FlowDocument에서 캔버스에있는 것을 다시 만듭니다. – Blounty