PrintTicket Класс

Определение

Определяет параметры задания печати.

public ref class PrintTicket sealed : System::ComponentModel::INotifyPropertyChanged
public sealed class PrintTicket : System.ComponentModel.INotifyPropertyChanged
type PrintTicket = class
    interface INotifyPropertyChanged
Public NotInheritable Class PrintTicket
Implements INotifyPropertyChanged
Наследование
PrintTicket
Реализации

Примеры

В следующем примере показано, как определить возможности конкретного принтера и как настроить задание печати, чтобы воспользоваться ими.

// ---------------------- 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^ printCapabilities = printQueue->GetPrintCapabilities();

   // Modify PrintTicket
   if (printCapabilities->CollationCapability->Contains(Collation::Collated))
   {
      printTicket->Collation = Collation::Collated;
   }
   if (printCapabilities->DuplexingCapability->Contains(Duplexing::TwoSidedLongEdge))
   {
      printTicket->Duplexing = Duplexing::TwoSidedLongEdge;
   }
   if (printCapabilities->StaplingCapability->Contains(Stapling::StapleDualLeft))
   {
      printTicket->Stapling = Stapling::StapleDualLeft;
   }
   return printTicket;
};// end:GetPrintTicketFromPrinter()
// ---------------------- 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 printCapabilities = printQueue.GetPrintCapabilities();

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

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

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

    return printTicket;
}// end:GetPrintTicketFromPrinter()
' ---------------------- GetPrintTicketFromPrinter -----------------------
''' <summary>
'''   Returns a PrintTicket based on the current default printer.</summary>
''' <returns>
'''   A PrintTicket for the current local default printer.</returns>
Private Function GetPrintTicketFromPrinter() As PrintTicket
    Dim printQueue As PrintQueue = Nothing

    Dim localPrintServer As New LocalPrintServer()

    ' Retrieving collection of local printer on user machine
    Dim localPrinterCollection As PrintQueueCollection = localPrintServer.GetPrintQueues()

    Dim localPrinterEnumerator As System.Collections.IEnumerator = localPrinterCollection.GetEnumerator()

    If localPrinterEnumerator.MoveNext() Then
        ' Get PrintQueue from first available printer
        printQueue = CType(localPrinterEnumerator.Current, PrintQueue)
    Else
        ' No printer exist, return null PrintTicket
        Return Nothing
    End If

    ' Get default PrintTicket from printer
    Dim printTicket As PrintTicket = printQueue.DefaultPrintTicket

    Dim printCapabilities As PrintCapabilities = printQueue.GetPrintCapabilities()

    ' Modify PrintTicket
    If printCapabilities.CollationCapability.Contains(Collation.Collated) Then
        printTicket.Collation = Collation.Collated
    End If

    If printCapabilities.DuplexingCapability.Contains(Duplexing.TwoSidedLongEdge) Then
        printTicket.Duplexing = Duplexing.TwoSidedLongEdge
    End If

    If printCapabilities.StaplingCapability.Contains(Stapling.StapleDualLeft) Then
        printTicket.Stapling = Stapling.StapleDualLeft
    End If

    Return printTicket
End Function ' end:GetPrintTicketFromPrinter()

Комментарии

Объект PrintTicket — это простое в работе представление определенного типа XML-документа, называемого документом PrintTicket. Последняя — это набор инструкций, сообщающих принтеру, как настроить его различные функции (такие как дуплексирование, сортировка и скобка). Например, чтобы указать принтеру включить задания печати степлеров и скрепок в левом верхнем углу, в документе должен быть <JobStapleAllDocuments … > элемент StapleTopLeft. Элемент, в свою очередь, представлен свойством StaplingPrintTicket объекта . Документ PrintTicket должен соответствовать схеме печати.

Класс PrintTicket позволяет приложению настраивать функции принтера, не прибегая к непосредственному написанию XML-объектов Stream .

Все наиболее популярные функции домашних и бизнес-принтеров, а также фотопечати представлены свойствами PrintTicket класса . Но схема печати определяет многие другие, менее распространенные функции, и ее можно расширить для обработки функций специализированных устройств печати. Таким образом, хотя PrintTicket классы и PrintCapabilities не могут быть унаследованы, можно расширить схему печати для распознавания функций устройства печати, которые не учитываются в PrintTicket классах или PrintCapabilities . Дополнительные сведения см. в разделах Практическое руководство. Расширение схемы печати и Создание новых системных классов печати.

