Поделиться через


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)

Применяется к