PrintQueue.MergeAndValidatePrintTicket 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會合併兩個 PrintTicket 並保證得出有效的 PrintTicket,且不會要求印表機不支援的任何列印功能。
多載
MergeAndValidatePrintTicket(PrintTicket, PrintTicket) |
會合併兩個 PrintTicket 並保證得出有效的 PrintTicket,且不會要求印表機不支援的任何列印功能。 |
MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope) |
合併兩個 PrintTicket 並保證得出有效的 PrintTicket,且不會要求印表機不支援的任何列印功能,並限制在指定的範圍內。 |
MergeAndValidatePrintTicket(PrintTicket, PrintTicket)
會合併兩個 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
第一個 Print Ticket。
- deltaPrintTicket
- PrintTicket
第二個 Print Ticket。 這可以是 null
。
傳回
ValidationResult,包含合併的 PrintTicket,以及是否需要變更其任何設定以確保可用性的指示。
例外狀況
至少一個輸入 Print Ticket 無效。
basePrintTicket
為 null
。
驗證、合併和可用性檢查作業失敗。
範例
下列範例示範如何使用這個方法來合併兩個列印票證,並回應 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
備註
方法會產生可行的列印票證;也就是說,不要求印表機不支援的印表功能票證。 方法會先針對 列印架構驗證兩個輸入列印票證。 如果其中一個無效,則會擲回例外狀況。
接著會合併這兩個票證。 如果特定屬性的值不同,則產生的合併票證一開始會使用差異票證的值。
然後,系統會根據印表機的實際功能檢查合併的票證。 如果票證中的任何設定與印表機的功能不相容,則列印機驅動程式會使用想要的任何邏輯來變更這些設定。 一般而言,它會取代使用者或印表機的預設值來取代設定。 驅動程式的替代值來源與 不同,則合併的票 basePrintTicket
證可能會有一些與兩個輸入票證不同的設定。 如果印表機驅動程式必須變更任何設定,則會在 ConflictStatus 的 ValidationResult屬性中報告這項事實。
若要根據列印佇列的預設設定合併和驗證,您應該將 設定 basePrintTicket
為 DefaultPrintTicket 或 UserPrintTicket。
參數 deltaPrintTicket
可以是 null
,在此情況下 basePrintTicket
,會驗證 、檢查是否可行,並傳回,可能是變更。
使用 這個 多 MergeAndValidatePrintTicket載 時, deltaPrintTicket
傳回 的和 PrintTicket 皆 ValidationResult 具有整個作業範圍。 若要指定不同的範圍,請使用此方法的其他多載。
適用於
MergeAndValidatePrintTicket(PrintTicket, PrintTicket, PrintTicketScope)
合併兩個 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
第一個 Print Ticket。
- deltaPrintTicket
- PrintTicket
第二個 Print Ticket。 這可以是 null
。
- scope
- PrintTicketScope
這個值表示 deltaPrintTicket
範圍和 ValidationResult 中傳回之 Print Ticket 的範圍是一個頁面、一個文件,還是整個工作。
傳回
ValidationResult,包含合併的 PrintTicket,以及是否需要變更其任何設定以確保可用性的指示。
例外狀況
至少一個輸入 Print Ticket 無效。
basePrintTicket
為 null
。
scope
參數沒有有效的 PrintTicketScope 值。
驗證、合併和可用性檢查作業失敗。
備註
方法會產生可行的列印票證;也就是說,不要求印表機不支援的印表功能票證。 方法會先針對 列印架構驗證兩個輸入列印票證。 如果其中一個無效,則會擲回例外狀況。
接著會合併這兩個票證。 如果特定屬性的值不同,則產生的合併票證一開始會使用差異票證的值。
然後,系統會根據印表機的實際功能檢查合併的票證。 如果票證中的任何設定與印表機的功能不相容,則列印機驅動程式會使用想要的任何邏輯來變更這些設定。 一般而言,它會取代使用者或印表機的預設值來取代設定。 驅動程式的替代值來源與 不同,則合併的票 basePrintTicket
證可能會有一些與兩個輸入票證不同的設定。 如果印表機驅動程式必須變更任何設定,則會在 ConflictStatus 的 ValidationResult屬性中報告這項事實。
若要根據列印佇列的預設設定合併和驗證,您應該將 設定 basePrintTicket
為 DefaultPrintTicket 或 UserPrintTicket。
參數 deltaPrintTicket
可以是 null
,在此情況下 basePrintTicket
,會驗證 、檢查是否可行,並傳回,可能是變更。
scope
如果 是作業,則 中ValidationResult傳回的列印票證可以包含具有作業、文件和頁面前置詞的列印架構參數。
scope
如果 是檔,則會忽略 中的deltaPrintTicket
個別作業設定,而傳回的票證可以包含具有 Document 和 Page 前置詞的參數。
scope
如果 是頁面,則會忽略 中的deltaPrintTicket
個別作業設定和個別檔設定,而傳回的票證只能包含具有Page前置詞的參數。