DefaultPrintTicket Property

PrintQueue.DefaultPrintTicket Property


Gets or sets the default printer options associated with this PrintQueue.

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

public virtual PrintTicket DefaultPrintTicket {

Property Value

Type: System.Printing.PrintTicket

The default PrintTicket for the print queue; or null if an error has occurred in the print queue.

The default PrintTicket specifies print job options such as CopyCount, PageOrientation, Duplexing, Stapling, and others.

Each PrintQueue maintains its own DefaultPrintTicket.

In normal operation the DefaultPrintTicket property returns a PrintTicket. If the PrintQueue detects an invalid state, DefaultPrintTicket returns null. If DefaultPrintTicket returns null, the application should display an informational user dialog that an error has occurred on this print queue and that the print job should be restarted with the output directed to a different print queue.

Getting or setting the DefaultPrintTicket property does not validate the PrintTicket. The MergeAndValidatePrintTicket method can be used to validate a PrintTicket.

The following example shows how to use this property while 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>
PrintTicket^ GetPrintTicketFromPrinter () 
   PrintQueue^ printQueue = nullptr;

   LocalPrintServer^ localPrintServer = gcnew 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
      return nullptr;
   // 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
© 2015 Microsoft