HPDFPrepareHeadlessRichTextLineBoxes

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

Devuelve una secuencia de runs aparte con los struts de párrafo de solo métricas que necesitan las alturas de línea rich explícitas; no modifica los registros de runs del autor 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 altura explícita recibe un strut copiado de su primer run del autor cuando no existe un strut explícito; una primera altura legacy se vuelve normal, y las demás alturas hijas legacy permanecen normales en lugar de heredar el factor de un hermano

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

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

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

El token de cancelación opcional se consulta durante la preparación y propaga EHPDFOperationCancelled; la función no accede a archivos, no carga fuentes, no publica PDF ni confirma callbacks

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

Comportamiento de line-height · Registro de run