XpsDocumentWriter.WritingPrintTicketRequired Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir Write veya yöntemi belgeye veya WriteAsync yazdırma kuyruğuna eklemeden PrintTicket hemen önce gerçekleşir.
public:
override event System::Windows::Documents::Serialization::WritingPrintTicketRequiredEventHandler ^ WritingPrintTicketRequired;
public override event System.Windows.Documents.Serialization.WritingPrintTicketRequiredEventHandler WritingPrintTicketRequired;
member this.WritingPrintTicketRequired : System.Windows.Documents.Serialization.WritingPrintTicketRequiredEventHandler
Public Overrides Custom Event WritingPrintTicketRequired As WritingPrintTicketRequiredEventHandler
Olay Türü
Örnekler
Aşağıdaki örnekte olayın nasıl kullanılacağı gösterilmektedir WritingPrintTicketRequired .
// ---------------- 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 void PrintMultipleFixedContentDocuments(PrintQueue pq, bool async)
{
// Create a multiple document FixedDocumentSequence.
FixedDocumentSequence fds =
_wpfContent.LoadFixedDocumentSequenceFromDocument();
// Create a document writer to print to.
XpsDocumentWriter xdwPrint = GetPrintXpsDocumentWriter(pq);
// Set the event handler for creating print tickets for
// each document within the fixed document sequence.
xdwPrint.WritingPrintTicketRequired +=
new WritingPrintTicketRequiredEventHandler(
MultipleFixedContentDocuments_WritingPrintTicketRequired);
_firstDocumentPrintTicket = 0;
// Print either asynchronously or synchronously.
if (async)
PrintMultipleFixedContentDocumentsAsync(xdwPrint, fds);
else
PrintMultipleFixedContentDocuments(xdwPrint, fds);
}// end:PrintMultipleFixedContentDocuments()
' ---------------- 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)
Else
PrintMultipleFixedContentDocuments(xdwPrint, fds)
End If
End Sub
Olay işleyicisi aşağıdaki örnekte oluşturulmuştur.
// ----- MultipleFixedContentDocuments_WritingPrintTicketRequired -----
/// <summary>
/// Creates a PrintTicket event handler for
/// printing a FixedDocumentSequence.</summary>
private void MultipleFixedContentDocuments_WritingPrintTicketRequired(
Object sender, WritingPrintTicketRequiredEventArgs e)
{
if (e.CurrentPrintTicketLevel ==
PrintTicketLevel.FixedDocumentSequencePrintTicket)
{
// 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.
PrintTicket ptFDS = new PrintTicket();
ptFDS.PageOrientation = PageOrientation.Portrait;
ptFDS.Duplexing = Duplexing.TwoSidedLongEdge;
e.CurrentPrintTicket = ptFDS;
}
else if (e.CurrentPrintTicketLevel ==
PrintTicketLevel.FixedDocumentPrintTicket)
{
// Use different PrintTickets for different FixedDocuments.
PrintTicket ptFD = new PrintTicket();
if (_firstDocumentPrintTicket <= 1)
{ // Print the first document in black/white and in portrait
// 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++;
}
else // if (_firstDocumentPrintTicket > 1)
{ // Print the second document in color and in landscape
// 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;
}
e.CurrentPrintTicket = ptFD;
}// 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:MultipleFixedContentDocuments_WritingPrintTicketRequired()
' ----- 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
Açıklamalar
WritingPrintTicketRequired , bir olay işleyicisinin yazma işlemine geçirilen olay işleyicisinin yerine yenisini PrintTicket eklemesini sağlar.
Aşağıdaki dört Write ve WriteAsync yöntemleri olayı çağırmaz WritingPrintTicketRequired :
Write(Dize)
Write(String, XpsDocumentNotificationLevel)
WriteAsync(Dize)
WriteAsync(String, XpsDocumentNotificationLevel)