Fallback шрифтов rich-текста по переданным семействам в Windows
Файловые задания Windows и hpdf_document_execute_json_v1 поддерживают опциональный fallback между переданными вызывающим семействами шрифтов для rich-импорта FDF/XFDF и исходных типизированных rich-run; fallback выбирает семейство, покрывающее всю графему, включая части, пересекающие границы rich-стилей
По умолчанию остаётся строгий режим: fallbackFontFamilies равен false, и отсутствие требуемого глифа проваливает операцию как обычно; передача списка не выбирает молча установленные системные шрифты
Типизированный запрос
{
"schemaVersion": 1,
"type": "forms.fill",
"fontFamilies": ["Primary", "Sans", "Serif"],
"fallbackFontFamilies": true,
"fields": [{"name": "Input", "richTextRuns": [
{"text": "A\u03a9a\u0301", "fontStyle": "regular",
"fontFamilyCandidates": ["Unavailable", "Primary", "Serif", "Sans"]}
]}]
}
fontFamilies содержит от одного до шестнадцати различных сконфигурированных меток; ASCII-буквы сравниваются без учёта регистра, а прочие кодовые точки Unicode — точно; полевые fontFamilies и fallbackFontFamilies переопределяют дефолты операции для forms.fill
Типизированный run может задать от одного до шестнадцати упорядоченных fontFamilyCandidates, когда включён fallback по сконфигурированным семействам; неизвестные имена остаются в авторской метаданных и пропускаются при разрешении переданных программ; если fontFamily отсутствует, первым сконфигурированным объявленным кандидатом становится семейство run
Объявленный список кандидатов управляет предпочтением до порядка сконфигурированных семейств; в этом примере шрифт Primary без «Омеги» выберет Serif раньше Sans, когда обе переданные альтернативы покрывают всю графему
Импорт rich XML
Для forms.import используйте свойства fontFamilies и fallbackFontFamilies уровня операции; ограниченный декодер XHTML сохраняет каждый встроенный список font-family CSS, а реальный сборщик appearance применяет этот порядок к переданным программам шрифтов
<span style="font-family:Primary,Serif,Sans;font-weight:bold">AΩá</span>
И RV-строки FDF, и value-richtext XFDF идут этим путём; существующий профиль inline-xhtml-font-families-v1 не меняется, а фактическое поведение fallback сообщается отдельно
Реальные байты шрифтов
Существующий колбэк шрифтов THPDFCABIFormDataOperationV1 получает каждую каноническую сконфигурированную метку семейства и идентификатор стиля regular, bold, italic или boldItalic; он возвращает исходную ограниченную таблицу read-IO, и его байты копируются в собственное хранилище
Файловые задания читают те же программы семейств/стилей из своего существующего объекта fonts; для каждого используемого rich-стиля привязка загружает сконфигурированные программы-кандидаты до подготовки транзакции; совпадающие ресурсы разделяются между типизированными полями
Раскладки V1 IO и операции и существующие экспортируемые символы не меняются; агрегированные бюджеты ресурсов, байтов шрифтов, памяти, полей, объектов, результата и вывода продолжают действовать; сбои колбэков остаются «липкими», а контрольные точки отмены покрывают разбор, загрузку, подготовку и публикацию
Транзакции и лимиты
Аутентификация AES, сохранение подписанных ревизий, DocMDP, блокировки полей и проверки read-only используют существующую аутентифицированную транзакцию; rich-значения, стили, шрифты и семантика appearance с тем же вводом могут дать побайтово идентичный no-op, включая read-only поля
Колбэки PDF и JSON оба должны завершиться успехом до смены текущего контекста; после любого ненулевого статуса отбрасывайте выпущенные байты кандидата; файловые задания подготавливают полного кандидата перед заменой цели
formDataExchange.suppliedFamilyFallback сообщает default=false, richOnly=true, wholeGrapheme=true, fontFamilyCandidates=true, maxCandidates=16 и candidateOrder=declared-before-configured
Эта функция применяется к rich-содержимому; fallback для обычных скаляров, меток выбора и подписей кнопок остаётся отдельной возможностью; например, подмножественный первый шрифт без глифа подписи checkbox всё ещё требует подходящего скалярного шрифта или будущей поддержки скалярного fallback
Прямое rich-заполнение загруженных заданий, более старое расширение дескриптора задания/колбэка шрифтов, произвольная CSS-раскладка, внешние таблицы стилей и дальнейший обмен FDF/XFDF для аннотаций, файлов, действий или инкрементальных обновлений остаются отдельной работой
Связанные темы
Windows-заполнение форм original typed rich, Обмен FDF/XFDF в Windows, Версионированный транспорт шрифтов, Нативные переданные семейства