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. Последний является snapshot всех возможностей принтера и их текущих параметров. Например, если принтер поддерживает цветную печать, документ будет содержать элемент, определяющий <PageOutputColor … >
способ обработки выходных данных цвета. Элемент, в свою очередь, представлен свойством OutputColorCapabilityPrintCapabilities объекта . Если принтер не поддерживает цвет, в документе нет <PageOutputColor … >
элемента и свойство имеет null
значение OutputColorCapability . Документ 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) |