PrintQueue.MergeAndValidatePrintTicket メソッド

定義

2 つの PrintTicket がマージされ、結果の PrintTicket は有効な印刷チケットであり、プリンターのサポート対象外となる印刷機能は要求されないことが保証されます。

オーバーロード

MergeAndValidatePrintTicket(PrintTicket, PrintTicket)

2 つの PrintTicket がマージされ、結果の PrintTicket は有効な印刷チケットであり、プリンターのサポート対象外となる印刷機能は要求されないことが保証されます。

MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)

2 つの PrintTicket がマージされ、結果の PrintTicket は有効な印刷チケットであり、プリンターのサポート対象外となる印刷機能は要求されないこと、および指定したスコープに制限されることが保証されます。

MergeAndValidatePrintTicket(PrintTicket, PrintTicket)

2 つの PrintTicket がマージされ、結果の PrintTicket は有効な印刷チケットであり、プリンターのサポート対象外となる印刷機能は要求されないことが保証されます。

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 番目の印刷チケット。

deltaPrintTicket
PrintTicket

2 番目の印刷チケット。 これは null でもかまいません。

戻り値

マージされた ValidationResult および実行可能性を保証するために設定のいずれかを変更する必要があるかどうかを示す情報を含む PrintTicket

例外

入力された印刷チケットの少なくとも 1 つが無効です。

basePrintTicketnull です。

検証、マージ、および実行可能性の確認操作が失敗しました。

次の例は、このメソッドを使用して 2 つの印刷チケットをマージし、返される に応答する方法を ValidationResult 示しています。

/// <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

注釈

メソッドは実行可能な印刷チケットを生成します。つまり、プリンターがサポートしていない印刷機能を要求しないチケットです。 メソッドはまず、2 つの入力印刷チケットを 印刷スキーマに対して検証します。 どちらかが無効な場合は、例外がスローされます。

その後、2 つのチケットがマージされます。 特定のプロパティの値が異なる場合、マージされたチケットは最初にデルタ チケットの値を使用します。

その後、マージされたチケットがプリンターの実際の機能と照合されます。 チケット内の設定がプリンターの機能と互換性がない場合、プリンター ドライバーは必要なロジックを使用してこれらの設定を変更します。 通常は、ユーザーまたはプリンターの既定値を設定に置き換えます。 ドライバーの代替値のソースが と同じチケット basePrintTicketではない場合、マージされたチケットには、両方の入力チケットとは異なる設定が含まれる場合があります。 プリンター ドライバーが設定を変更する必要がある場合、このファクトは の プロパティValidationResultConflictStatus報告されます。

印刷キューの既定の設定に基づいてマージして検証するには、 または に設定basePrintTicketするDefaultPrintTicketUserPrintTicket必要があります。

パラメーターには deltaPrintTicket を指定できます null。この場合 basePrintTicket 、 は検証され、実行可能性が確認され、変更された場合は返されます。

のこのオーバーロードMergeAndValidatePrintTicketでは、返される 内の ValidationResultPrintTicket の両方deltaPrintTicketに、ジョブ全体のスコープがあります。 別のスコープを指定するには、このメソッドの他のオーバーロードを使用します。

適用対象

MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)

2 つの PrintTicket がマージされ、結果の PrintTicket は有効な印刷チケットであり、プリンターのサポート対象外となる印刷機能は要求されないこと、および指定したスコープに制限されることが保証されます。

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 番目の印刷チケット。

deltaPrintTicket
PrintTicket

2 番目の印刷チケット。 これは null でもかまいません。

scope
PrintTicketScope

deltaPrintTicket のスコープと、ValidationResult で返される印刷チケットのスコープ (ページ、ドキュメント、またはジョブ全体) を示す値。

戻り値

マージされた ValidationResult および実行可能性を保証するために設定のいずれかを変更する必要があるかどうかを示す情報を含む PrintTicket

例外

入力された印刷チケットの少なくとも 1 つが無効です。

basePrintTicketnull です。

scope パラメーターに有効な PrintTicketScope 値がありません。

検証、マージ、および実行可能性の確認操作が失敗しました。

注釈

メソッドは実行可能な印刷チケットを生成します。つまり、プリンターがサポートしていない印刷機能を要求しないチケットです。 メソッドはまず、2 つの入力印刷チケットを 印刷スキーマに対して検証します。 どちらかが無効な場合は、例外がスローされます。

その後、2 つのチケットがマージされます。 特定のプロパティの値が異なる場合、マージされたチケットは最初にデルタ チケットの値を使用します。

その後、マージされたチケットがプリンターの実際の機能と照合されます。 チケット内の設定がプリンターの機能と互換性がない場合、プリンター ドライバーは必要なロジックを使用してこれらの設定を変更します。 通常は、ユーザーまたはプリンターの既定値を設定に置き換えます。 ドライバーの代替値のソースが と同じチケット basePrintTicketではない場合、マージされたチケットには、両方の入力チケットとは異なる設定が含まれる場合があります。 プリンター ドライバーが設定を変更する必要がある場合、このファクトは の プロパティValidationResultConflictStatus報告されます。

印刷キューの既定の設定に基づいてマージして検証するには、 または に設定basePrintTicketするDefaultPrintTicketUserPrintTicket必要があります。

パラメーターには deltaPrintTicket を指定できます null。この場合 basePrintTicket 、 は検証され、実行可能性が確認され、変更された場合は返されます。

scopeがジョブの場合、 でValidationResult返される印刷チケットには、Job、Document、および Page プレフィックスを含む印刷スキーマ パラメーターを含めることができます。 scopeがドキュメントの場合、 のdeltaPrintTicketジョブごとの設定は無視され、返されるチケットには Document プレフィックスと Page プレフィックスを含むパラメーターを含めることができます。 scopeがページの場合、 のジョブごとの設定とドキュメントごとの設定deltaPrintTicketは無視され、返されるチケットには Page プレフィックスのみを含むパラメーターを含めることができます。

適用対象