Unicode grapheme boundaries
HPDFUnicodeTextBoundary implementeert Unicode 17.0.0 default extended grapheme-clusters met de ingecheckte Grapheme_Cluster_Break-, Indic_Conjunct_Break- en Extended_Pictographic-properties
De portable Pascal-implementatie behandelt combining marks, Hangul, Indische linker-sequenties, emoji ZWJ-sequenties en paren regional indicators zonder een GUI of segmentation DLL te vragen
Offsets tellen UTF-16-code-units vanaf nul en omvatten zowel begin als einde van de tekst; lege tekst geeft de enkele offset nul terug
Invoer moet gepaarde UTF-16-surrogaten bevatten, en de aanroeper levert een positief code-unit-budget tot 1048576 aan; de default is 65535
Annulering wordt gecheckt vóór allocatie en tijdens het consumeren van elke scalar, ook voor lege invoer
Rich field wrapping
Een te breed woord in een gewrapped multiline rich-veld wordt verdeeld op complete extended grapheme-clusters en gemeten met het gekozen font en de spacing
Elk fragment behoudt originele V- en RV-waarden, echte Unicode-mappings en de paragraafuitlijning; een ondeelbare cluster breder dan de rechthoek blijft intact en wordt geclipt
Fragmentbreedtes worden na shaping gecheckt, inclusief joining-vormen die breder worden wanneer apart geshaped; deelbare overlopen worden opnieuw gesplitst op complete clusters
Complex-script schilderen blijft HarfBuzz en FriBidi gebruiken; grapheme-segmentatie levert geen glyph-shaping of paragraaf-bidirectionele layout
Default Unicode line-break opportunities zijn beschikbaar via dezelfde portable unit; woorden wrappen over stijlgrenzen heen en mixed-style paragraaf-bidi blijven aparte actieve doelen
Conformiteit
Draai Tests/Linux/Run-UnicodeGraphemeAcceptance.sh of de Windows portable test-runner met HotPDFUnicodeGraphemeTests en Tests/Linux/resources
De tests consumeren alle 766 officiële Unicode 17 GraphemeBreakTest-cases en vergelijken elke gepubliceerde grens in UTF-16-units
Build-UnicodeTextBoundaryTables.py herbouwt de gecompileerde range-tabellen deterministisch vanuit de bestaande gepinde UCD-data
Unicode 17 text segmentation rules · Boundary function · Rich field behavior