Partilhar via


PrintQueue.MergeAndValidatePrintTicket Método

Definição

Mescla dois PrintTickets e garante que o PrintTicket resultante seja válido e não solicita qualquer funcionalidade de impressão à qual impressora não dá suporte.

Sobrecargas

MergeAndValidatePrintTicket(PrintTicket, PrintTicket)

Mescla dois PrintTickets e garante que o PrintTicket resultante seja válido e não solicita qualquer funcionalidade de impressão à qual impressora não dá suporte.

MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)

Mescla dois PrintTickets e garante que o PrintTicket resultante seja válido, não solicita qualquer funcionalidade de impressão que não seja compatível com a impressora e é limitada ao escopo especificado.

MergeAndValidatePrintTicket(PrintTicket, PrintTicket)

Mescla dois PrintTickets e garante que o PrintTicket resultante seja válido e não solicita qualquer funcionalidade de impressão à qual impressora não dá suporte.

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

Parâmetros

basePrintTicket
PrintTicket

O primeiro tíquete de impressão.

deltaPrintTicket
PrintTicket

O segundo tíquete de impressão. Ele pode ser null.

Retornos

Um ValidationResult que inclui o PrintTicket mesclado e uma indicação de qualquer uma das suas configurações foram alteradas para assegurar viabilidade.

Exceções

Pelo menos um dos tíquetes de impressão de entrada não é válido.

O basePrintTicket é null.

As operação de verificação de validação, fusão e viabilidade falharam.

Exemplos

O exemplo a seguir mostra como usar esse método para mesclar dois tíquetes de impressão e responder ao ValidationResult retornado.

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

Comentários

O método produz um tíquete de impressão viável; ou seja, um tíquete que não solicita recursos de impressão aos quais a impressora não dá suporte. O método primeiro valida os dois tíquetes de impressão de entrada em relação ao Esquema de Impressão. Se um for inválido, uma exceção será gerada.

Os dois tíquetes são então mesclados. Se eles tiverem valores diferentes para uma propriedade específica, o tíquete mesclado resultante usará inicialmente o valor do tíquete delta.

O tíquete mesclado é verificado em relação aos recursos reais da impressora. Se as configurações no tíquete forem incompatíveis com os recursos da impressora, o driver da impressora alterará essas configurações usando qualquer lógica desejada. Normalmente, ele substitui o valor padrão do usuário ou da impressora pela configuração. Ela é a fonte de valores substitutos do driver não é o mesmo tíquete basePrintTicketque , então o tíquete mesclado pode ter algumas configurações diferentes dos dois tíquetes de entrada. Se o driver da impressora precisar alterar as configurações, esse fato será relatado na ConflictStatus propriedade do ValidationResult.

Para mesclar e validar com base nas configurações padrão de uma fila de impressão, você deve definir basePrintTicket como o DefaultPrintTicket ou o UserPrintTicket.

O deltaPrintTicket parâmetro pode ser null, caso em que o basePrintTicket é validado, verificado quanto à viabilidade e retornado, possivelmente com alterações.

Com essa sobrecarga de MergeAndValidatePrintTicket, tanto o deltaPrintTicket quanto o PrintTicket no retornado têm escopo de todo o ValidationResult trabalho. Para especificar um escopo diferente, use a outra sobrecarga desse método.

Aplica-se a

MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)

Mescla dois PrintTickets e garante que o PrintTicket resultante seja válido, não solicita qualquer funcionalidade de impressão que não seja compatível com a impressora e é limitada ao escopo especificado.

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

Parâmetros

basePrintTicket
PrintTicket

O primeiro tíquete de impressão.

deltaPrintTicket
PrintTicket

O segundo tíquete de impressão. Ele pode ser null.

scope
PrintTicketScope

Um valor que indica se o escopo do deltaPrintTicket e o escopo do tíquete de impressão retornado no ValidationResult é uma página, um documento ou todo o trabalho.

Retornos

Um ValidationResult que inclui o PrintTicket mesclado e uma indicação de qualquer uma das suas configurações foram alteradas para assegurar viabilidade.

Exceções

Pelo menos um dos tíquetes de impressão de entrada não é válido.

O basePrintTicket é null.

O parâmetro scope não tem um valor PrintTicketScope válido.

As operação de verificação de validação, fusão e viabilidade falharam.

Comentários

O método produz um tíquete de impressão viável; ou seja, um tíquete que não solicita recursos de impressão aos quais a impressora não dá suporte. O método primeiro valida os dois tíquetes de impressão de entrada em relação ao Esquema de Impressão. Se um for inválido, uma exceção será gerada.

Os dois tíquetes são então mesclados. Se eles tiverem valores diferentes para uma propriedade específica, o tíquete mesclado resultante usará inicialmente o valor do tíquete delta.

O tíquete mesclado é verificado em relação aos recursos reais da impressora. Se as configurações no tíquete forem incompatíveis com os recursos da impressora, o driver da impressora alterará essas configurações usando qualquer lógica desejada. Normalmente, ele substitui o valor padrão do usuário ou da impressora pela configuração. Ela é a fonte de valores substitutos do driver não é o mesmo tíquete basePrintTicketque , então o tíquete mesclado pode ter algumas configurações diferentes dos dois tíquetes de entrada. Se o driver da impressora precisar alterar as configurações, esse fato será relatado na ConflictStatus propriedade do ValidationResult.

Para mesclar e validar com base nas configurações padrão de uma fila de impressão, você deve definir basePrintTicket como o DefaultPrintTicket ou o UserPrintTicket.

O deltaPrintTicket parâmetro pode ser null, caso em que o basePrintTicket é validado, verificado quanto à viabilidade e retornado, possivelmente com alterações.

Se o scope for um trabalho, o tíquete de impressão retornado no ValidationResult poderá incluir parâmetros de Esquema de Impressão com prefixos Job, Document e Page. Se for scope um documento, as configurações por trabalho em deltaPrintTicket serão ignoradas e o tíquete retornado poderá incluir parâmetros com prefixos document e page. Se for scope uma página, as configurações por trabalho e as configurações por documento em deltaPrintTicket serão ignoradas e o tíquete retornado poderá incluir parâmetros apenas com o prefixo Page.

Aplica-se a