Supplied-Family-Fallback für skalare Felder
Gewöhnliche Textfelder, Comb-Zellen, Choice-Display-Labels, Checkbox- und Radio-Marks, Passwort-Masken und native Pushbutton-Captions können dieselben explizit gelieferten Font-Families wie Rich Text nutzen, ohne ihre skalaren Form-Metadaten zu ändern
Ein bis sechzehn verschiedene konfigurierte Labels und deren reguläre TrueType-Programme liefern, dann FallbackFontFamilies aktivieren; die Selection deckt vollständige Grapheme ab und nutzt keine installierten Systemfonts
Bestehendes Plain-Wrapping, Spacing, Shaping, Bidi, Clipping, Rotation, automatische Größenbestimmung, Selected-List-Rows und Export-State-Verhalten bleiben aktiv; gemischte Comb-Felder behalten die originalen skalaren Zellbeschränkungen und akzeptieren kein komplexes Shaping, das das originale Comb-Profil ablehnt
Gemischte Plain-Appearances können Kind-Forms und mehrere echte eingebettete Fonts enthalten, also die zurückgegebene Objektanzahl konsumieren, statt eine feste Sieben-Objekt-Appearance anzunehmen
Windows-JSON- und Callback-Transport
{
"schemaVersion": 1,
"type": "forms.fill",
"fontFamilies": ["Primary", "Serif", "Sans"],
"fallbackFontFamilies": true,
"fields": [
{"name": "Plain", "value": "A\u03a9"},
{"name": "Check", "value": "Yes"}
]
}
Für Windows-Jobs die reguläre Font-Datei jeder konfigurierten Family über das bestehende fonts-Objekt liefern; für hpdf_document_execute_json_v1 das echte reguläre Programm über den bestehenden versionierten Font-Callback und die IO-Erweiterung zurückgeben
Expliziter Named-Fallback leitet einen rein skalaren Fill durch dieselbe authentifizierte Kandidaten-Transaktion wie gemischte typed Runs; nur-skalare Operationen fordern reguläre Kandidaten-Faces an und liefern typedRichText=false mit scalarFamilyProfile="supplied-regular-fonts-v1"
FDF- und XFDF-skalare Importe nutzen denselben Supplied-Family-Pfad für Text, Choices, Checkboxes und Radio-Buttons; Pushbutton-Captions nutzen die native Caption-API und werden nicht als skalare Button-Export-States importiert
Windows-skulare Same-Value-Importe und Fills behalten ihren bestehenden Value-only-No-op-Kontrakt und bewahren exakte committed Bytes, einschließlich schreibgeschützter Felder; sie vergleichen keine neue Font- oder Farb-Konfiguration mit der bestehenden AP, also einen nativen Family-Setter für einen expliziten Appearance-Rebuild verwenden
Originale typed Rich-Runs behalten ihren bestehenden Style- und Appearance-Vergleich; skalare Fallback-Ergänzung quantisiert keine typed Größen oder Farben und ändert authored RV nicht
PDF- und Ergebnis-Callbacks müssen beide erfolgreich sein, bevor ein Kontext-Update sichtbar wird; sticky Font- und IO-Fehler, Abbruch, Budgets, Verschlüsselungs-Authentifizierung und Signatur-Policies bewahren den committed Graphen und die atomare Dateiausgabe
Ein geleertes Single-Selection-Choice speichert /V null und ein leeres Index-Array; eine explizit ausgewählte leere Export-Option behält /V () und ihren tatsächlichen Index, sodass wiederholte Löschungen und Leerwert-Auswahlen unterscheidbar bleiben
Ein Legacy-Blank-Choice ohne ausgewählten Index und ohne leere Export-Option kann als Value-only-No-op erkannt werden; ein schreibgeschütztes Choice mit einer echt ausgewählten leeren Export-Option kann nicht gelöscht werden
Native Linux-JSON- und Callback-Transporte
Linux-versionierte Operationen akzeptieren dieselben geordneten fontFamilies- und fallbackFontFamilies-Optionen; reguläre Programme werden über die Fontconfig-Umgebung der Operation aufgelöst und an die nativen Family-Appearance-APIs geliefert
Skalarer Text, Comb-Zellen, Choice-Labels, Checkbox- und Radio-Marks, Passwort-Masken, File-Select-Felder und explizite Pushbutton-Captions nutzen echte Complete-Grapheme-Abdeckung; skalare FDF/XFDF-Importe laden reguläre Kandidaten, ohne ein authored Rich-Text-Flag oder RV hinzuzufügen
Rich-only-Importe behalten ihre tatsächliche erforderliche Style-Vereinigung, statt die reguläre Face jeder Family anzufordern, während gemischte skalare und Rich-Importe die von den Skalarfeldern benötigten regulären Kandidaten ergänzen
Linux-Callback-Importe bewahren exakte committed Bytes bei wiederholten Löschungen und Same-Value-No-ops; authentifizierte AES-R5/R6-, P1/P2/P3- und FieldMDP-Policies, Abbruch und Veröffentlichungs-Fehler behalten das zuvor committed Dokument
Tests/Linux/Run-ScalarFontFallbackChecks.sh LIBRARY FIXTURES FONTS OUTPUT gegen jede frisch gebaute native ABI-Bibliothek ausführen; Tests/Linux/HeadlessScalarFontFallback.en-us.md beschreibt die echten signierten Inputs, den isolierten Drei-Font-Katalog und die unabhängigen Glyph-/CMS-Prüfungen
Konformitätsprüfungen reproduzieren
Die öffentlichen Windows-Runner akzeptieren explizite Source-, Output-, Font-, Scalar-Fixture-, Clear-Fixture- und echte Signed-Policy-Verzeichnisse; sie konsumieren nie stillschweigend ein früheres privates Proof-Verzeichnis
Die initialen Vier-Feld-Dokumente mit Tests/Linux/Build-HeadlessTypedFormFixtures.py erzeugen, dann dessen mixed.pdf an die Scalar- und Clear-Fixture-Produzenten übergeben
python Tests/CABI/BuildScalarFixtures.py work/typed/mixed.pdf work/scalar
python Tests/CABI/BuildScalarClearFixtures.py work/scalar/scalar.pdf work/clear
Echte reguläre Programme namens primary-0.ttf, DejaVuSerifCondensed.ttf und DejaVuSans.ttf liefern; der Regression-Fixture-Produzent Tests/Linux/Build-HeadlessRichFontListFixtures.py bereitet die deterministische Primary-Teilmenge und alle zwölf echten Style-Programme aus einem vom Aufrufer gelieferten DejaVu-Font-Verzeichnis vor
Echte P1-, P2-, P3- und FieldMDP-Dokumente mit Tests/Linux/Run-HeadlessTypedFormTests-Windows.ps1 und dessen erforderlichem Zertifikats-/Key-Identitätsverzeichnis erzeugen; seine Outputs umfassen p1-signed.pdf, p2-signed.pdf, p3-signed.pdf und 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
Die Legacy-Regressionsparameter übernehmen das bestehende Windows-Typed-Form-Fixture- und Font-Verzeichnis von Run-WindowsTypedFormChecks.ps1; die neuen skalaren Checks inspizieren zusätzlich unabhängig echte eingebettete Programme, CID-Maps, Form-Werte und behaltene signierte ByteRanges
Windows-DLL-No-ops bewahren exakte committed Bytes, nachdem beide Callbacks erfolgreich waren; native gemischte Transaktionen veröffentlichen ebenfalls die exakten Quell-Bytes, wenn alle Updates unverändert sind und der Graph keine ausstehenden Editierungen hat, während ausstehende Graph-Editierungen in der vorbereiteten Revision bleiben, selbst wenn die Feld-Update-Anzahl null ist
FDF unterscheidet ein leeres Selection-Array von einem ausgewählten leeren Export-String; der verlustfreie XFDF-Choice-Austausch nutzt die namespace-qualifizierte empty-values-Erweiterung für eine explizite Löschung, während ein unmarkierter leerer Wert seine bestehende Ziel-Options-Interpretation behält