Фолбэк предоставленных семейств для скалярных полей

Обычные текстовые поля, ячейки comb-полей, отображаемые подписи choice-полей, отметки чекбоксов и радиокнопок, маски паролей и нативные подписи pushbutton могут использовать те же явно предоставленные гарнитуры, что и rich text, не меняя свои скалярные метаданные формы

Задайте от одной до шестнадцати различных настроенных меток с их регулярными TrueType-программами и включите FallbackFontFamilies; выбор покрывает целые графемы и не использует установленные системные шрифты

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

Смешанные обычные appearances могут содержать дочерние Forms и несколько фактически встроенных шрифтов, поэтому ориентируйтесь на возвращаемое число объектов, а не на фиксированный appearance из семи объектов

JSON-транспорт Windows и колбэки

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Serif", "Sans"],
  "fallbackFontFamilies": true,
  "fields": [
    {"name": "Plain", "value": "A\u03a9"},
    {"name": "Check", "value": "Yes"}
  ]
}

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

Явный именованный фолбэк пропускает чистое скалярное заполнение через ту же аутентифицированную транзакцию кандидатов, что и смешанные типизированные run-ы; операции только со скалярами запрашивают регулярные начертания кандидатов и возвращают typedRichText=false с scalarFamilyProfile="supplied-regular-fonts-v1"

Скалярные импорты FDF и XFDF используют тот же путь предоставленных семейств для текста, choice-полей, чекбоксов и радиокнопок; подписи pushbutton используют нативный caption-API и не импортируются как скалярные export-state кнопок

Windows-импорты и заполнения скаляров с тем же значением сохраняют действующий контракт value-only no-op и точные зафиксированные байты, включая поля только для чтения; они не сравнивают новую конфигурацию шрифта или цвета с существующим AP, поэтому для явной пересборки appearance используйте нативный family-сеттер

Исходные типизированные rich run-ы сохраняют действующее сравнение стиля и appearance; добавление скалярного фолбэка не квантует типизированные размеры и цвета и не меняет авторский RV

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

Очищенный choice с единственным выбором хранит /V null и пустой массив индексов; явно выбранный пустой export-вариант сохраняет /V () и свой фактический индекс, так что повторные очистки и выборы пустого значения остаются различимыми

Legacy-пустой choice без выбранного индекса и без пустого export-варианта можно распознать как value-only no-op; choice только для чтения с реально выбранным пустым export-вариантом очистить нельзя

Нативный JSON-транспорт Linux и колбэки

Версионированные операции Linux принимают те же упорядоченные опции fontFamilies и fallbackFontFamilies; регулярные программы разрешаются через Fontconfig-окружение операции и передаются в нативные API внешнего вида семейств

Скалярный текст, ячейки comb, подписи choice, отметки чекбоксов и радиокнопок, маски паролей, поля выбора файлов и явные подписи pushbutton получают реальное покрытие целых графем; скалярные импорты FDF/XFDF загружают регулярных кандидатов, не добавляя авторский rich-text-флаг или RV

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

Импорты через колбэки Linux сохраняют точные зафиксированные байты для повторных очисток и no-op-ов с тем же значением; аутентифицированные AES R5/R6, политики P1/P2/P3 и FieldMDP, отмена и сбои публикации сохраняют прежний зафиксированный документ

Запустите Tests/Linux/Run-ScalarFontFallbackChecks.sh LIBRARY FIXTURES FONTS OUTPUT против каждой свежесобранной нативной ABI-библиотеки; Tests/Linux/HeadlessScalarFontFallback.en-us.md описывает настоящие подписанные входы, изолированный каталог из трёх шрифтов и независимые проверки глифов и CMS

Воспроизведение проверок соответствия

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

Сгенерируйте исходные документы из четырёх полей через Tests/Linux/Build-HeadlessTypedFormFixtures.py, затем передайте его mixed.pdf в генераторы скалярных fixtures и fixtures очистки

python Tests/CABI/BuildScalarFixtures.py work/typed/mixed.pdf work/scalar
python Tests/CABI/BuildScalarClearFixtures.py work/scalar/scalar.pdf work/clear

Подайте настоящие регулярные программы с именами primary-0.ttf, DejaVuSerifCondensed.ttf и DejaVuSans.ttf; генератор регрессионных fixtures Tests/Linux/Build-HeadlessRichFontListFixtures.py готовит детерминированное подмножество Primary и все двенадцать реальных программ стилей из предоставленного вызывающим каталога шрифтов DejaVu

Сгенерируйте настоящие документы P1, P2, P3 и FieldMDP с помощью Tests/Linux/Run-HeadlessTypedFormTests-Windows.ps1 и его обязательного каталога сертификатов и ключей; среди его выходов p1-signed.pdf, p2-signed.pdf, p3-signed.pdf и lock-signed.pdf

Tests/CABI/RunScalarClearNative.ps1 -SourceDirectory Lib -OutputDirectory work/native `
  -FontDirectory work/fonts -FixtureDirectory work/scalar `
  -ClearFixtureDirectory work/clear -PolicyDirectory work/signed
Tests/CABI/RunScalarClearABI.ps1 -SourceDirectory Lib -OutputDirectory work/abi `
  -FontDirectory work/fonts -FixtureDirectory work/scalar `
  -ClearFixtureDirectory work/clear -PolicyDirectory work/signed `
  -LegacyFixtureDirectory work/typed -LegacyFontDirectory work/legacy-fonts

Legacy-параметры регрессии берут существующие каталоги fixtures и шрифтов типизированных форм Windows, используемые Run-WindowsTypedFormChecks.ps1; новые скалярные проверки также независимо инспектируют фактически встроенные программы, CID-карты, значения форм и сохранённые подписанные ByteRanges

Windows no-op-ы DLL сохраняют точные зафиксированные байты после успешного завершения обоих колбэков; нативный транзакционный API сохраняет своё действующее поведение публикации подготовленных ревизий, сообщая ноль изменённых полей для семантического no-op

FDF различает пустой массив выбора и выбранную пустую export-строку; существующее соглашение XFDF для пустых значений интерпретируется относительно целевого списка вариантов и не даёт потерь при различении для каждого документа с пустыми export-вариантами

Нативные API

Фолбэк rich run-ов · Windows-транспорт rich-шрифтов