Ordered Rich Text Font Candidate Lists

Rich text może zachować jawną uporządkowaną listę rodzin i użyć tej kolejności przy wyborze prawdziwych dostarczonych programów fontów dla kompletnego grafemu Unicode

Run:= THPDFHeadlessRichTextRun.Default;
Run.Text:= 'A' + WideChar($03A9) + 'B';
Run.FontFamily:= 'Primary';
SetLength(Run.FontFamilyCandidates, 3);
Run.FontFamilyCandidates[0]:= 'Primary';
Run.FontFamilyCandidates[1]:= 'Serif';
Run.FontFamilyCandidates[2]:= 'Sans';
Options:= THPDFHeadlessTextAppearanceOptions.Default;
Options.FallbackFontFamilies:= True;

Dostarcz rzeczywiste programy rodziny i stylu przez istniejące API nazwanych rodzin; etykiety w FontFamilyCandidates nie odkrywają ani nie pobierają fontów

Selection and preservation

Pierwszy dotknięty autorski run dostarcza listę dla całego grafemu, łącznie ze szwami stylów i znakami łączącymi; każdy skonfigurowany kandydat musi pokryć każdą stylizowaną część swoim rzeczywistym programem regular, bold, italic albo bold-italic

Nieznane etykiety i kandydaci z brakującymi programami stylów są pomijani; gdy żaden zadeklarowany kandydat nie pokrywa grafemu, stosują się istniejące reguły fallback wybranej rodziny i dostarczonej tablicy

FontFamily musi pasować do pierwszej skonfigurowanej etykiety w niepustej liście kandydatów, gdy istnieje; pominięcie typowanego JSON FontFamily wybiera to dopasowanie automatycznie

Fallback zmienia wyłącznie przygotowanie wyglądów: autorska wartość zwykła, precyzyjny typowany rozmiar i kolor oraz oryginalna kolejność kandydatów pozostają w V i RV; resolver nigdy nie przepisuje runów wywołującego

Inline XHTML and interchange

Ustaw THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists na True ze skonfigurowanymi FontFamilyNames, aby zachować obsługiwane inline listy font-family oddzielone przecinkami, łącznie z dziedziczeniem i per-property priorytetem important

Importy FDF i XFDF świadome rodzin włączają to zachowanie, gdy ich opcje wyglądów włączają FallbackFontFamilies; ścisłe domyślne dekodowanie zachowuje istniejący wybór pierwszej skonfigurowanej rodziny

Listy zawierają co najwyżej szesnaście etykiet, każdą ograniczoną do 128 jednostek kodowych UTF-16 z poprawnym Unicode, bez kontrolek, otaczających białych znaków, cudzysłowów, backslashy, przecinków ani średników; zduplikowane i nieznane zadeklarowane etykiety zachowują autorską kolejność

Native Linux JSON

{"schemaVersion":1,"type":"forms.fill",
 "fontFamilies":["Primary","Sans","Serif"],"fallbackFontFamilies":true,
 "fields":[{"name":"Input","richTextRuns":[
   {"text":"A\u03a9B","fontFamily":"Primary",
    "fontFamilyCandidates":["Primary","Serif","Sans"]}
 ]}]}

Zadeklarowana kolejność Serif-przed-Sans steruje fallbackiem nawet, gdy operacja konfiguruje Sans przed Serif; istniejący provider Fontconfig dostarcza rzeczywiste nazwane programy pod tymi samymi zagregowanymi limitami fontów i pamięci

Tablice kandydatów typowanych runów wymagają skonfigurowanego fontFamilies i włączonego fallbackFontFamilies; wadliwe tablice albo etykiety, brak pokrycia całego grafemu, wyczerpane budżety i anulowanie zawodzą transakcyjnie przed commitem kontekstu

Zdolność formData.richFontFamilyCandidates i maxFontFamilyCandidates=16 reklamują tę ograniczoną opcję przez niezmienione callbacki V1 i wersje eksportowanych symboli

Udane łańcuchowe wypełnienia formularzy i równoważne importy FDF/XFDF zachowują zacommitowany dokument i snapshot źródła; awarie callbacków wyjścia albo wyniku zachowują poprzedzającą zacommitowaną rewizję

Scope

Ten profil pokrywa dostarczone etykiety kandydatów i obsługiwane deklaracje inline; zadania plikowe Windows i wersjonowane callbacki też zachowują uporządkowany fallback dostarczonych rodzin; zewnętrzne arkusze stylów, dowolny layout CSS, odkrywanie rodzin generycznych i starsze rozszerzenie callbacków handle/font załadowanych zadań pozostają odrębną pracą

Zachowanie fallback · Rekord typowanego runa · Opcje dekodowania · Natywne powiązanie Linux