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