This documentation is archived and is not being maintained.

PrintQueue.MergeAndValidatePrintTicket Method (PrintTicket, PrintTicket, PrintTicketScope)

Merges two PrintTickets and guarantees that the resulting PrintTicket is valid, does not ask for any printing functionality that the printer does not support, and is limited to the specified scope.

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

public ValidationResult MergeAndValidatePrintTicket(
	PrintTicket basePrintTicket,
	PrintTicket deltaPrintTicket,
	PrintTicketScope scope


Type: System.Printing.PrintTicket
The first print ticket.
Type: System.Printing.PrintTicket
The second print ticket. This can be null.
Type: System.Printing.PrintTicketScope
A value indicating whether the scope of deltaPrintTicket, and the scope of the print ticket returned in the ValidationResult, is a page, a document, or the whole job.

Return Value

Type: System.Printing.ValidationResult
A ValidationResult that includes the merged PrintTicket and an indication of whether any of its settings had to be changed to guarantee viability.


At least one of the input print tickets is not valid.


The basePrintTicket is null.


The scope parameter does not have a valid PrintTicketScope value.


The validation, merger, and viability checking operation failed.

The method produces a viable print ticket; that is, a ticket that does not request printing features that the printer does not support. The method first validates the two input print tickets against the Print Schema. If either is invalid, an exception is thrown.

The two tickets are then merged. If they have different values for a particular property then the resulting merged ticket initially uses the value of the delta ticket.

The merged ticket is then checked against the actual capabilities of the printer. If any settings in the ticket are incompatible with the printer's capabilities, then the printer driver changes those settings by using whatever logic it wants. Typically, it substitutes the user's or printer's default value for the setting. It the driver's source of substitute values is not the same ticket as basePrintTicket, then the merged ticket might have some settings that are different from both of the input tickets. If the printer driver has to change any settings then this fact is reported in the ConflictStatus property of the ValidationResult.

To merge and validate based on a print queue’s default settings, you should set basePrintTicket to the DefaultPrintTicket or the UserPrintTicket.

The deltaPrintTicket parameter can be null, in which case the basePrintTicket is validated, checked for viability, and returned, possibly with changes.

If the scope is a job, then the print ticket returned in the ValidationResult can include Print Schema parameters with Job, Document, and Page prefixes. If the scope is a document, then per-job settings in deltaPrintTicket are ignored, and the returned ticket can include parameters with Document and Page prefixes. If the scope is a page, then the per-job settings and the per-document settings in deltaPrintTicket are ignored, and the returned ticket can include parameters with only the Page prefix.

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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