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


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)

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