Разрыв строк 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-полей