2017-02-06 2 views
1

StackPanel 요소가 포함 된 FlowDocument 개체의 페이지 매김 문서를 생성하려고합니다. DocumentPaginator을 사용해 보았습니다.StackPanel이 포함 된 FlowDocument의 DocumentPaginator를 사용하여 페이지 매기기

지금까지이 코드를 시도했지만 나에게 전혀 도움이되지 않습니다. 즉, 하나의 잘린 페이지 만 생성되고 이고 내용은 세로로 반으로 자릅니다..

// stackPanel contains elements that their total heights 
// make the page should break into several pages. 
StackPanel stackPanel = ...; 

BlockUIContainer blockUiContainer = new BlockUIContainer(stackPanel); 
FlowDocument flowDoc = new FlowDocument(blockUiContainer); 
flowDoc.PageHeight = InchToPoint(paperSizeA4.Height); // paperSizeA4.Height: integer value 
flowDoc.PageWidth = flowDoc.ColumnWidth = InchToPoint(paperSizeA4.Width); // paperSizeA4.Width: integer value 
flowDoc.PagePadding = new Thickness(40); 

DocumentPaginator docPaginator = ((IDocumentPaginatorSource)flowDoc).DocumentPaginator; 
docPaginator.ComputePageCount(); 


내가 PDF로 문서를 인쇄

이 수직 (이 이미지의 문서를 50 % 확대 된 것이다 나는 단지 한 페이지 전에 말했듯이, 결과, 그 양은 반으로 잘라 아웃) :

The result document


나는 뭔가 paginating 작품을 만드는 실종? 아니면 잘못된 방식으로 구현 했습니까?

답변

0

BlockUIContainer는 여러 페이지에 걸쳐있을 수 없습니다. StackPanel을 가져 와서 목록의 각 요소에 대해 BlockUIContainer를 사용하는 것이 좋습니다.

관련 문제