Я хочу сгенерировать документы с разбивкой по страницам из FlowDocument
объекта, который содержит элемент StackPanel
. Я пробовал использовать DocumentPaginator
.Paginate using DocumentPaginator из FlowDocument, который содержит StackPanel
До сих пор я пробовал этот код ниже, но мне не повезло, то есть только одна усеченная страница генерируется и ее содержимое разрезается пополам по вертикали.
// 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% увеличено выход):
Я пропускаю что-то, чтобы сделать Разбиение работы? Или я реализовал это неправильно?