Нативные внешние виды FreeText по умолчанию

Нативный fallback FreeText применяет ограниченное состояние внешнего вида по умолчанию к сгенерированному тексту, раскладке, автоматической подгонке и украшениям

Предоставленный normal-внешний вид имеет приоритет над генерацией из внешнего вида FreeText по умолчанию и rich-текста

Операторы внешнего вида по умолчанию

ОператорыПоведение fallback
TfВыбирает исходный ресурс шрифта и размер текста; нулевой размер запрашивает ограниченный автоматический подбор
g rg kИнициализирует цвет заливки текста в серый, RGB или CMYK
Tc Tw TzПрименяет межсимвольный и межсловный интервал и горизонтальный масштаб текста к измерениям рисования и раскладки
Ts TLПрименяет подъём текста и явное разделение базовой линии, включая нулевой или отрицательный интерлиньяж
TmПринимает не более одной матрицы; её линейная часть преобразует сгенерированный текст, а раскладка аннотации определяет размещение
TrВыбирает режимы рисования глифов и отсечения текста от нуля до семи
G RG K w J j M dИнициализирует цвет, ширину, окончания, соединения, предел mitre и состояние штрихов для текста и сгенерированных украшений

Операнды переноса матрицы проверяются, но не заменяют размещение FreeText внутри его прямоугольника аннотации

Горизонтальный масштаб может быть нулевым или отрицательным; подъём, интервалы и линейная матрица участвуют в преобразованной геометрии глифов, advance-ов и украшений

Это ограниченный профиль внешнего вида по умолчанию, а не общий интерпретатор потоков содержимого PDF; неподдерживаемые операторы, неверное число операндов, malformed значения и повторные текстовые матрицы дают ошибку рендеринга

Компоненты цвета обводки должны лежать в диапазоне от нуля до единицы, значения окончаний и соединений должны быть целыми от нуля до двух, ширина должна быть неотрицательной, а предел mitre — не менее единицы

Массив штрихов может содержать не более 256 неотрицательных конечных значений, а непустой массив должен содержать положительное значение; пустой массив выбирает сплошные штрихи, нечётный массив повторяется, а фаза должна быть неотрицательной

Раскладка, перенос и размещение

Выравнивание FreeText использует видимые advance-ы для размещения слева, по центру или справа; закодированные конечные пробелы и их исходные отображения остаются, когда сгенерированный поток сохраняет эти фрагменты

Перенос по границам слов и жёсткие разрывы абзацев обрабатываются отдельно; неразрывный пробел не становится обычным мягким ASCII-разделителем

Исходный путь raw-font сохраняет свои ограниченные правила переноса по пробелу и дефису; этот набор приёмки не устанавливает все случаи переноса строк Unicode, двунаправленности или сложного шейпинга

Физический прямоугольник аннотации, границы корневого Form и внутренний clip остаются фиксированными; временные границы дочерних Form-ов учитывают полную цепочку предков и размещения

Рисование глифов и отсечение текста

TrРисование глифовВклад в отсечение
0ЗаливкаНет
1ОбводкаНет
2Заливка и обводкаНет
3Без рисования глифовНет
4ЗаливкаКонтуры глифов
5ОбводкаКонтуры глифов
6Заливка и обводкаКонтуры глифов
7Без рисования глифовКонтуры глифов

Режимы с четвёртого по седьмой накапливают контуры глифов по сгенерированным run-ам в одном текстовом объекте; накопленное текстовое отсечение применяется после этого текстового объекта к последующим сгенерированным украшениям подчёркивания и зачёркивания

Отсечение использует контуры глифов, а не расширенный силуэт обводки; состояние рисования остаётся специфичным для каждого run, а охватывающая область графического состояния ограничивает время жизни отсечения

Начальное состояние обводки DA применяется и в корневой области украшений, и в текстовых областях; переопределения на run и сохранение/восстановление графического состояния сохраняют смысл

Четыре положительных случая отсечения — отдельные ворота приёмки с рукописными внешними видами из двух run, положительными отсечёнными украшениями и белыми образцами вне объединения глифов

Эти ворота также используют свидетельство заливки прямоугольника явного внешнего вида для проверки отсечения текста бэкендом; свидетельство не утверждает, что генерация с отсутствующим внешним видом выдаёт заливку прямоугольника

