Native Rich Text Fields
SetRichTextFieldValueWithAppearance schrijft gesynchroniseerde platte tekst V, canonieke XHTML RV, de RichText-veldvlag en echte appearances voor elke bestaande widget
Elke run levert Unicode-tekst, een fontstijl, een positieve puntegrootte, RGB-kleur, optionele underline of strikeout, paragraafbreuken en left-, center- of right-uitlijning; de vier stijlfonts zijn door de aanroeper geleverde Unicode TrueType-programma's met de bestaande editing- en embedding-checks
Runs gebruiken standaard een 12pt regular zwarte stijl; paragraafuitlijning komt uit diens eerste run en defaultt naar left
De appearance gebruikt echte embedded stijlfonts, glyph-mappings en gemeten woordfragmenten met gedeelde regelbaselines; herhaalde fragmenten delen elk stijlfontprogramma binnen een widget
Expliciete CR-, LF-, CRLF-, NEL-, LINE SEPARATOR- en PARAGRAPH SEPARATOR-breuken en paragraaftransities vragen een multiline-veld; gemeten wrapping, widget-rotaties en clipping gebruiken de echte widget-rechthoek
De getypeerde update kan rich text aanzetten op een plain-text-veld, terwijl password-, file-select- en comb-combinaties vóór mutatie worden geweigerd
Read-only, MaxLen, geauthenticeerde signed-document-policies, versleutelde form-fill-permissions, annulering en object-, font-, glyph- en uitvoerbudgetten gelden nog steeds
Alle rich-updates bereiden V-, RV-, Ff- en AP-overrides voor voordat het document wordt gewijzigd; opgeslagen strings en streams behouden het originele AES-256 R5- of R6-beleid
Stijlarrays, layoutregels en geschilderde fragmenten hebben elk een plafond van 4096 items naast de geconfigureerde documentlimieten; stijlfontbytes worden als aggregaat gerekend
Gewone SetTextFieldValueWithAppearance-aanroepen op een bestaand rich-veld vervangen diens content door de meegeleverde platte stijl en synchroniseren RV; value-only SetTextFieldValue-aanroepen synchroniseren ook RV en behouden NeedAppearances=true
GetRichTextFieldValue leest de echt opgeslagen XHTML-tekststring of UTF-8-tekststream, inclusief geërfde waarden
De eerste run van elke paragraaf kiest diens uitlijning zelfs wanneer die run lege tekst heeft; inline stijlwijzigingen en expliciete regeleindes behouden die paragraafuitlijning
Te brede woorden in gewrapte multiline-velden worden gesplitst op Unicode 17 extended grapheme-grenzen, met behoud van combining-sequenties, supplementary scalars, emoji-sequenties en originele V/RV-tekst; een ondeelbare cluster breder dan het veld blijft intact en wordt geclipt
Rechthoekige en cirkelvormige randen worden geschilderd vóór de content clip, en geselecteerde multiline-rijen krijgen echte blauwe achtergronden met de gemeten ascent, descent en spacing van elke rich-regel
Native 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 is een array van objecten met vereiste text en optionele fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore en alignment; fontStyle accepteert regular, bold, italic of boldItalic
Optionele fontFamilies-arrays kiezen echte benoemde programma's per run via fontFamily, waarbij een array op edit-niveau de array op operation-niveau overschrijft en weggelaten run-labels de eerste family kiezen
Weggelaten run-fontSize gebruikt de veldoperation-fontSize wanneer positief, anders 12; een optionele value moet exact matchen met de platte tekst afgeleid uit de runs, met een carriage return tussen expliciete paragrafen
Gestijlde runs vragen appearance=true; forms.read geeft de echt opgeslagen XHTML terug in richText voor een rich-veld
De ABI behoudt diens bestaande operation-layout en bereidt complete binary- en resultaatuitvoer voor vóór het committen van de nieuwe geladen context; gefaalde writes of annulering behouden het vorige veld
Acceptatie en resterend werk
Tests/Linux/Run-HeadlessRichTextAcceptance.sh en Tests/Linux/HotPDFHeadlessRichTextTests.pas oefenen echte opgeslagen PDF's; Verify-HeadlessRichText.py checkt onafhankelijk XHTML, waarden, vier echte fontprogramma's, glyph-maps, decoratie-paden en zichtbare widget-pixels
Deze API accepteert getypeerde runs en consumeert default Unicode 17-opportunities over complete paragrafen, met behoud van woord-, nonbreaking-space-, punctuatie- en numerieke groepen over stijlwisselingen heen; groepen die in een verse regel passen, verhuizen samen met diens echte gestijlde font-advances
Style group wrapping behoudt ook gedeelde baselines voor gemengde puntegroottes en voegt CRLF samen over stijlnaden heen in zowel echte layout als canonieke XHTML
Grapheme fitting over stijlen heen wijst complete te brede logische clusters toe aan één fysieke regel, met behoud van echte font-, kleur- en groottefragmenten en het bestaande clippinggedrag voor een ondeelbare cluster breder dan de rechthoek
Contextuele joining gebruikt de omringende Unicode-tekst, en elke echte fysieke regel behoudt paragraafrichting terwijl gemengde bidi- en script-items over getypeerde stijlen heen worden geordend
Marks over stijlen heen gebruiken echte GPOS-attachments voor echte base-, ligature- en voorafgaande mark-glyphs, met behoud van elk stijlfont, elke puntgrootte en kleur en zichtbare glyph-overhangs
Rich FDF- en XFDF-uitwisseling decodeert het ondersteunde begrensde XHTML-style-profiel naar echte embedded fonts en opgeslagen appearances
Expliciete directional embeddings, overrides, isolates en paired-bracket-context overleven automatisch wrapping over getypeerde stijlen heen; één gedeelde logische paragraaforder levert onafhankelijke fysieke-regel-herordening en native contextual glyph shaping
Clusters die alleen Unicode-directional controls bevatten behouden de originele logische waarde en selectietekst zonder character spacing te verbruiken; zichtbare clusters en gewone spaties behouden diens geconfigureerde advances
Paragraph-derived line order en cached line reordering behouden complete UTF-16 scalar-grenzen en resetten fysieke-regel-trailing-whitespace zonder het gedeelde paragraph-record te muteren
Named font families leveren expliciete typed-run- en begrensde XHTML-selectie met echte family-fonts, onafhankelijke advances en family-aware formulierimport
Supplied-family fallback kiest complete graphemes over authored stijlnaden heen, en Linux JSON en versioned callbacks binden hetzelfde gedrag aan echte geconfigureerde fontprogramma's
Internal style sheets passen de gedeelde begrensde selector-cascade toe op native rich-waarden en FDF/XFDF-imports; bredere XHTML/CSS, externe style sheets en algemene layout blijven actief werk