PrintCapabilities Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет возможности принтера.
public ref class PrintCapabilities sealed
public sealed class PrintCapabilities
type PrintCapabilities = class
Public NotInheritable Class PrintCapabilities
- Наследование
-
PrintCapabilities
Примеры
В следующем примере показано, как определить возможности конкретного принтера и как настроить задание печати для их использования.
// ---------------------- 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()
Комментарии
PrintCapabilities Объект — это простое представление определенного типа XML-документа, называемого документом PrintCapabilities. Последний — это моментальный снимок всех возможностей принтера и их текущих параметров. Например, если принтер поддерживает цветную печать, документ будет иметь элемент, определяющий <PageOutputColor … > способ обработки выходных данных цвета. Элемент, в свою очередь, представлен свойством OutputColorCapabilityPrintCapabilities объекта. Если принтер не поддерживает цвет, в документе отсутствует <PageOutputColor … > элемент и значение OutputColorCapability свойства null. Документ PrintCapabilities должен соответствовать схеме печати.
Класс PrintCapabilities позволяет приложению получать возможности принтера, не выполняя прямое чтение XML-объектов Stream .
Все самые популярные функции файловых и фотопечатей, как для дома, так и для бизнеса, инкапсулируются классом PrintCapabilities . Но схема печати определяет гораздо больше, менее распространенных функций и может быть расширена для обработки функций специализированных устройств печати. Таким образом, хотя PrintTicket и PrintCapabilities классы не могут наследоваться, можно расширить схему печати для распознавания функций устройства печати, которые не учитываются в PrintTicket или PrintCapabilities классах.
ПримечаниеPrintCapabilities При создании объекта с помощью конструктора, который принимает документ PrintCapabilities (как Streamпараметр), весь документ хранится в неогласованном поле в объекте, включая XML-элементы внутри него, которые выражают менее распространенные функции, которые не представлены ни одной из открытых свойств PrintCapabilities класса. На самом деле, если драйвер, создающий документ PrintCapabilities, использует частное расширение схемы печати, то частно определяемая разметка также хранится в составе документа, отличного от открытого документа PrintCapabilities.
Предостережение
Классы в System.Printing пространстве имен не поддерживаются для использования в службе Windows или ASP.NET приложения или службы. При попытке использовать эти классы из одного из этих типов приложений могут возникнуть непредвиденные проблемы, такие как снижение производительности службы и исключения во время выполнения.
Если вы хотите распечатать из приложения Windows Forms, просмотрите System.Drawing.Printing пространство имен.
Конструкторы
| Имя | Описание |
|---|---|
| PrintCapabilities(Stream) |
Инициализирует новый экземпляр PrintCapabilities класса с помощью XML-потока (который содержит документ PrintCapabilities), который задает возможности принтера и соответствует схеме печати XML. |
Свойства
| Имя | Описание |
|---|---|
| CollationCapability |
Возвращает коллекцию значений, определяющих возможности сортировки принтера. |
| DeviceFontSubstitutionCapability |
Возвращает коллекцию значений, определяющих, может ли принтер заменить шрифты на основе устройств для шрифтов на основе компьютера. |
| DuplexingCapability |
Возвращает коллекцию значений, определяющих, может ли принтер выполнять двухсторонняя печать. |
| InputBinCapability |
Возвращает коллекцию значений, указывающих, какой входной контейнер (область бумаги) используется. |
| MaxCopyCount |
Возвращает значение, указывающее максимальное количество копий, которые устройство может печатать в одном задании печати. |
| OrientedPageMediaHeight |
Возвращает значение, указывающее высоту отображаемой области на странице, где высота означает вертикальное измерение относительно ориентации страницы. |
| OrientedPageMediaWidth |
Возвращает значение, указывающее ширину области изображения на странице, где ширина означает горизонтальное измерение относительно ориентации страницы. |
| OutputColorCapability |
Получает коллекцию значений, указывающих способы печати содержимого принтера цветом и оттенками серого. |
| OutputQualityCapability |
Возвращает коллекцию значений, указывающих типы выходных данных, поддерживаемые принтером. |
| PageBorderlessCapability |
Возвращает коллекцию значений, указывающих, может ли принтер распечатать до края носителя. |
| PageImageableArea |
Возвращает объект, представляющий область страницы, которую может использовать принтер. |
| PageMediaSizeCapability |
Возвращает коллекцию объектов, определяющих PageMediaSize размеры бумаги и носителя, поддерживаемые принтером. |
| PageMediaTypeCapability |
Возвращает коллекцию значений, определяющих типы бумаги и других носителей, поддерживаемых принтером. |
| PageOrderCapability |
Возвращает коллекцию значений, указывающих, способен ли принтер печатать документы с несколькими страницами из переднего и заднего, заднего или обоих способов. |
| PageOrientationCapability |
Возвращает коллекцию значений, определяющих типы ориентации страницы, поддерживаемые принтером. |
| PageResolutionCapability |
Возвращает коллекцию объектов, определяющих уровни PageResolution разрешения страниц, поддерживаемые принтером. |
| PageScalingFactorRange |
Получает максимальный и минимальный процент, с помощью которого принтер может увеличить или уменьшить изображение печати на странице. |
| PagesPerSheetCapability |
Получает коллекцию целых чисел, каждый из которых определяет количество страниц, которые пользователь может печатать на одной стороне листа бумаги. |
| PagesPerSheetDirectionCapability |
Возвращает коллекцию значений, определяющих шаблоны принтера для представления нескольких страниц на одной стороне листа бумаги. |
| PhotoPrintingIntentCapability |
Возвращает коллекцию значений, определяющих параметры качества, поддерживаемые принтером для печати фотографий. |
| StaplingCapability |
Возвращает коллекцию значений, определяющих типы автоматического среза, поддерживаемые принтером. |
| TrueTypeFontModeCapability |
Возвращает коллекцию значений, определяющих методы, поддерживаемые принтером для обработки шрифтов TrueType. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |