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)

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