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 . |