Разрыв строк Unicode

HPDFUnicodeLineBreaks реализует возможности разрыва строк по умолчанию Unicode 17.0.0 с закреплёнными в репозитории свойствами Line_Break, General_Category, East_Asian_Width и Extended_Pictographic

Переносимая реализация разрешает комбинируемые последовательности, контекст пунктуации, числовые выражения, хангыль, орфографические слоги брахмических письменностей, модификаторы эмодзи и парные региональные индикаторы без DLL сегментации

Функция возвращает позиции перед первым скаляром и после каждого скаляра в виде UTF-16 смещений с нуля; каждая позиция запрещена, разрешена или обязательна

Конец текста обязателен, в том числе для пустого ввода; начало непустого текста запрещено, а парные суррогаты не имеют внутренней позиции

Стандартная обработка Юго-Восточной Азии разрешает обычные символы SA в AL, а комбинируемые знаки SA — в CM; языковые словари и переносы — отдельные службы адаптации

HPDFUnicodeLineBreakClass открывает сырое или разрешённое по LB1 свойство для отдельных кодовых точек; имена THPDFUnicodeLineBreakClass сохраняют все аббревиатуры свойств Unicode 17

Существующие API документов HPDFComputeLineBreaks и HPDFLineBreakClassOf потребляют те же полные таблицы на Delphi 2009 и новее и поддерживаемых целях FPC, сохраняя устоявшиеся порядковые значения enum и поведение на пустом вводе

Некорректный UTF-16 и бюджеты кодовых единиц вне диапазона от 1 до 1048576 возбуждают EArgumentException; отмена проверяется перед выделением памяти, при декодировании и при вычислении границ

Реальная вёрстка rich-полей

Перенесённые типизированные rich-run потребляют допустимые возможности по умолчанию, держат вместе группы неразрывных пробелов и открывающую пунктуацию и считают CRLF, NEL, LINE SEPARATOR и PARAGRAPH SEPARATOR явными разрывами

Исходные разделители остаются в V и каноническом RV; разделители строк опускаются из отрисованных фрагментов глифов, а чрезмерно широкие группы используют существующий аварийный перенос целых кластеров графем

Независимые фрагменты одной реальной строки продолжаются с измеренными продвижениями; допустимые разрывы не требуют отдельной физической строки, пока подгонка их не выберет

Полные возможности абзаца сохраняют допустимые группы при смене начертаний и склеивают разорванный CRLF; реальные стилевые продвижения решают, когда целая умещающаяся группа переходит на новую строку

Аварийная подгонка графем между начертаниями и контекстный шейпинг, абзацный bidi со смешанными начертаниями, произвольный XHTML и языковая адаптация остаются активными целями интеграции

Соответствие стандарту

HotPDFUnicodeLineBreakTests прогоняет все 19338 официальных кейсов LineBreakTest Unicode 17 и сравнивает каждую опубликованную позицию; обязательный конец и поведение при некорректном вводе, бюджете и отмене имеют отдельные проверки

Build-UnicodeLineBreakTables.py --check проверяет воспроизводимость и закреплённые SHA-256 трёх дополнительных UCD-входов свойств

Правила разрыва строк Unicode 17 · Функция границ · Возвращаемые позиции · Интеграция rich-полей