public override DocumentPage GetPage(int pageNumber) { DocumentPage page = paginator.GetPage(pageNumber); DrawingVisual newpage = new DrawingVisual(); ContainerVisual header = GetPartVisual(); newpage.Children.Add(header); ContainerVisual footer = new ContainerVisual(); header.Children.Add(XpsReport.GetFooter(pageSize.Width,pageSize.Height)); PageStartsWithTable(paginator.GetPage(pageNumber).Visual); ContainerVisual smallerPage = new ContainerVisual(); smallerPage.Children.Add(page.Visual); smallerPage.Transform = new MatrixTransform(1,0,0,1,0,100); newpage.Children.Add(smallerPage); newpage.Transform = new TranslateTransform(margin.Width,margin.Height); return new DocumentPage(newpage,pageSize,page.BleedBox,page.ContentBox); } private bool PageStartsWithTable(DependencyObject element) { ContainerVisual tableVisual; tableVisual = null; if (element.GetType().Name == "ParagraphVisual")//i need to convert it back to paragraph. { // Paragraph paragraph =(Paragraph)element; tableVisual = (ContainerVisual)VisualTreeHelper.GetParent(element); return true; } if (VisualTreeHelper.GetChildrenCount(element) > 0) { DependencyObject child = VisualTreeHelper.GetChild(element,0); if (PageStartsWithTable(child)) { return true; } } return false; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)