PrintQueue.MergeAndValidatePrintTicket メソッド

定義

2 つの 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)

2 つの 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)

2 つの 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)

2 つの 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

1 番目の印刷チケット。The first print ticket.

deltaPrintTicket
PrintTicket

2 番目の印刷チケット。The second print ticket. この値は、null でもかまいません。This can be null.

戻り値

マージされた ValidationResult および実行可能性を保証するために設定のいずれかを変更する必要があるかどうかを示す情報を含む PrintTicketA ValidationResult that includes the merged PrintTicket and an indication of whether any of its settings had to be changed to guarantee viability.

例外

入力された印刷チケットの少なくとも 1 つが無効です。At least one of the input print tickets is not valid.

basePrintTicketnull です。The basePrintTicket is null.

検証、マージ、および実行可能性の確認操作が失敗しました。The validation, merger, and viability checking operation failed.

次の例は、このメソッドを使用して2つの印刷チケットをマージし、返される 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. メソッドは、最初に、印刷スキーマに対して2つの入力印刷チケットを検証します。The method first validates the two input print tickets against the Print Schema. いずれかが無効な場合は、例外がスローされます。If either is invalid, an exception is thrown.

2つのチケットがマージされます。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. プリンタドライバで設定を変更する必要がある場合、このファクトは ValidationResultの [ConflictStatus] プロパティで報告されます。If the printer driver has to change any settings then this fact is reported in the ConflictStatus property of the ValidationResult.

印刷キューの既定の設定に基づいて結合および検証を行うには、basePrintTicketDefaultPrintTicket または 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のオーバーロードでは、返される ValidationResult 内の deltaPrintTicketPrintTicket の両方に、ジョブ全体のスコープがあります。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)

2 つの 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

1 番目の印刷チケット。The first print ticket.

deltaPrintTicket
PrintTicket

2 番目の印刷チケット。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 および実行可能性を保証するために設定のいずれかを変更する必要があるかどうかを示す情報を含む PrintTicketA ValidationResult that includes the merged PrintTicket and an indication of whether any of its settings had to be changed to guarantee viability.

例外

入力された印刷チケットの少なくとも 1 つが無効です。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. メソッドは、最初に、印刷スキーマに対して2つの入力印刷チケットを検証します。The method first validates the two input print tickets against the Print Schema. いずれかが無効な場合は、例外がスローされます。If either is invalid, an exception is thrown.

2つのチケットがマージされます。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. プリンタドライバで設定を変更する必要がある場合、このファクトは ValidationResultの [ConflictStatus] プロパティで報告されます。If the printer driver has to change any settings then this fact is reported in the ConflictStatus property of the ValidationResult.

印刷キューの既定の設定に基づいて結合および検証を行うには、basePrintTicketDefaultPrintTicket または 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.

適用対象