Unicode-grapheme-gränser
HPDFUnicodeTextBoundary implementerar Unicode 17.0.0:s förvalda utökade grapheme-kluster med de incheckade egenskaperna Grapheme_Cluster_Break, Indic_Conjunct_Break och Extended_Pictographic
Den portabla Pascal-implementationen hanterar kombinerande tecken, Hangul, indiska länkarsekvenser, emoji-ZWJ-sekvenser och parade regionala indikatorer utan att kräva GUI eller en segmenterings-DLL
Offset räknar UTF-16-kodenheter från noll och inkluderar både textens början och slut; tom text returnerar den enskilda offseten noll
Indata måste innehålla parade UTF-16-surrogat, och anroparen tillhandahåller en positiv kodenhetsbudget upp till 1048576; standardvärdet är 65535
Avbrott kontrolleras före allokering och medan varje skalär förbrukas, även för tom indata
Radbyte i rich fields
Ett för brett ord i ett flerradigt radbytbart rich field delas vid kompletta utökade grapheme-kluster och mäts med valt typsnitt och avstånd
Varje fragment bevarar ursprungliga V- och RV-värden, faktiska Unicode-mappningar och styckejusteringen; ett odelbart kluster som är bredare än rektangeln förblir intakt och klipps
Fragmentbredder kontrolleras efter shaping, inklusive fogande former som blir bredare när de formas var för sig; delbara spill delas igen vid kompletta kluster
Målning av komplexa skript fortsätter att använda HarfBuzz och FriBidi; grapheme-segmentering tillhandahåller inte glyph-shaping eller dubbelriktad styckelayout
Förvalda Unicode-radbrytningsmöjligheter finns tillgängliga genom samma portabla unit; att bryta ord över stilgränser och bidi i blandade stycken förblir separata aktiva mål
Konformans
Kör Tests/Linux/Run-UnicodeGraphemeAcceptance.sh eller den portabla Windows-testköraren med HotPDFUnicodeGraphemeTests och Tests/Linux/resources
Testerna förbrukar samtliga 766 officiella Unicode 17 GraphemeBreakTest-fall och jämför varje publicerad gräns i UTF-16-enheter
Build-UnicodeTextBoundaryTables.py bygger om de kompilerade intervalltabellerna deterministiskt från den befintliga fastnålade UCD-datan
Unicode 17 text segmentation rules · Gränsfunktion · Rich field-beteende