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