Unicode-Zeilenumbrüche
HPDFUnicodeLineBreaks implementiert die Unicode-17.0.0-Default-Zeilenumbruchmöglichkeiten mit den eingecheckten Line_Break-, General_Category-, East_Asian_Width- und Extended_Pictographic-Properties
Die portable Implementierung löst kombinierende Sequenzen, Interpunktionskontext, numerische Ausdrücke, Hangul, brahmisehe orthografische Silben, Emoji-Modifikatoren und gepaarte Regionalindikatoren ohne eine Segmentation-DLL auf
Die Funktion liefert die Position vor dem ersten Scalar und nach jedem Scalar, ausgedrückt als nullbasierte UTF-16-Offsets; jede Position ist verboten, erlaubt oder obligatorisch
Das Textende ist obligatorisch, auch bei leerem Input; der Anfang nichtleeren Texts ist verboten, und gepaarte Surrogate haben keine Innenposition
Die Default-Behandlung für Südostasien löst gewöhnliche SA-Zeichen zu AL und SA-kombinierende Marken zu CM auf; Sprachwörterbücher und Silbentrennung sind separate Tailoring-Dienste
HPDFUnicodeLineBreakClass exponiert die rohe oder LB1-aufgelöste Property für einzelne Code Points; THPDFUnicodeLineBreakClass-Namen behalten jede Unicode-17-Property-Abkürzung
Die bestehenden HPDFComputeLineBreaks- und HPDFLineBreakClassOf-Document-APIs konsumieren dieselben vollständigen Tabellen auf Delphi 2009 und später sowie unterstützten FPC-Zielen und bewahren etablierte Enum-Ordinale und das Empty-Input-Verhalten
Missgebildetes UTF-16 und Code-Unit-Budgets außerhalb von eins bis 1048576 werfen EArgumentException; Abbruch wird vor der Allokation, beim Dekodieren und beim Auswerten der Grenzen geprüft
Echtes Rich-Field-Layout
Gebrochene typisierte Rich-Runs konsumieren legale Default-Möglichkeiten, halten Nonbreaking-Space-Gruppen und öffnende Interpunktion zusammen und honorieren CRLF, NEL, LINE SEPARATOR und PARAGRAPH SEPARATOR als explizite Umbrüche
Originale Separatoren bleiben in V und kanonischem RV; Zeilenseparatoren werden aus gemalten Glyphenfragmenten ausgelassen, und überbreite Gruppen nutzen das bestehende Complete-Graphem-Notfall-Wrapping
Unabhängige Fragmente derselben echten Zeile laufen mit gemessenen Advances weiter; legale Umbrüche verlangen keine separate physische Zeile, es sei denn, die Passung wählt sie
Complete paragraph opportunities bewahren legale Gruppen über Stilwechsel hinweg und verschmelzen getrennte CRLF; echte gestylte Advances entscheiden, wann eine ganze passende Gruppe in eine frische Zeile wandert
Cross-Style-Graphem-Notfall-Passung und kontextuelles Shaping, gemischter Absatz-bidi, beliebiges XHTML und sprachspezifisches Tailoring bleiben aktive Integrationsziele
Konformität
HotPDFUnicodeLineBreakTests konsumiert alle 19338 offiziellen Unicode-17-LineBreakTest-Fälle und vergleicht jede veröffentlichte Position; das obligatorische Ende sowie das Missbildung-, Budget- und Abbruchverhalten haben separate Prüfungen
Build-UnicodeLineBreakTables.py --check verifiziert Reproduzierbarkeit und die SHA-256-Pins der drei zusätzlichen UCD-Property-Inputs
Unicode-17-Line-Breaking-Regeln · Boundary function · Returned positions · Rich field integration