Фолбэк предоставленных семейств для скалярных полей
Обычные текстовые поля, ячейки 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-вариантами