ПримечаниеPrintTicket При создании объекта с помощью конструктора, который принимает параметр документа PrintTicket (как Stream), весь документ хранится в неотличном поле объекта, включая xml-элементы внутри него, которые выражают менее распространенные признаки, не представленные ни в одном из открытых PrintTicket свойств класса. На самом деле, если драйвер, создающий документ PrintTicket, использует частное расширение схемы печати, то эта частно определенная разметка также сохраняется как часть документа PrintTicket, не являющегося общедоступным.

Внимание!

Классы в System.Printing пространстве имен не поддерживаются для использования в службе Windows или ASP.NET приложении или службе. Попытка использовать эти классы из одного из этих типов приложений может привести к непредвиденным проблемам, таким как снижение производительности службы и исключения во время выполнения.

Если вы хотите выполнить печать из приложения Windows Forms, смSystem.Drawing.Printing. пространство имен.

Конструкторы

PrintTicket()

Инициализирует новый экземпляр класса PrintTicket.

PrintTicket(Stream)

Инициализирует новый экземпляр класса PrintTicket, используя XML-поток (который содержит документ PrintTicket), соответствующий схеме печати XML.

Свойства

Collation

Возвращает или задает значение, указывающее, выполняется ли разбор напечатанных листов по копиям.

CopyCount

Возвращает или задает количество копий для задания печати.

DeviceFontSubstitution

Возвращает или задает значение, указывающее, выполняется ли на принтере подстановка шрифтов устройства для задания печати.

Duplexing

Возвращает или задает значение, указывающее, какой вид двухсторонней печати, если таковая поддерживается, используется принтером для задания печати.

InputBin

Возвращает или задает значение, указывающее, какой входной лоток (лоток для бумаги) использовать.

OutputColor

Возвращает или задает значение, указывающее, как принтер обрабатывает содержимое в цвете или оттенках серого.

OutputQuality

Возвращает или задает значение, указывающее качество вывода для задания печати.

PageBorderless

Возвращает или задает значение, указывающее, будет ли устройство печатать содержимое до края носителя, или оно предусматривает непечатаемое поле возле края.

PageMediaSize

Возвращает или задает размер страницы (или другого носителя), используемый принтером для задания печати.

PageMediaType

Возвращает или задает значение, указывающее, какой вид бумаги или другого носителя используется принтером для задания печати.

PageOrder

Возвращает или задает значение, указывающее, направление печати нескольких страниц: от начала к концу или от конца к началу.

PageOrientation

Возвращает или задает значение, указывающее ориентацию содержимого страницы для печати.

PageResolution

Возвращает или задает уровень разрешения страницы, используемый принтером для задания печати.

PageScalingFactor

Возвращает или задает процент, на который принтер увеличивает или уменьшает изображение, печатаемое на странице.

PagesPerSheet

Возвращает или задает количество страниц, печатаемых на каждой печатной стороне листа бумаги.

PagesPerSheetDirection

Возвращает или задает значение, указывающее порядок страниц, печатаемых на каждой стороне листа бумаги.

PhotoPrintingIntent

Возвращает или задает значение, указывающее качественное выражение уровня качества, используемого принтером при печати фотографии.

Stapling

Возвращает или задает значение, указывающее, сшивает ли принтер страницы и где именно.

TrueTypeFontMode

Возвращает или задает значение, указывающее режим обработки текста и использования шрифтов TrueType.

Методы

Clone()

Создает изменяемый клон данного объекта PrintTicket, делая глубокие копии значений этого объекта.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetXmlStream()

Возвращает объект MemoryStream, представляющий значения свойства PrintTicket в качестве XML-потока, соответствующего схеме печати.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
SaveTo(Stream)

Сохраняет параметры PrintTicket в объекте Stream с использованием формата XML, соответствующего схеме печати.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

PropertyChanged

Происходит при изменении какого-либо свойства PrintTicket.

Применяется к