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 … >
способ обработки выходных данных цвета. Элемент, в свою очередь, представлен свойством OutputColorCapability PrintCapabilities объекта. Если принтер не поддерживает цвет, в документе отсутствует <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) |