TrueTypeFontMode Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает режим обработки принтером текста, форматированного с помощью шрифта TrueType.
public enum class TrueTypeFontMode
public enum TrueTypeFontMode
type TrueTypeFontMode =
Public Enum 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 . Дополнительные сведения см. в разделах Практическое руководство. Расширение схемы печати и Создание новых системных классов печати.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по