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