HPDFPrepareHeadlessRichTextLineBoxes

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

Devuelve una secuencia de runs separada con los struts de párrafo de solo métrica que exigen los line heights rich explícitos; no modifica los records de runs escritos del llamador

MaximumRuns debe estar entre uno y 4096 e incluye los struts insertados; superar esa capacidad lanza EHPDFHeadlessAppearanceError con haLimitExceeded

Un párrafo con una altura explícita recibe un strut copiado de su primer run escrito cuando no existe un strut explícito; una primera altura legacy se convierte en normal, y las demás alturas legacy de hijos permanecen normales en lugar de heredar un factor de hermano

Un run IsParagraphStrut existente debe ser el primer run vacío de su párrafo y debe llevar una altura no legacy; la colocación malformada de runs de métrica lanza haInvalidOptions

ParagraphBreakBefore se mueve al strut insertado para que el texto simple retenga exactamente sus límites originales de párrafo; los párrafos totalmente legacy preservan su secuencia y valores existentes de runs

Los planners de fuentes deben incluir cada run no vacío y cada run IsParagraphStrut de la secuencia preparada, porque los struts vacíos exigen las métricas reales de su face y estilo suministrados

El token de cancelación opcional se sondea durante la preparación y propaga EHPDFOperationCancelled; la función no realiza acceso a archivos, carga de fuentes, publicación de PDF ni commit de callbacks

La preparación valida su estructura acotada de párrafos; la validación ordinaria de Unicode, color, tamaño, programas de fuentes y presupuesto de objetos queda en el serializador rich y en el builder de apariencias

Comportamiento de line-height · Record de run