HPDFPrepareHeadlessRichTextLineBoxes

function HPDFPrepareHeadlessRichTextLineBoxes(
  const Runs: THPDFHeadlessRichTextRuns; MaximumRuns: Integer;
  CancellationToken: THPDFCancellationToken = nil): THPDFHeadlessRichTextRuns;

Возвращает отдельную последовательность run-ов с metric-only strut абзацев, нужными явным rich-высотам строк; она не изменяет авторские записи run-ов вызывающего

MaximumRuns обязан быть от одного до 4096 и включает вставленные struts; превышение этой ёмкости поднимает EHPDFHeadlessAppearanceError с haLimitExceeded

Абзац с явной высотой получает strut, скопированный из его первого авторского run-а, когда явного strut нет; первая legacy-высота становится normal, а остальные legacy-высоты детей остаются normal, не наследуя множитель сиблинга

Существующий run с IsParagraphStrut обязан быть первым пустым run-ом своего абзаца и нести высоту не в режиме legacy; некорректное размещение метрического run-а поднимает haInvalidOptions

ParagraphBreakBefore переносится на вставленный strut, чтобы обычный текст сохранял ровно свои исходные границы абзацев; полностью legacy-абзацы сохраняют свою существующую последовательность и значения run-ов

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

Необязательный токен отмены опрашивается во время подготовки и пробрасывает EHPDFOperationCancelled; функция не обращается к файлам, не загружает шрифты, не публикует PDF и не фиксирует колбэки

Подготовка проверяет свою ограниченную структуру абзацев; обычная проверка Unicode, цвета, размера, шрифтовых программ и бюджета объектов остаётся за сериализатором rich-текста и сборщиком внешнего вида

Поведение line-height · Запись run-а