PrintQueue.MergeAndValidatePrintTicket 메서드

정의

PrintTicket을 병합한 후 그 결과로 얻게 되는 PrintTicket이 유효하고 프린터가 지원하지 않는 인쇄 기능을 요청하지 않도록 보장합니다.Merges two PrintTickets and guarantees that the resulting PrintTicket is valid and does not ask for any printing functionality that the printer does not support.

오버로드

MergeAndValidatePrintTicket(PrintTicket, PrintTicket)

PrintTicket을 병합한 후 그 결과로 얻게 되는 PrintTicket이 유효하고 프린터가 지원하지 않는 인쇄 기능을 요청하지 않도록 보장합니다.Merges two PrintTickets and guarantees that the resulting PrintTicket is valid and does not ask for any printing functionality that the printer does not support.

MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)

PrintTicket을 병합한 후 그 결과로 얻게 되는 PrintTicket이 유효하고 프린터가 지원하지 않는 인쇄 기능을 요청하지 않으며 지정된 범위로 제한되도록 보장합니다.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.

MergeAndValidatePrintTicket(PrintTicket, PrintTicket)

PrintTicket을 병합한 후 그 결과로 얻게 되는 PrintTicket이 유효하고 프린터가 지원하지 않는 인쇄 기능을 요청하지 않도록 보장합니다.Merges two PrintTickets and guarantees that the resulting PrintTicket is valid and does not ask for any printing functionality that the printer does not support.

public:
 System::Printing::ValidationResult MergeAndValidatePrintTicket(System::Printing::PrintTicket ^ basePrintTicket, System::Printing::PrintTicket ^ deltaPrintTicket);
public System.Printing.ValidationResult MergeAndValidatePrintTicket (System.Printing.PrintTicket basePrintTicket, System.Printing.PrintTicket deltaPrintTicket);
member this.MergeAndValidatePrintTicket : System.Printing.PrintTicket * System.Printing.PrintTicket -> System.Printing.ValidationResult
Public Function MergeAndValidatePrintTicket (basePrintTicket As PrintTicket, deltaPrintTicket As PrintTicket) As ValidationResult

매개 변수

basePrintTicket
PrintTicket

첫 번째 인쇄 티켓입니다.The first print ticket.

deltaPrintTicket
PrintTicket

두 번째 인쇄 티켓입니다.The second print ticket. 이 매개 변수는 null이 될 수 있습니다.This can be null.

반환

병합된 ValidationResult을 포함하고 실행 가능성을 보장하기 위해 해당 설정 중 변경해야 하는 설정이 있는지 여부를 나타내는 PrintTicket입니다.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.

basePrintTicketnull인 경우The basePrintTicket is null.

유효성 검사, 병합기 및 실행 가능성 확인 작업이 실패한 경우The validation, merger, and viability checking operation failed.

예제

다음 예제에서는이 메서드를 사용 하 여 두 개의 인쇄 티켓을 병합 하 고 반환 되는 ValidationResult에 응답 하는 방법을 보여 줍니다.The following example shows how to use this method to merge two print tickets and respond to the ValidationResult that is returned.