Независимая проверка чтения положительных Tr4–Tr7 прошла четыре конечных случая двух run с официальными MuPDF 1.28.5 и Poppler, включая обе внутренности глифов, отсечённые украшения и белые образцы вне объединения глифов

Отдельная тестовая ревизия только с отсечением использует Scale4 для выбора полных пиксельных ячеек из неизменённых точек-свидетелей в пространстве страницы; она сохраняет исходные пороги цвета и оставляет normal45-рендеринг в Scale1

У MuPDF 1.28.2 есть проблема совместимости границ отсечения, когда смена цвета сбрасывает один run перед более поздним run в том же текстовом объекте; более ранний run может быть исключён из накопленных границ отсечения

Официальный CLI MuPDF 1.28.5 и независимо закреплённый Poppler приняли эти неизменённые внешние виды; версии читалок и конечные положительные управления отличаются от гарантии для любого конвейера рендеринга

Автоматическая подгонка

Нулевой размер шрифта DA запускает ограниченный поиск сжатия и уточнения от начальной сгенерированной раскладки, используя преобразованные пути глифов, advance-ы и украшения, а не только непреобразованную высоту строки

Расширение обводки включает консервативную преобразованную поддержку пунктирных углов с квадратными окончаниями и mitre-соединений

Поиск сохраняет устоявшееся квантование путей Cairo и FreeType; он не обещает математически наибольший идеальный размер шрифта или одинаковый хинтинг у разных читалок

Если ни одна проба не подходит до достижения ограниченным поиском минимальной пробы, физическое отсечение всё равно ограничивает публикацию; очень длинное содержимое не гарантирует полной видимости

Исходные шрифты и пределы ресурсов

Исходный fallback встроенных Type1C, CIDFontType0C и bare Type1 уже поддерживается; полные пути внешних видов OpenType CFF и CFF2 экземпляра по умолчанию сохраняют свои документированные правила отображения и встраивания

Автономные raw-потоки CFF2 и выбор координат вариаций, отличных от умолчальных, остаются вне выпущенного пути CFF2

Пределы токенов, объектов, рабочей памяти, операций, декодированных данных и вывода применяются к разбору, временным ресурсам, подгонке и публикации; отмена опрашивается во время ограниченной работы

Сбой сохраняет исходный граф и допускает восстановление того же документа; достижение предела не превращает частично сгенерированный внешний вид в успешный результат

Воспроизводимая приёмка и оставшиеся границы

Публичный набор — это Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, распространяемый со своими ресурсами и полным манифестом архива

Его normal-режим выполняет 45 пар кандидат/рукописный-AP при максимальной разнице каналов два, семь групп исходных пределов и независимую непрерывную геометрию исходных-AP с эпсилоном 1e-6

Положительные рендеры чтения исходных-AP и известные наблюдения вертикальных пиксельных ячеек регистрируются отдельно от непрерывной геометрии; ни равенство пар, ни эти конечные наблюдения не доказывают произвольную геометрию сгенерированных кандидатов или произвольные преобразованные растровые огибающие

Режим конечных AP проверяет шесть сохранённых аффинных и штриховых управлений явного внешнего вида; он не заменяет обычную приёмку, проверки сгенерированных кандидатов или тесты пределов

Сохранённые 45 сгенерированных внешних видов прошли независимую непрерывную геометрию с эпсилоном 1e-6; их 90 закреплённых читальных изображений MuPDF и Poppler также прошли независимую модель полного изображения по всем 3,168,000 пиксельных ячеек с максимальной разницей каналов ноль, без пропущенных изображений и исключённых ячеек

Эта конечная модель выводит ожидаемые глифы, преобразования, отсечение, штрихи и композицию из исходных рукописных внешних видов и контуров шрифтов, используя закреплённое ядро FreeType каждой читалки; она не учит ожидаемые пиксели из наблюдаемых изображений

Исходная максимальная разница каналов остаётся два, а порог чернил — 245; эти прохождения покрывают сохранённый корпус и закреплённые конвейеры, а не произвольные шрифты, все сборки рендереров или доказательство математически наибольшего подобранного размера

Цели FPC Linux и Windows требуют FPC 3.3.1 или новее; Windows FPC использует отдельно проверенную частную сборку зависимостей NoGUI и не запускает настольные читалки

Смежные темы: fallback аннотаций, украшения аннотаций, интервалы rich-run-ов, исходные внешние виды raw-font и внешние виды экземпляра по умолчанию OpenType CFF2