Łamanie wierszy Unicode
HPDFUnicodeLineBreaks implementuje domyślne możliwości łamania wierszy Unicode 17.0.0 z zamieszczonymi w repozytorium właściwościami Line_Break, General_Category, East_Asian_Width i Extended_Pictographic
Przenośna implementacja rozwiązuje sekwencje łączenia, kontekst interpunkcji, wyrażenia numeryczne, Hangul, sylaby ortograficzne Brahmic, modyfikatory emoji i sparowane wskaźniki regionalne bez DLL segmentacji
Funkcja zwraca pozycję przed pierwszym skalarem i po każdym skalarze, wyrażoną jako offsety UTF-16 od zera; każda pozycja jest zabroniona, dozwolona albo obowiązkowa
Koniec tekstu jest obowiązkowy, włącznie dla pustego wejścia; początek niepustego tekstu jest zabroniony, a sparowane surrogaty nie mają pozycji wewnętrznej
Domyślna obsługa Azji Południowo-Wschodniej rozwiązuje zwykłe znaki SA do AL, a znaczniki łączenia SA do CM; słowniki językowe i dzielenie są osobnymi usługami tailoringu
HPDFUnicodeLineBreakClass wystawia surową albo rozwiązaną wg LB1 właściwość dla pojedynczych punktów kodu; nazwy THPDFUnicodeLineBreakClass zachowują każdą skrótową właściwość Unicode 17
Istniejące HPDFComputeLineBreaks i HPDFLineBreakClassOf API dokumentu konsumują te same kompletne tablice na Delphi 2009 i nowszych oraz wspieranych celach FPC, zachowując ustalone ordynały enum i zachowanie pustego wejścia
Zniekształcony UTF-16 i budżety jednostek kodu poza 1 do 1048576 podnoszą EArgumentException; anulowanie jest sprawdzane przed alokacją, podczas dekodowania i przy wyliczaniu granic
Rzeczywisty layout pól rich
Zawijane typowane runy rich konsumują legalne domyślne możliwości, utrzymują grupy nierozdzielających spacji i otwierającej interpunkcji razem i honorują CRLF, NEL, LINE SEPARATOR i PARAGRAPH SEPARATOR jako jawne łamania
Oryginalne separatory pozostają w V i kanonicznym RV; separatory linii są pomijane w malowanych fragmentach glifów, a zbyt szerokie grupy używają istniejącego awaryjnego zawijania kompletnych grafemów
Niezależne fragmenty na tej samej rzeczywistej linii kontynuują od zmierzonych posunięć; legalne łamania nie wymagają osobnej fizycznej linii, chyba że dopasowanie je wybierze
Kompletne możliwości akapitu zachowują legalne grupy przez zmiany stylów i sklejają rozdzielone CRLF; rzeczywiste stylowane posunięcia decydują, kiedy cała pasująca grupa przechodzi do świeżej linii
Awaryjne dopasowanie grafemów między stylami i kontekstowe shapowanie, dwukierunkowość akapitów mieszanych stylów, dowolny XHTML i tailoring specyficzny dla języków pozostają aktywnymi celami integracji
Zgodność
HotPDFUnicodeLineBreakTests konsumuje wszystkie 19338 oficjalnych przypadków Unicode 17 LineBreakTest i porównuje każdą opublikowaną pozycję; obowiązkowy koniec oraz zachowanie zniekształceń, budżetu i anulowania mają osobne kontrole
Build-UnicodeLineBreakTables.py --check weryfikuje odtwarzalność i przypięte SHA-256 trzech dodatkowych wejść właściwości UCD
Reguły łamania wierszy Unicode 17 · Funkcja granic · Zwracane pozycje · Integracja pól rich