/// <summary>
/// Changes the user-default PrintTicket setting of the specified print queue.
/// </summary>
/// <param name="queue">the printer whose user-default PrintTicket setting needs to be changed</param>
static private void ChangePrintTicketSetting(PrintQueue queue)
{
    //
    // Obtain the printer's PrintCapabilities so we can determine whether or not
    // duplexing printing is supported by the printer.
    //
    PrintCapabilities printcap = queue.GetPrintCapabilities();

    //
    // The printer's duplexing capability is returned as a read-only collection of duplexing options
    // that can be supported by the printer. If the collection returned contains the duplexing
    // option we want to set, it means the duplexing option we want to set is supported by the printer,
    // so we can make the user-default PrintTicket setting change.
    //
    if (printcap.DuplexingCapability.Contains(Duplexing.TwoSidedLongEdge))
    {
        //
        // To change the user-default PrintTicket, we can first create a delta PrintTicket with
        // the new duplexing setting.
        //
        PrintTicket deltaTicket = new PrintTicket();
        deltaTicket.Duplexing = Duplexing.TwoSidedLongEdge;

        //
        // Then merge the delta PrintTicket onto the printer's current user-default PrintTicket,
        // and validate the merged PrintTicket to get the new PrintTicket we want to set as the
        // printer's new user-default PrintTicket.
        //
        ValidationResult result = queue.MergeAndValidatePrintTicket(queue.UserPrintTicket, deltaTicket);

        //
        // The duplexing option we want to set could be constrained by other PrintTicket settings
        // or device settings. We can check the validated merged PrintTicket to see whether the
        // the validation process has kept the duplexing option we want to set unchanged.
        //
        if (result.ValidatedPrintTicket.Duplexing == Duplexing.TwoSidedLongEdge)
        {
            //
            // Set the printer's user-default PrintTicket and commit the set operation.
            //
            queue.UserPrintTicket = result.ValidatedPrintTicket;
            queue.Commit();
            Console.WriteLine("PrintTicket new duplexing setting is set on '{0}'.", queue.FullName);
        }
        else
        {
            //
            // The duplexing option we want to set has been changed by the validation process
            // when it was resolving setting constraints.
            //
            Console.WriteLine("PrintTicket new duplexing setting is constrained on '{0}'.", queue.FullName);
        }
    }
    else
    {
        //
        // If the printer doesn't support the duplexing option we want to set, skip it.
        //
        Console.WriteLine("PrintTicket new duplexing setting is not supported on '{0}'.", queue.FullName);
    }
}
''' <summary>
''' Changes the user-default PrintTicket setting of the specified print queue.
''' </summary>
''' <param name="queue">the printer whose user-default PrintTicket setting needs to be changed</param>
Private Shared Sub ChangePrintTicketSetting(ByVal queue As PrintQueue)
    '
    ' Obtain the printer's PrintCapabilities so we can determine whether or not
    ' duplexing printing is supported by the printer.
    '
    Dim printcap As PrintCapabilities = queue.GetPrintCapabilities()

    '
    ' The printer's duplexing capability is returned as a read-only collection of duplexing options
    ' that can be supported by the printer. If the collection returned contains the duplexing
    ' option we want to set, it means the duplexing option we want to set is supported by the printer,
    ' so we can make the user-default PrintTicket setting change.
    '
    If printcap.DuplexingCapability.Contains(Duplexing.TwoSidedLongEdge) Then
        '
        ' To change the user-default PrintTicket, we can first create a delta PrintTicket with
        ' the new duplexing setting.
        '
        Dim deltaTicket As New PrintTicket()
        deltaTicket.Duplexing = Duplexing.TwoSidedLongEdge

        '
        ' Then merge the delta PrintTicket onto the printer's current user-default PrintTicket,
        ' and validate the merged PrintTicket to get the new PrintTicket we want to set as the
        ' printer's new user-default PrintTicket.
        '
        Dim result As ValidationResult = queue.MergeAndValidatePrintTicket(queue.UserPrintTicket, deltaTicket)

        '
        ' The duplexing option we want to set could be constrained by other PrintTicket settings
        ' or device settings. We can check the validated merged PrintTicket to see whether the
        ' the validation process has kept the duplexing option we want to set unchanged.
        '
        If result.ValidatedPrintTicket.Duplexing = Duplexing.TwoSidedLongEdge Then
            '
            ' Set the printer's user-default PrintTicket and commit the set operation.
            '
            queue.UserPrintTicket = result.ValidatedPrintTicket
            queue.Commit()
            Console.WriteLine("PrintTicket new duplexing setting is set on '{0}'.", queue.FullName)
        Else
            '
            ' The duplexing option we want to set has been changed by the validation process
            ' when it was resolving setting constraints.
            '
            Console.WriteLine("PrintTicket new duplexing setting is constrained on '{0}'.", queue.FullName)
        End If
    Else
        '
        ' If the printer doesn't support the duplexing option we want to set, skip it.
        '
        Console.WriteLine("PrintTicket new duplexing setting is not supported on '{0}'.", queue.FullName)
    End If
End Sub

설명

메서드는 실행 가능한 인쇄 티켓을 생성 합니다. 즉, 프린터가 지원 하지 않는 인쇄 기능을 요청 하지 않는 티켓입니다.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. 둘 중 하나가 잘못 된 경우 예외가 throw 됩니다.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. 이 드라이버의 대체 값 원본은 basePrintTicket와 동일한 티켓이 아니므로 병합 된 티켓에는 입력 티켓의 일부와 다른 설정이 있을 수 있습니다.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. 프린터 드라이버에서 설정을 변경 해야 하는 경우이 사실은 ValidationResultConflictStatus 속성에 보고 됩니다.If the printer driver has to change any settings then this fact is reported in the ConflictStatus property of the ValidationResult.

인쇄 큐의 기본 설정을 기반으로 병합 및 유효성을 검사 하려면 basePrintTicket DefaultPrintTicket 또는 UserPrintTicket으로 설정 해야 합니다.To merge and validate based on a print queue's default settings, you should set basePrintTicket to the DefaultPrintTicket or the UserPrintTicket.

