Формат RTF в WinRT
86Разработка под Windows 10 --- Формат RTF
Под RTF - «расширенным форматированием текста» — когда-то понимался вывод текста с разными шрифтами, размерами и начертанием, но теперь эти функции поддерживаются повсеместно, и термин теперь скорее обозначает некие нестандартные операции с текстом. Основная часть этой и последующих статей посвящена элементу RichTextBlock и элементу управления RichEditBox, которые (как нетрудно догадаться по именам) представляют собой усовершенствованные версии TextBlock и TextBox. Впрочем, будет также приведена полезная информация, которая поможет вам в выполнении более сложных операций по обработке текста.
Терминология в области работы со шрифтами несколько изменилась за годы электронной верстки. Термином «гарнитура» (typeface) традиционно обозначался конкретный дизайн глифов (например, Times New Roman или Helvetica). Гарнитуры обычно существовали в нескольких начертаниях, самыми распространенными из которых были курсивное и полужирное, поэтому семейство гарнитур могло включать гарнитуры Times New Roman, Times New Roman Italic и Times New Roman Bold.
Шрифт представляет собой физическую реализацию конкретной гарнитуры с конкретным стилем и размером — Helvetica Bold 10 пунктов в традиционной («докомпьютерной») верстке. Каждый символ конкретного шрифта представлял собой уникальную металлическую литеру.
Когда для работы с текстом начали использоваться компьютеры, появились две тенденции, которые привели к постепенному размыванию этой терминологии. Во-первых, пользователи предпочитали рассматривать полужирное или курсивное начертание как атрибут, а не как неотъемлемую часть гарнитуры. Например, вместо того чтобы заменять в конкретном слове гарнитуру Times New Roman на Times New Roman Italic, было удобнее применить к нему атрибут Italic независимо от используемой гарнитуры. Во-вторых, с развитием технологий контурных шрифтов (например, TrueType) размер символов шрифта стал определяться довольно тривиальным процессом масштабирования, поэтому размер шрифта перестал считаться важной частью спецификации шрифта.
Из-за этих новых представлений получил распространение термин «семейство шрифтов». Семейство шрифтов отчасти похоже на традиционную гарнитуру: у него есть имя - например, Times New Roman или Helvetica. Семейство шрифтов реализуется в Windows Runtime классом FontFamily. Свойство FontFamily используется программами Windows 8 в сочетании с другими шрифтовыми свойствами (FontSize, FontStyle, FontWeight и FontStretch) для формирования полной спецификации шрифта.
Однако в используемой технологии применяется более традиционный подход. В Windows шрифты реализуются в виде файлов, обычно с расширением .ttf («TrueType font»). Файлы шрифтов находятся в каталоге /Windows/Fonts. Большинство из них устанавливается с системой Windows, другие шрифты добавляются различными приложениями. Проводник Windows отображает этот каталог по особым правилам, поэтому имена файлов обычно не видны. (Кроме того, в этом каталоге также хранятся растровые шрифты конкретных размеров, но они используются в режиме командной строки.)
Вместо имен файлов в каталоге /Windows/Fonts отображаются имена семейств шрифтов — например, Georgia:
Обратите внимание: значок выглядит как группа документов. Если сделать на нем двойной щелчок, открывается список отдельных файлов, входящих в это семейство шрифтов.
Если теперь щелкнуть правой кнопкой на одном из файлов и вызвать окно свойств, вы увидите, что каждая модификация шрифта хранится в отдельном файле: georgiab.ttf, georgiaz.ttf, georgiai.ttf и georgia.ttf. Каждый файл содержит масштабируемые определения контуров многих символов — не всех символов Юникода, но значительного их подмножества.
Некоторые семейства шрифтов содержат другие варианты, кроме курсива и полужирного. Windows отвечает за подбор подходящего шрифта для заданной конкретной комбинации FontStyle, FontWeight и FontStretch.
Некоторые семейства шрифтов не имеют курсивного и полужирного начертания. Для них эти варианты начертания могут имитироваться наклоном символов или увеличением толщины линий.