Native Rich Text Fields

SetRichTextFieldValueWithAppearance zapíše synchronizovaný prostý text V, kanonické XHTML RV, příznak pole RichText i skutečná appearance pro každý existující widget

Každý run dodá Unicode text, styl písma, kladnou velikost v bodech, barvu RGB, volitelné underline či strikeout, konce odstavců i zarovnání vlevo, na střed či vpravo; čtyři style písma jsou Unicode TrueType programy dodané volajícím se stávajícími kontrolami editace i vkládání

Runy použijí default styl 12pt regular černě; zarovnání odstavce pochází z jeho prvního runu a defaultuje na vlevo

Appearance použije skutečně vložená style písma, glyfová mapování i naměřené fragmenty slov se sdílenými řádkovými baselines; opakované fragmenty sdílejí každý style font program uvnitř widgetu

Explicitní zlomy CR, LF, CRLF, NEL, LINE SEPARATOR i PARAGRAPH SEPARATOR a přechody odstavců vyžadují multiline pole; naměřené zalomení, rotace widgetů i ořez použijí skutečný obdélník widgetu

Typovaná aktualizace umí zapnout rich text na prostém textovém poli, zatímco kombinace password, file-select a comb se odmítnou, dřív než mutace

Read-only, MaxLen, autentizované politiky podepsaných dokumentů, šifrovaná oprávnění pro vyplňování formulářů, zrušení i rozpočty objektů, písem, glyfů i výstupu pořád platí

Všechny rich aktualizace připraví override V, RV, Ff a AP, dřív než změní dokument; uložené řetězce i streamy si uchovají původní politiku AES-256 R5 či R6

Style pole, layout řádky i malované fragmenty mají každý strop 4096 položek, vedle nakonfigurovaných limitů dokumentu; bajty style písem se účtují agregátně

Běžná volání SetTextFieldValueWithAppearance na existujícím rich poli nahradí jeho obsah dodaným prostým stylem a synchronizují RV; volání SetTextFieldValue jen s hodnotou taky synchronizuje RV a ponechá NeedAppearances=true

GetRichTextFieldValue přečte skutečně uložený textový řetězec XHTML či UTF-8 textový stream, tedy i zděděné hodnoty

První run každého odstavce vybere jeho zarovnání, i když ten run má prázdný text; inline změny stylů i explicitní konce řádků to zarovnání odstavce zachovají

Příliš široká slova v zalomených multiline polích se dělí na hranicích rozšířených grafémů Unicode 17, se zachováním kombinujících sekvencí, supplementárních skalárů, emoji sekvencí i původního textu V/RV; nedělitelný cluster širší než pole zůstane celý a ořeže se

Obdélníková i kruhová ohraničení se malují, dřív než clip obsahu, a vybrané multiline řádky dostanou skutečná modrá pozadí podle naměřených ascent, descent i rozestupu každého rich řádku

Nativní JSON ABI

{"schemaVersion":1,"type":"forms.fill","fields":[
  {"name":"Input","fontFamily":"DejaVu Sans Mono","richTextRuns":[
    {"text":"Regular Unicode text "},
    {"text":"Bold red text","fontStyle":"bold","fontSize":20,"color":[1,0,0]},
    {"text":"Next paragraph","fontStyle":"italic","paragraphBreakBefore":true,
     "alignment":"center","underline":true}
  ]}
]}

richTextRuns je pole objektů s povinným text i volitelnými fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore a alignment; fontStyle přijímá regular, bold, italic či boldItalic

Volitelná pole fontFamilies vyberou skutečné pojmenované programy po runech přes fontFamily, přičemž pole na úrovni editace přebije pole na úrovni operace a vynechané runové popisky vyberou první rodinu

Vynechaný runový fontSize použije fontSize operace pole, když je kladné, jinak 12; volitelná hodnota se musí přesně shodovat s prostým textem odvozeným z runů, s carriage return mezi explicitními odstavci

Stylované runy vyžadují appearance=true; forms.read vrátí skutečně uložené XHTML v richText pro rich pole

ABI si uchovává stávající rozložení operace a připraví kompletní binární i výsledkový výstup, dřív než zapíše nový načtený kontext; neúspěšné zápisy či zrušení zachovají předchozí pole

Akceptace a zbývající práce

Tests/Linux/Run-HeadlessRichTextAcceptance.sh a Tests/Linux/HotPDFHeadlessRichTextTests.pas zkoušejí skutečně uložená PDF; Verify-HeadlessRichText.py nezávisle kontroluje XHTML, hodnoty, čtyři skutečné font programy, glyfové mapy, dekorativní cesty i viditelné pixely widgetů

Toto API přijímá typované runy a konzumuje výchozí příležitosti Unicode 17 nad kompletními odstavci, se zachováním skupin slov, nezlomitelných mezer, interpunkce i čísel napříč změnami stylů; skupiny pasující na čerstvý řádek se přesunou pohromadě podle skutečných advanců jejich stylovaných písem

Zalomení style skupin taky uchovává sdílené baselines smíšených velikostí v bodech a slepuje CRLF napříč švy stylů jak ve skutečném layoutu, tak v kanonickém XHTML

Grafémové fitování napříč styly přiřadí kompletní příliš široké logické clustery jednomu fyzickému řádku, se zachováním skutečných fragmentů písma, barvy a velikosti i stávajícího chování ořezu pro nedělitelný cluster širší než obdélník

Kontextové spojování použije okolní Unicode text a každý skutečný fyzický řádek si uchová směr odstavce, zatímco uspořádá smíšené bidi i skriptové položky napříč typovanými styly

Značky napříč styly použijí skutečné přílohy GPOS pro skutečné základní, ligaturové i předcházející značkové glyfy, se zachováním písma, velikosti a barvy každého stylu i viditelných glyfových přesahů

Rich výměna FDF a XFDF dekóduje podporovaný ohraničený XHTML style profil do skutečně vložených písem i uložených appearance

Explicitní směrové embeddingy, override, izoláty i kontext párových závorek přežijí automatické zalomení napříč typovanými styly; jedno sdílené logické pořadí odstavce dodá nezávislé přeřazení fyzických řádků i nativní kontextové glyfové shapeování

Clustery obsahující jen Unicode směrové řídicí znaky zachovají původní logickou hodnotu i text výběru, aniž by konzumovaly character spacing; viditelné clustery i běžné mezery si uchovají své nakonfigurované advancy

Line pořadí odvozené z odstavce a cacheované přeřazení řádků zachovávají kompletní UTF-16 skalární hranice a resetují závěrečné bílé znaky fyzických řádků, aniž by mutovaly sdílený záznam odstavce

Pojmenované font rodiny dodávají explicitní typované runové i ohraničené XHTML výběry se skutečnými rodinnými písmy, nezávislými advancy i form importem vnímajícím rodiny

Fallback dodaných rodin vybírá kompletní grafémy napříč autorskými švy stylů a Linux JSON a verzované callbacky bindují totéž chování na skutečné nakonfigurované font programy

Interní styly aplikují sdílenou ohraničenou selektorovou kaskádu na nativní rich hodnoty i importy FDF/XFDF; širší XHTML/CSS, externí styly i obecný layout zůstávají aktivní prací

Chování nativních rich-text polí · API dokumentu