PrintQueue.GetPrintCapabilities 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个 PrintCapabilities 对象,该对象标识打印机或设备的功能,如是否可彩色打印或双面打印。
重载
| GetPrintCapabilities() | 
						 获取用于标识打印机功能的 PrintCapabilities 对象。  | 
        	
| GetPrintCapabilities(PrintTicket) | 
						 获取用于标识打印机功能的 PrintCapabilities 对象。  | 
        	
GetPrintCapabilities()
获取用于标识打印机功能的 PrintCapabilities 对象。
public:
 System::Printing::PrintCapabilities ^ GetPrintCapabilities();
	public System.Printing.PrintCapabilities GetPrintCapabilities ();
	member this.GetPrintCapabilities : unit -> System.Printing.PrintCapabilities
	Public Function GetPrintCapabilities () As PrintCapabilities
	返回
用于指定打印机可执行和不可执行的操作(如双面复印或自动装订)的 PrintCapabilities 对象。
例外
未能检索到 PrintCapabilities 对象。
示例
以下示例演示如何在合并两个打印票证时使用此方法。
/// <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
  适用于
GetPrintCapabilities(PrintTicket)
获取用于标识打印机功能的 PrintCapabilities 对象。
public:
 System::Printing::PrintCapabilities ^ GetPrintCapabilities(System::Printing::PrintTicket ^ printTicket);
	[System.Security.SecurityCritical]
public System.Printing.PrintCapabilities GetPrintCapabilities (System.Printing.PrintTicket printTicket);
	public System.Printing.PrintCapabilities GetPrintCapabilities (System.Printing.PrintTicket printTicket);
	[<System.Security.SecurityCritical>]
member this.GetPrintCapabilities : System.Printing.PrintTicket -> System.Printing.PrintCapabilities
	member this.GetPrintCapabilities : System.Printing.PrintTicket -> System.Printing.PrintCapabilities
	Public Function GetPrintCapabilities (printTicket As PrintTicket) As PrintCapabilities
	参数
- printTicket
 - PrintTicket
 
提供打印功能报告根据的打印票证。
返回
用于指定打印机可执行和不可执行的操作(如双面复印或自动装订)的 PrintCapabilities 对象。
- 属性
 
例外
未能检索到 PrintCapabilities 对象。
              printTicket 不符合标准格式。
注解
参数 PrintTicket 用作构造 PrintCapabilities 对象的基础。 例如,假设打印机仅支持输入箱 1 中的媒体类型 A 和 B,并且仅支持输入箱 2 中的媒体类型 C。 
              printTicket如果参数指定的输入箱 1,则PrintCapabilities返回的对象将包含所有三种媒体类型,但它会将类型 C 报告为“约束”。printTicket如果 参数指定输入箱 2,则PrintCapabilities返回的对象将包括所有三种媒体类型,但它会将类型 A 和 B 报告为“约束”。有关约束的详细信息,请参阅打印架构。
如果 printTicket 为 null, UserPrintTicket 则使用 。