Native rich text-fält

SetRichTextFieldValueWithAppearance skriver synkroniserad klartext-V, kanonisk XHTML-RV, RichText-fältflaggan och verkliga appearances för varje befintlig widget

Varje run anger Unicode-text, en teckenstil, en positiv punktstorlek, RGB-färg, valfri understrykning eller genomstrykning, styckebrytningar samt vänster-, center- eller högerjustering; de fyra stilateckensnitten är av anroparen tillhandahållna Unicode TrueType-program med de befintliga kontrollerna för redigering och inbäddning

Runs använder en rak svart stil om 12 punkter som standard; styckets justering kommer från dess första run och blir vänsterjusterad som standard

Utseendet använder verkliga inbäddade stilateckensnitt, glyfmappningar och uppmätta ordfragment med gemensamma radbaslinjer; upprepade fragment delar varje stils teckensnittsprogram inom en widget

Explicita CR-, LF-, CRLF-, NEL-, LINE SEPARATOR- och PARAGRAPH SEPARATOR-brytningar samt styckesövergångar kräver ett flerradigt fält; uppmätt radbrytning, widgetrotationer och klippning använder widgetens verkliga rektangel

Den inskrivna uppdateringen kan aktivera rich text på ett vanligt textfält, medan kombinationer av password, file-select och comb avvisas innan dokumentet ändras

Read-only, MaxLen, policyn för autentiserade signerade dokument, behörigheter för krypterad ifyllning, avbrott samt budgeter för objekt, teckensnitt, glyfer och utdata gäller fortfarande

Alla rich-uppdateringar förbereder V-, RV-, Ff- och AP-åsidosättningar innan dokumentet ändras; sparade strängar och strömmar behåller den ursprungliga AES-256 R5- eller R6-policyn

Stilarrayer, layoutrader och ritade fragment har ett tak på 4096 poster var, utöver de konfigurerade dokumentgränserna; stilens teckensnittsbyte debiteras samlat

Vanliga SetTextFieldValueWithAppearance-anrop på ett befintligt rich-fält ersätter dess innehåll med den medföljande enkla stilen och synkroniserar RV; SetTextFieldValue-anrop med enbart värde synkroniserar också RV och behåller NeedAppearances=true

GetRichTextFieldValue läser den verkliga lagrade XHTML-textsträngen eller UTF-8-textströmmen, inklusive ärvda värden

Varje styckes första run väljer dess justering även när run:en har tom text; inline-stiländringar och explicita radbrytningar behåller styckets justering

För breda ord i radbrutna flerradiga fält delas vid Unicode 17:s utökade grafemgränser, med kombinerande sekvenser, tilläggsskalärer, emoji-sekvenser och ursprunglig V/RV-text bevarade; ett odelbart kluster som är bredare än fältet lämnas intakt och klipps

Rektangel- och cirkelramar ritas före innehållsklippningen, och valda flerradiga rader får verkliga blå bakgrunder med hjälp av respektive rich-rads uppmätta ascent, descent och radavstånd

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 är en array av objekt med obligatoriskt text och valfria fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore och alignment; fontStyle accepterar regular, bold, italic eller boldItalic

Valfria fontFamilies-arrayer väljer verkliga namngivna program per run via fontFamily, där en array på redigeringsnivå åsidosätter arrayen på operationsnivå och utelämnade run-etiketter väljer första familjen

Utelämnad run-fontSize använder fältoperationens fontSize när den är positiv, annars 12; ett valfritt värde måste exakt matcha klartexten som härleds ur runs, med vagnretur mellan explicita stycken

Stilade runs kräver appearance=true; forms.read returnerar den verkliga lagrade XHTML:en i richText för ett rich-fält

ABI:n behåller sin befintliga operationslayout och förbereder komplett binär- och resultatutdata innan den nya laddade kontexten verkställs; misslyckade skrivningar eller avbrott bevarar det tidigare fältet

Acceptans och återstående arbete

Tests/Linux/Run-HeadlessRichTextAcceptance.sh och Tests/Linux/HotPDFHeadlessRichTextTests.pas kör mot verkliga sparade PDF-filer; Verify-HeadlessRichText.py kontrollerar oberoende XHTML, värden, fyra riktiga teckensnittsprogram, glyfkartor, dekorationssökvägar och synliga widgetpixlar

API:t accepterar typade runs och använder Unicode 17:s standardbrytningspunkter över hela stycken, med ord-, hårda blankstags-, skiljetecken- och siffergrupper bevarade över stilbyten; grupper som ryms på en ny rad flyttas tillsammans med sina verkliga stilade teckenbredder

Radbrytning i stilgrupper behåller också gemensamma baslinjer för blandade punktstorlekar och slår ihop CRLF över stilgränser i både verklig layout och kanonisk XHTML

Grafempassning över stilar placerar hela för breda logiska kluster på en fysisk rad, bevarar verkliga teckensnitts-, färg- och storleksfragment samt det befintliga klippningsbeteendet för ett odelbart kluster som är bredare än rektangeln

Kontextuell sammanfogning använder den omgivande Unicode-texten, och varje verklig fysisk rad behåller styckets riktning när blandade bidi- och skriptelement ordnas över typade stilar

Märken över stilar använder äkta GPOS-fästningar för verkliga bas-, ligatur- och föregående märkesglyfer, med varje stils teckensnitt, punktstorlek och färg samt synliga glyföverhäng bevarade

Rich FDF- och XFDF-utbyte avkodar den stödda avgränsade XHTML-stilprofilen till verkliga inbäddade teckensnitt och sparade appearances

Explicita riktningsinbäddningar, overrides, isolates och parade hakparenteskontexter överlever automatisk radbrytning över typade stilar; en gemensam logisk styckeordning ger oberoende omordning av fysiska rader och native kontextuell glyfformning

Kluster som bara innehåller Unicode-riktningstyrtecken bevarar det ursprungliga logiska värdet och urvalstexten utan att förbruka teckenavstånd; synliga kluster och vanliga blanksteg behåller sina konfigurerade bredder

Styckehärledd radordning och cachad radomordning bevarar fullständiga UTF-16-skalärgränser och nollställer avslutande blanksteg på fysiska rader utan att ändra den gemensamma styckeposten

Namngivna teckensnittsfamiljer ger explicit val av typade runs och avgränsad XHTML med riktiga familjeteckensnitt, oberoende bredder och familjemedveten formulärimport

Godtycklig XHTML och CSS, per-glyf-fallback, formatmallar och allmän layout är fortfarande pågående arbete

Interna stilmallar tillämpar den gemensamma avgränsade selektorkaskaden på nativa rich-värden och FDF/XFDF-importer

Beteende för native rich text-fält · Dokument-API