Collation Property

PrintTicket.Collation Property

 

Gets or sets a value indicating whether the printer collates its output.

Namespace:   System.Printing
Assembly:  ReachFramework (in ReachFramework.dll)

public Nullable<Collation> Collation { get; set; }

Property Value

Type: System.Nullable<Collation>

A Collation value indicating whether the printer collates its output.

Exception Condition
ArgumentOutOfRangeException

Calling code has attempted to set the property to a value that is not in the Collation enumeration.

A null value for this property means that this feature setting is not specified. Also, when the value is null, the XML versions of the PrintTicket (see SaveTo and GetXmlStream) will not contain any markup for this feature.

This property corresponds to the Print Schema's DocumentCollate keyword, not the JobCollateAllDocuments keyword.

You can test for the options that the printer supports by using the CollationCapability property.

The following example shows how to use this property when testing a printer's capabilities and configuring a print job to take advantage of them.

// ---------------------- GetPrintTicketFromPrinter -----------------------
/// <summary>
///   Returns a PrintTicket based on the current default printer.</summary>
/// <returns>
///   A PrintTicket for the current local default printer.</returns>
private PrintTicket GetPrintTicketFromPrinter()
{
    PrintQueue printQueue = null;

    LocalPrintServer localPrintServer = new LocalPrintServer();

    // Retrieving collection of local printer on user machine
    PrintQueueCollection localPrinterCollection =
        localPrintServer.GetPrintQueues();

    System.Collections.IEnumerator localPrinterEnumerator =
        localPrinterCollection.GetEnumerator();

    if (localPrinterEnumerator.MoveNext())
    {
        // Get PrintQueue from first available printer
        printQueue = (PrintQueue)localPrinterEnumerator.Current;
    }
    else
    {
        // No printer exist, return null PrintTicket
        return null;
    }

    // Get default PrintTicket from printer
    PrintTicket printTicket = printQueue.DefaultPrintTicket;

    PrintCapabilities printCapabilites = printQueue.GetPrintCapabilities();

    // Modify PrintTicket
    if (printCapabilites.CollationCapability.Contains(Collation.Collated))
    {
        printTicket.Collation = Collation.Collated;
    }

    if ( printCapabilites.DuplexingCapability.Contains(
            Duplexing.TwoSidedLongEdge) )
    {
        printTicket.Duplexing = Duplexing.TwoSidedLongEdge;
    }

    if (printCapabilites.StaplingCapability.Contains(Stapling.StapleDualLeft))
    {
        printTicket.Stapling = Stapling.StapleDualLeft;
    }

    return printTicket;
}// end:GetPrintTicketFromPrinter()

.NET Framework
Available since 3.0
Return to top
Show:
© 2016 Microsoft