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-текста и сборщиком внешнего вида