Поделиться через


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 .

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