1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| var printTicket = new PrintTicket() { OutputQuality = OutputQuality.High, PageMediaSize = new PageMediaSize(graphPrintContainer.ActualWidth, graphPrintContainer.ActualHeight), PageMediaType = PageMediaType.Archival, DeviceFontSubstitution = DeviceFontSubstitution.On, TrueTypeFontMode = TrueTypeFontMode.Automatic, PageOrientation = (graphPrintContainer.PageOrientation == PageOrientation.Landscape ? System.Printing.PageOrientation.Landscape : System.Printing.PageOrientation.Portrait), };
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xps); SerializerWriterCollator collator = writer.CreateVisualsCollator(printTicket, printTicket); collator.BeginBatchWrite(); try{ do { var pagePos = PageGenerator.GetPagePos(pageCount, pageIndex); graphContainer.GraphVisual.Translation = new Point(pagePos.X * pageSize.Width, pagePos.Y * pageSize.Height);
graphPrintContainer.UpdateLayout(); graphContainer.UpdatePrintAnnotationBehavior(); graphPrintContainer.UpdateLayout();
collator.Write(graphPrintContainer, printTicket); pageIndex++; } while (pageIndex < maxPages);
printTicket.PageMediaSize = new PageMediaSize(nodeOverviewPrintContainer.ActualWidth, nodeOverviewPrintContainer.ActualHeight); printTicket.PageOrientation = (nodeOverviewPrintContainer.PageOrientation == PageOrientation.Landscape ? System.Printing.PageOrientation.Landscape : System.Printing.PageOrientation.Portrait); for(int i = 0; i < nodeOverviewPages.Length; i++) { nodeOverviewDataGrid.SetPage(nodeOverviewPages[i]); nodeOverviewDataGrid.UpdateLayout(); collator.Write(nodeOverviewPrintContainer, printTicket); } } finally { collator.EndBatchWrite(); } |