Export (0) Print
Expand All

XpsDocumentWriter.WritingPrintTicketRequired Event

Occurs just before a Write or WriteAsync method adds a PrintTicket to a document or print queue.

Namespace:  System.Windows.Xps
Assembly:  System.Printing (in System.Printing.dll)

Public Overrides Event WritingPrintTicketRequired As WritingPrintTicketRequiredEventHandler

WritingPrintTicketRequired enables an event handler to substitute a new PrintTicket for the one that is passed to the write operation.

The following four Write and WriteAsync methods do not call the WritingPrintTicketRequired event:

The following example shows how to use the WritingPrintTicketRequired event.

		' ---------------- PrintMultipleFixedContentDocuments ----------------
		''' <summary>
		'''   Prints the content of a multiple fixed document sequence.</summary>
		''' <param name="pq">
		'''   The print queue to print to.</param>
		''' <param name="async">
		'''   true to print asynchronously; false to print synchronously.</param>
		Public Sub PrintMultipleFixedContentDocuments(ByVal pq As PrintQueue, ByVal async As Boolean)
			' Create a multiple document FixedDocumentSequence.
			Dim fds As FixedDocumentSequence = _wpfContent.LoadFixedDocumentSequenceFromDocument()

			' Create a document writer to print to.
			Dim xdwPrint As XpsDocumentWriter = GetPrintXpsDocumentWriter(pq)

			' Set the event handler for creating print tickets for
			' each document within the fixed document sequence.
			AddHandler xdwPrint.WritingPrintTicketRequired, AddressOf MultipleFixedContentDocuments_WritingPrintTicketRequired
			_firstDocumentPrintTicket = 0

			' Print either asynchronously or synchronously.
			If async Then
				PrintMultipleFixedContentDocumentsAsync(xdwPrint, fds)
				PrintMultipleFixedContentDocuments(xdwPrint, fds)
			End If
		End Sub ' end:PrintMultipleFixedContentDocuments()

The event handler is created in the following example.

		' ----- MultipleFixedContentDocuments_WritingPrintTicketRequired -----
		''' <summary>
		'''   Creates a PrintTicket event handler for
		'''   printing a FixedDocumentSequence.</summary>
		Private Sub MultipleFixedContentDocuments_WritingPrintTicketRequired(ByVal sender As Object, ByVal e As WritingPrintTicketRequiredEventArgs)
			If e.CurrentPrintTicketLevel = PrintTicketLevel.FixedDocumentSequencePrintTicket Then
				' Create a PrintTicket for the FixedDocumentSequence. Any
				' PrintTicket setting specified at the FixedDocumentSequence
				' level will be inherited by lower level (i.e. FixedDocument or
				' FixedPage) unless there exists lower level PrintTicket that
				' sets the setting differently, in which case the lower level
				' PrintTicket setting will override the higher level setting.
				Dim ptFDS As New PrintTicket()
				ptFDS.PageOrientation = PageOrientation.Portrait
				ptFDS.Duplexing = Duplexing.TwoSidedLongEdge
				e.CurrentPrintTicket = ptFDS

			ElseIf e.CurrentPrintTicketLevel = PrintTicketLevel.FixedDocumentPrintTicket Then
				' Use different PrintTickets for different FixedDocuments.
				Dim ptFD As New PrintTicket()

				If _firstDocumentPrintTicket <= 1 Then
					' orientation.  Since the PrintTicket at the
					' FixedDocumentSequence level already specifies portrait
					' orientation, this FixedDocument can just inherit that
					' setting without having to set it again.
					ptFD.PageOrientation = PageOrientation.Portrait
					ptFD.OutputColor = OutputColor.Monochrome
					_firstDocumentPrintTicket += 1

				Else ' if (_firstDocumentPrintTicket > 1)
					' orientation.  Since the PrintTicket at the
					' FixedDocumentSequence level already specifies portrait
					' orientation, this FixedDocument needs to set its
					' PrintTicket with landscape orientation in order to
					' override the higher level setting.
					ptFD.PageOrientation = PageOrientation.Landscape
					ptFD.OutputColor = OutputColor.Color
				End If

				e.CurrentPrintTicket = ptFD
			End If ' end:else if (CurrentPrintTicketLevel==FixedDocumentPrintTicket)

			' Even though we don't show code for specifying PrintTicket for
			' the FixedPage level, the same inheritance-override logic applies
			' to FixedPage as well.

		End Sub ' end:MultipleFixedContentDocuments_WritingPrintTicketRequired()

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2014 Microsoft