2017-02-06 1 views
1

StackPanel要素を含むFlowDocumentオブジェクトからページ付けされたドキュメントを生成したいとします。私はDocumentPaginatorを使ってみました。StackPanelを含むFlowDocumentのDocumentPaginatorを使用してページ区切り

これまで私はこのコードを試したことがありますが、私にとっては幸運はありません。つまり、切り捨てられたページが1つだけ生成されます。とその内容は垂直方向に半分に切断されます。

// 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に文書を印刷するとき、これは私が前に言ったように、1ページのみ結果であり、その内容は半分縦ににカットされた(この画像では、文書が50%にズームされますアウト):

The result document


私は、ページ付けた作品を作るために何かが足りないのですか?それとも私は間違った方法で実装しましたか?

答えて

0

BlockUIContainerは複数のページにまたがることはできません。 StackPanelを取り出し、リストの各要素にBlockUIContainerを使用することをお勧めします。

関連する問題