Native Rich-Text-Felder
SetRichTextFieldValueWithAppearance schreibt synchronisierten Klartext V, kanonisches XHTML RV, das RichText-Feldflag und echte Appearances für jedes vorhandene Widget
Jeder Run liefert Unicode-Text, einen Schriftstil, eine positive Punktgröße, RGB-Farbe, optionalen Unterstreich- oder Durchstreif-Schmuck, Absatzumbrüche und links-, mittel- oder rechtsbündige Ausrichtung; die vier Stilschriften sind Unicode-TrueType-Programme des Aufrufers mit den vorhandenen Editing- und Einbettungsprüfungen
Runs verwenden standardmäßig einen 12pt-Regular-Stil in Schwarz; die Absatzausrichtung kommt vom ersten Run des Absatzes und fällt auf links zurück
Die Appearance nutzt echte eingebettete Stilschriften, Glyphmappings und gemessene Wortfragmente mit gemeinsamen Zeilen-Baselines; wiederholte Fragmente teilen sich innerhalb eines Widgets jeweils das Stilfontprogramm
Explizite CR-, LF-, CRLF-, NEL-, LINE-SEPARATOR- und PARAGRAPH-SEPARATOR-Umbrüche sowie Absatzübergänge brauchen ein mehrzeiliges Feld; gemessener Umbruch, Widget-Rotationen und Clipping verwenden das tatsächliche Widgetrechteck
Das getippte Update kann Rich Text auf einem einfachen Textfeld einschalten, während Password-, File-Select- und Comb-Kombinationen vor der Mutation abgelehnt werden
Read-only, MaxLen, authentifizierte Richtlinien für signierte Dokumente, verschlüsselte Formularfüll-Berechtigungen, Abbruch sowie Objekt-, Schrift-, Glyph- und Ausgabenbudgets gelten weiterhin
Alle Rich-Updates bereiten V-, RV-, Ff- und AP-Overrides vor, bevor das Dokument geändert wird; gespeicherte Strings und Streams behalten die ursprüngliche AES-256-R5- oder -R6-Policy
Stilarrays, Layoutzeilen und gezeichnete Fragmente haben jeweils eine Obergrenze von 4096 Elementen zusätzlich zu den konfigurierten Dokumentlimits; Stilfont-Bytes werden als Sammelposten verrechnet
Gewöhnliche SetTextFieldValueWithAppearance-Aufrufe auf einem vorhandenen Rich-Feld ersetzen seinen Inhalt durch den gelieferten schlichten Stil und synchronisieren RV; reine SetTextFieldValue-Wertaufrufe synchronisieren RV ebenfalls und behalten NeedAppearances=true
GetRichTextFieldValue liest den tatsächlich gespeicherten XHTML-Textstring oder UTF-8-Textstream, einschließlich geerbter Werte
Der erste Run jedes Absatzes wählt dessen Ausrichtung, selbst wenn dieser Run leeren Text hat; Inline-Stilwechsel und explizite Zeilenumbrüche bewahren diese Absatzausrichtung
Zu breite Wörter in umbrochenen mehrzeiligen Feldern werden an Extended-Grapheme-Grenzen von Unicode 17 geteilt, unter Bewahrung von Kombinationssequenzen, ergänzenden Skalaren, Emoji-Sequenzen und des ursprünglichen V/RV-Texts; ein unteilbares Cluster, das breiter als das Feld ist, bleibt intakt und wird abgeschnitten
Rechteck- und Kreisrahmen werden vor dem Content-Clip gezeichnet, und ausgewählte mehrzeilige Zeilen bekommen echte blaue Hintergründe mit gemessenem Ascent, Descent und Abstand jeder Rich-Zeile
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 ist ein Array von Objekten mit erforderlichem text und optionalem fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore und alignment; fontStyle akzeptiert regular, bold, italic oder boldItalic
Optionale fontFamilies-Arrays wählen über fontFamily echte benannte Programme pro Run, wobei ein Array auf Editing-Ebene das Array auf Operationsebene überschreibt und fehlende Run-Bezeichnungen die erste Familie wählen
Eine weggelassene run-fontSize verwendet die fontSize der Feldoperation, wenn diese positiv ist, sonst 12; ein optionaler value muss exakt dem aus den Runs abgeleiteten Klartext entsprechen, mit Carriage Return zwischen expliziten Absätzen
Formatierte Runs verlangen appearance=true; forms.read liefert das tatsächlich gespeicherte XHTML in richText für ein Rich-Feld
Die ABI behält ihr vorhandenes Operationslayout bei und bereitet die vollständige Binär- und Ergebnisausgabe vor, bevor der neue geladene Kontext gecommitted wird; fehlgeschlagene Schreibvorgänge oder Abbruch bewahren das vorherige Feld
Abnahme und offene Arbeit
Tests/Linux/Run-HeadlessRichTextAcceptance.sh und Tests/Linux/HotPDFHeadlessRichTextTests.pas üben echte gespeicherte PDFs aus; Verify-HeadlessRichText.py prüft unabhängig XHTML, Werte, vier echte Schriftprogramme, Glyphmaps, Dekorationspfade und sichtbare Widgetpixel
Diese API akzeptiert Typed Runs und nutzt die Unicode-17-Defaults über ganze Absätze hinweg, unter Bewahrung von Wort-, geschützten-Leerzeichen-, Satzzeichen- und Zahlengruppen über Stilwechsel hinweg; Gruppen, die auf eine frische Zeile passen, ziehen gemeinsam um und verwenden dabei ihre tatsächlichen formatierten Schriftvorschübe
Stilgruppen-Umbruch bewahrt auch gemeinsame Baselines bei gemischten Punktgrößen und verschmilzt CRLF über Stilgrenzen hinweg, sowohl im tatsächlichen Layout als auch im kanonischen XHTML
Graphemumbruch über Stile hinweg ordnet komplette zu breite logische Cluster einer physischen Zeile zu, behält echte Font-, Farb- und Größenfragmente bei und übernimmt das vorhandene Clipping-Verhalten für ein unteilbares Cluster, das breiter als das Rechteck ist
Kontextuelle Verbindung nutzt den umgebenden Unicode-Text, und jede tatsächliche physische Zeile behält die Absatzrichtung bei, während gemischte Bidi- und Skript-Elemente über getippte Stile hinweg geordnet werden
Marks über Stile hinweg nutzen echte GPOS-Anbindungen für tatsächliche Basis-, Ligatur- und vorausgehende Mark-Glyphen, unter Bewahrung des jeweiligen Stilfonts, der Punktgröße und Farbe sowie sichtbarer Glyphenüberhänge
Rich-FDF- und XFDF-Austausch dekodiert das unterstützte begrenzte XHTML-Stilprofil in echte eingebettete Schriften und gespeicherte Appearances
Explizite richtungssetzende Embeddings, Overrides, Isolates und Paired-Bracket-Kontext überleben den automatischen Umbruch über getippte Stile hinweg; eine gemeinsame logische Absatzreihenfolge liefert unabhängiges Neuanordnen physischer Zeilen und native kontextuelle Glyphenformung
Cluster, die nur Unicode-Richtungssteuerzeichen enthalten, bewahren den ursprünglichen logischen Wert und den Auswahltext, ohne Zeichenabstand zu verbrauchen; sichtbare Cluster und gewöhnliche Leerzeichen behalten ihre konfigurierten Vorschübe
Aus Absätzen abgeleitete Zeilenordnung und gecachtes Zeilenumordnen bewahren vollständige UTF-16-Scalar-Grenzen und setzen nachgestellten Leerraum physischer Zeilen zurück, ohne den gemeinsamen Absatzrecord zu verändern
Benannte Fontfamilien bieten explizite Typed-Run- und begrenzte XHTML-Auswahl mit echten Familienfonts, unabhängigen Vorschüben und familienbewusstem Formularimport
Interne Style-Sheets wenden die gemeinsame begrenzte Selektor-Kaskade auf native Rich-Werte und FDF/XFDF-Importe an; breiteres XHTML/CSS, externe Style-Sheets und allgemeines Layout bleiben in Arbeit
Beliebiges XHTML und CSS, Per-Glyph-Fallback, Style Sheets und allgemeines Layout bleiben in Arbeit