public WrapDocumentPaginator(FlowDocument flowDoc, BaseDocument baseDoc, PageRangeSelection selection = PageRangeSelection.AllPages, PageRange range = default(PageRange)) : this(((IDocumentPaginatorSource)flowDoc).DocumentPaginator, baseDoc) { this.selection = selection; this.range = range; }
public WrapDocumentPaginator(DocumentPaginator paginator, BaseDocument document) { this.document = document; this.paginator = paginator; //будь бдителен, это очистка кеша //DocumentPaginator содержит внутри себя кеш страниц которые он сформировал //но если мы сформируем два WrapDocumentPaginator то при попытке сформировать страницу будет ошибка //System.ArgumentException : Указанный элемент Visual уже является дочерним по отношению к другому элементу Visual или корневому элементу CompositionTarget. //эта ошибка вызвана тем что страница из кеша присваивается как дочерняя двум результирующим страницам //что бы этого избежать при создании очищаем кеш var size = paginator.PageSize; paginator.PageSize = new Size(0, 0); paginator.PageSize = size; pageSize = new Size(paginator.PageSize.Width + Margins.Right + Margins.Left, paginator.PageSize.Height + Margins.Top + Margins.Bottom); }