/// <summary> /// Actually print an Xps Document with previously setup params /// </summary> /// <param name="paginator">Document to print</param> /// <param name="description">Description</param> public void PrintDocument(DocumentPaginator paginator, string description) { if (paginator == null) { throw new ArgumentNullException("paginator", "No DocumentPaginator to print"); } VerifyPrintSettings(); //Handle XPS ourself, as their document writer hates our thread if (mPrintQueue.FullName.Contains("XPS")) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Xps Document (*.xps) | *.xps"; if (sfd.ShowDialog() == true) { XpsDocument document = new XpsDocument(sfd.FileName, System.IO.FileAccess.Write); XpsPackagingPolicy packagePolicy = new XpsPackagingPolicy(document); XpsSerializationManager serializationMgr = new XpsSerializationManager(packagePolicy, false); serializationMgr.SaveAsXaml(paginator); document.Close(); } return; } XpsDocumentWriter writer = null; new PrintingPermission(PrintingPermissionLevel.DefaultPrinting).Assert(); try { mPrintQueue.CurrentJobSettings.Description = description; writer = PrintQueue.CreateXpsDocumentWriter(mPrintQueue); TicketEventHandler handler = new TicketEventHandler(mPrintTicket); writer.WritingPrintTicketRequired += new WritingPrintTicketRequiredEventHandler(handler.SetPrintTicket); } finally { CodeAccessPermission.RevertAssert(); } writer.Write(paginator); //Reset mPrintableWidth = 0.0; mPrintableHeight = 0.0; mWidthUpdated = false; mHeightUpdated = false; }
/// <summary> /// Actually print an Xps Document with previously setup params /// </summary> /// <param name="paginator">Document to print</param> /// <param name="description">Description</param> public void PrintDocument(DocumentPaginator paginator, string description) { if (paginator == null) throw new ArgumentNullException("paginator", "No DocumentPaginator to print"); VerifyPrintSettings(); //Handle XPS ourself, as their document writer hates our thread if (mPrintQueue.FullName.Contains("XPS")) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Xps Document (*.xps) | *.xps"; if (sfd.ShowDialog() == true) { XpsDocument document = new XpsDocument(sfd.FileName, System.IO.FileAccess.Write); XpsPackagingPolicy packagePolicy = new XpsPackagingPolicy(document); XpsSerializationManager serializationMgr = new XpsSerializationManager(packagePolicy, false); serializationMgr.SaveAsXaml(paginator); document.Close(); } return; } XpsDocumentWriter writer = null; new PrintingPermission(PrintingPermissionLevel.DefaultPrinting).Assert(); try { mPrintQueue.CurrentJobSettings.Description = description; writer = PrintQueue.CreateXpsDocumentWriter(mPrintQueue); TicketEventHandler handler = new TicketEventHandler(mPrintTicket); writer.WritingPrintTicketRequired += new WritingPrintTicketRequiredEventHandler(handler.SetPrintTicket); } finally { CodeAccessPermission.RevertAssert(); } writer.Write(paginator); //Reset mPrintableWidth = 0.0; mPrintableHeight = 0.0; mWidthUpdated = false; mHeightUpdated = false; }