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


TrueTypeFontMode Перечисление

Определение

Указывает режим обработки принтером текста, форматированного с помощью шрифта TrueType.

public enum class TrueTypeFontMode
public enum TrueTypeFontMode
type TrueTypeFontMode = 
Public Enum TrueTypeFontMode
Наследование
TrueTypeFontMode

Поля

Automatic 1

Драйвер принтера определяет наилучший метод обработки шрифтов TrueType.

DownloadAsNativeTrueTypeFont 4

Драйвер принтера загружает шрифт TrueType.

DownloadAsOutlineFont 2

Драйвер принтера загружает шрифт TrueType как контурный шрифт.

DownloadAsRasterFont 3

Драйвер принтера создает растровый шрифт для каждого размера шрифта TrueType, который ему требуется, и загружает их все.

RenderAsBitmap 5

Драйвер принтера загружает каждую область текста как графическую.

Unknown 0

Функции (параметры которой представлены данным перечислением) присвоен параметр, который не определен. в схеме печати.

Примеры

В следующем примере показано, как протестировать возможности принтера и настроить задание печати, чтобы воспользоваться ими.

// ---------------------- 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()

Комментарии

Шрифты TrueType — это векторные шрифты, которые указывают драйверам принтера и драйверам экрана, как рисовать фигуры букв и заполнять их. Векторные шрифты отличаются от растровых шрифтов, которые представляют собой просто списки. Растровый шрифт имеет список для каждой буквы каждого доступного размера шрифта, и списки определяют, печатается ли он для каждого пикселя в букве.

Вы можете увеличить или уменьшить векторные шрифты практически до любого размера точки; однако векторные шрифты могут замедлить печать, так как они занимают большой объем памяти принтера. Кроме того, некоторые принтеры не поддерживают шрифты TrueType.

Более новые принтеры часто избежать этих проблем, выполнив следующие действия.

  • Преобразование шрифта TrueType в шрифт структуры, который является универсальным векторным шрифтом. Многие принтеры, которые не поддерживают шрифты TrueType, поддерживают шрифты контура.

  • Создание временного растрового шрифта, который выглядит так же, как шрифт TrueType. Принтер должен создать отдельный временный растровый шрифт для каждого размера шрифта, используемого документом. По этой причине, если задание печати использует много шрифтов, общий объем памяти, используемой принтером, может быть больше, чем шрифт TrueType.

  • Обработка каждой текстовой области в документе как графического элемента. Если на устройстве требуется распечатать документ, содержащий очень мало текста, загрузка текста в качестве рисунка может использовать меньше памяти принтера, чем загрузка шрифта.

Используйте значения этого типа для следующих целей:

  • Как члены TrueTypeFontModeCapability коллекции, которая является свойством PrintCapabilities, эти значения указывают, какой из предыдущих методов доступен для конкретного принтера. Многие принтеры поддерживают несколько из этих методов.

  • TrueTypeFontMode Значение свойства PrintTicketуказывает принтеру обрабатывать шрифты TrueType определенным образом.

Значение Unknown никогда не используется в свойствах PrintCapabilities объектов .

Никогда не следует присваивать свойству PrintTicketзначение Unknown. Если какое-то другое PrintTicket приложение создает документ PrintTicket , который задает функцию обработки шрифтов TrueType как нераспознанный параметр (то есть параметр, который не определен в схеме печати), то PrintTicket объект в приложении, созданный с помощью этого документа, будет иметь значение Unknown в качестве значения TrueTypeFontMode свойства .

PrintTicket Хотя классы и PrintCapabilities не могут быть унаследованы, можно расширить схему печати для распознавания функций устройства печати, которые не учитываются в PrintTicket классах или PrintCapabilities . Дополнительные сведения см. в разделах Практическое руководство. Расширение схемы печати и Создание новых системных классов печати.

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

См. также раздел