deltaPrintTicket 매개 변수를 null수 있으며,이 경우 basePrintTicket의 유효성을 검사 하 고, 사용 가능성을 확인 하 고, 변경 내용이 있을 수 있습니다.The deltaPrintTicket parameter can be null, in which case the basePrintTicket is validated, checked for viability, and returned, possibly with changes.

MergeAndValidatePrintTicket오버 로드를 사용 하 여 반환 되는 ValidationResultdeltaPrintTicketPrintTicket에는 모두 작업 범위가 있습니다.With this overload of MergeAndValidatePrintTicket, both the deltaPrintTicket and the PrintTicket in the ValidationResult that is returned have job wide scope. 다른 범위를 지정 하려면이 메서드의 다른 오버 로드를 사용 합니다.To specify a different scope use the other overload of this method.

MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)

PrintTicket을 병합한 후 그 결과로 얻게 되는 PrintTicket이 유효하고 프린터가 지원하지 않는 인쇄 기능을 요청하지 않으며 지정된 범위로 제한되도록 보장합니다.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.

public:
 System::Printing::ValidationResult MergeAndValidatePrintTicket(System::Printing::PrintTicket ^ basePrintTicket, System::Printing::PrintTicket ^ deltaPrintTicket, System::Printing::PrintTicketScope scope);
public System.Printing.ValidationResult MergeAndValidatePrintTicket (System.Printing.PrintTicket basePrintTicket, System.Printing.PrintTicket deltaPrintTicket, System.Printing.PrintTicketScope scope);
member this.MergeAndValidatePrintTicket : System.Printing.PrintTicket * System.Printing.PrintTicket * System.Printing.PrintTicketScope -> System.Printing.ValidationResult
Public Function MergeAndValidatePrintTicket (basePrintTicket As PrintTicket, deltaPrintTicket As PrintTicket, scope As PrintTicketScope) As ValidationResult

매개 변수

basePrintTicket
PrintTicket

첫 번째 인쇄 티켓입니다.The first print ticket.

deltaPrintTicket
PrintTicket

두 번째 인쇄 티켓입니다.The second print ticket. 이 매개 변수는 null이 될 수 있습니다.This can be null.

scope
PrintTicketScope

deltaPrintTicket의 범위와 ValidationResult에서 반환된 인쇄 티켓의 범위가 페이지인지, 문서인지, 전체 작업인지 나타내는 값입니다.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.

반환

병합된 ValidationResult을 포함하고 실행 가능성을 보장하기 위해 해당 설정 중 변경해야 하는 설정이 있는지 여부를 나타내는 PrintTicket입니다.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.

basePrintTicketnull인 경우The basePrintTicket is null.

scope 매개 변수에 유효한 PrintTicketScope 값이 없는 경우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. 둘 중 하나가 잘못 된 경우 예외가 throw 됩니다.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. 이 드라이버의 대체 값 원본은 basePrintTicket와 동일한 티켓이 아니므로 병합 된 티켓에는 입력 티켓의 일부와 다른 설정이 있을 수 있습니다.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. 프린터 드라이버에서 설정을 변경 해야 하는 경우이 사실은 ValidationResultConflictStatus 속성에 보고 됩니다.If the printer driver has to change any settings then this fact is reported in the ConflictStatus property of the ValidationResult.

인쇄 큐의 기본 설정을 기반으로 병합 및 유효성을 검사 하려면 basePrintTicket DefaultPrintTicket 또는 UserPrintTicket으로 설정 해야 합니다.To merge and validate based on a print queue's default settings, you should set basePrintTicket to the DefaultPrintTicket or the UserPrintTicket.

deltaPrintTicket 매개 변수를 null수 있으며,이 경우 basePrintTicket의 유효성을 검사 하 고, 사용 가능성을 확인 하 고, 변경 내용이 있을 수 있습니다.The deltaPrintTicket parameter can be null, in which case the basePrintTicket is validated, checked for viability, and returned, possibly with changes.

scope 작업 인 경우 ValidationResult에서 반환 된 인쇄 티켓에는 작업, 문서 및 페이지 접두사가 포함 된 인쇄 스키마 매개 변수가 포함 될 수 있습니다.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. scope 문서인 경우 deltaPrintTicket의 작업당 설정이 무시 되 고 반환 된 티켓에 문서 및 페이지 접두사가 포함 된 매개 변수가 포함 될 수 있습니다.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. scope 페이지인 경우에는 작업당 설정 및 deltaPrintTicket의 문서당 설정이 무시 되며 반환 된 티켓에는 페이지 접두사만 포함 된 매개 변수가 포함 될 수 있습니다.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.

적용 대상