GeneratePrintTicketResource( ContentType contentType, PrintTicket printTicket ) { IXpsOMPrintTicketResource printTicketResource = null; XpsPrintStream printTicketXpsStream = XpsPrintStream.CreateXpsPrintStream(); printTicket.SaveTo(printTicketXpsStream); IStream printTicketStream = printTicketXpsStream.GetManagedIStream(); Uri printTicketUri = _xpsManager.GeneratePrintTicketUri(contentType); try { IOpcPartUri printTicketPart = GenerateIOpcPartUri(printTicketUri); printTicketResource = _xpsOMFactory.CreatePrintTicketResource(printTicketStream, printTicketPart); } catch (COMException) { Invalidate(); throw new PrintingCanceledException(); } return(printTicketResource); }
AddCurrentPageToPackageWriter() { try { _currentFixedPageXmlWriter.Flush(); IStream pageMarkupStream = _currentFixedPagePrintStream.GetManagedIStream(); IOpcPartUri partUri = GenerateIOpcPartUri(_currentFixedPageUri); if (_currentPagePrintTicket == null) { _currentPagePrintTicket = new PrintTicket(); } IXpsOMPrintTicketResource printTicketResource = GeneratePrintTicketResource(XpsS0Markup.FixedPageContentType, _currentPagePrintTicket); _currentFixedPagePrintStream.Seek(0, SeekOrigin.Begin); _currentFixedPageWriter = _xpsOMFactory.CreatePageFromStream(pageMarkupStream, partUri, _xpsPartResources, 0); SetHyperlinkTargetsForCurrentPage(); XPS_SIZE xpsSize = new XPS_SIZE() { width = (float)_currentPageSize.Width, height = (float)_currentPageSize.Height }; _currentFixedDocumentSequenceWriter.AddPage(_currentFixedPageWriter, xpsSize, null, null, printTicketResource, null); } catch (COMException) { Invalidate(); throw new PrintingCanceledException(); } }
StartNewDocument() { try { Uri uri = _xpsManager.GenerateUniqueUri(XpsS0Markup.FixedDocumentContentType); _currentFixedDocumentUri = uri; IOpcPartUri partUri = GenerateIOpcPartUri(uri); if (_currentDocumentPrintTicket == null) { _currentDocumentPrintTicket = new PrintTicket(); } IXpsOMPrintTicketResource printTicketResource = GeneratePrintTicketResource(XpsS0Markup.FixedDocumentContentType, _currentDocumentPrintTicket); _currentFixedDocumentSequenceWriter.StartNewDocument(partUri, printTicketResource, null, null, null); _currentFixedDocumentWriterRef++; } catch (COMException) { Invalidate(); throw new PrintingCanceledException(); } }