Unicode line breaking

HPDFUnicodeLineBreaks implementeert Unicode 17.0.0 default line-break-opportunities met de ingecheckte Line_Break-, General_Category-, East_Asian_Width- en Extended_Pictographic-properties

De portable implementatie lost combining-sequenties, punctuatiecontext, numerieke expressies, Hangul, Brahmic orthografische syllaben, emoji-modifiers en paren regional indicators op zonder een segmentation DLL

De functie geeft de positie vóór de eerste scalar en na elke scalar terug, uitgedrukt als zero-based UTF-16-offsets; elke positie is verboden, toegestaan of verplicht

Het einde van de tekst is verplicht, inclusief voor lege invoer; het begin van niet-lege tekst is verboden, en gepaarde surrogaten hebben geen interieurpositie

Default Zuidoost-Aziatische afhandeling lost gewone SA-tekens op naar AL en SA combining marks naar CM; taalwoordenboeken en afbreking zijn aparte tailoring-services

HPDFUnicodeLineBreakClass legt de raw of LB1-opgeloste property bloot voor individuele code points; THPDFUnicodeLineBreakClass-namen behouden elke Unicode 17-property-afkorting

De bestaande HPDFComputeLineBreaks- en HPDFLineBreakClassOf-document-API's consumeren dezelfde complete tabellen op Delphi 2009 en later en ondersteunde FPC-targets, met behoud van gevestigde enum ordinalen en leeg-invoer-gedrag

Misvormde UTF-16 en code-unit-budgetten buiten één tot en met 1048576 raisen EArgumentException; annulering wordt gecheckt vóór allocatie, tijdens decodering en tijdens het evalueren van grenzen

Echte rich field-layout

Gewrapte getypeerde rich-runs consumeren geldige default-opportunities, houden nonbreaking-space-groepen en openingspunctuatie bij elkaar en honoreren CRLF, NEL, LINE SEPARATOR en PARAGRAPH SEPARATOR als expliciete breuken

Originele separators blijven in V en canonieke RV; line separators worden weggelaten uit geschilderde glyph-fragmenten, en te brede groepen gebruiken het bestaande complete-grapheme-emergency-wrapping

Onafhankelijke fragmenten op dezelfde echte regel gaan verder op gemeten advances; geldige breuken vragen geen aparte fysieke regel tenzij fitting ze kiest

Complete paragraaf-opportunities behouden geldige groepen over stijlwisselingen heen en voegen gesplitste CRLF samen; echte gestijlde advances bepalen wanneer een hele passende groep naar een verse regel verhuist

Cross-style grapheme emergency fitting en contextuele shaping, mixed-style paragraaf-bidi, willekeurige XHTML en taalspecifieke tailoring blijven actieve integratiedoelen

Conformiteit

HotPDFUnicodeLineBreakTests consumeert alle 19338 officiële Unicode 17 LineBreakTest-cases en vergelijkt elke gepubliceerde positie; het verplichte einde en misvormd-, budget- en annuleringsgedrag hebben aparte checks

Build-UnicodeLineBreakTables.py --check verifieert reproduceerbaarheid en de SHA-256-pins van de drie extra UCD-property-invoeren

Unicode 17 line-breaking rules · Boundary function · Returned positions · Rich field integration