//int minimalOffset = 0; /// <summary> /// Helper method to create page header o footer from flow document template /// </summary> /// <param name="fd"></param> /// <param name="pageDef"></param> /// <returns></returns> public static XpsDocument CreateXpsDocument(FlowDocument fd, PageDefinition pageDef) { MemoryStream ms = new MemoryStream(); Package pkg = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); string pack = "pack://" + fd.Name + System.Guid.NewGuid().ToString() + ".xps"; PackageStore.AddPackage(new Uri(pack), pkg); XpsDocument doc = new XpsDocument(pkg, CompressionOption.SuperFast, pack); XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(doc), false); DocumentPaginator paginator = ((IDocumentPaginatorSource)fd).DocumentPaginator; // Size size = new Size(800, 1024); // ReportPaginator rp = new ReportPaginator(paginator, PrintHelper.GetPageSize(), pageDef); // ReportPaginator rp = new ReportPaginator(paginator, size, pageDef); ReportPaginator rp = new ReportPaginator(paginator, XpsPrintHelper.GetPageSize(), pageDef); rsm.SaveAsXaml(rp); return(doc); }