Line height JSON tipado de rich text

forms.fill acepta los miembros opcionales lineHeightKind y lineHeight en cada elemento original de richTextRuns, usando el layout real de párrafo y de líneas físicas de las fuentes suministradas

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fields": [{
    "name": "Input",
    "richTextRuns": [{
      "text": "First\rSecond",
      "fontSize": 10,
      "lineHeightKind": "number",
      "lineHeight": 2
    }]
  }]
}
KindValor y comportamiento
legacyEl valor por defecto cuando no se suministra ningún miembro, reteniendo el layout de párrafo existente
normalLayout normal explícito usando métricas de fuentes suministradas y line spacing nativo
numberUn factor no negativo sin unidad multiplicado por el fontSize de este run
pointsUna altura absoluta no negativa en puntos
percentUn porcentaje computado inmediatamente a partir del fontSize de este run y guardado como puntos
emUn factor computado inmediatamente a partir del fontSize de este run y guardado como puntos

Un lineHeight numérico sin lineHeightKind selecciona number; cada kind numérico exige un valor, mientras que legacy y normal aceptan un valor ausente o cero

Los valores deben ser finitos y estar entre cero y un millón; su altura computada en puntos también debe quedar dentro de ese bound, y los nombres de kind desconocidos o los tipos inválidos fallan antes de cargar fuentes

El cero está soportado y puede producir baselines superpuestas; los ascenders y descenders reales de la face determinan el half-leading negativo y la unión del strut del párrafo con los boxes de runs participantes

Cada run JSON es un elemento tipado original y no un elemento CSS; percent y em no introducen herencia entre objetos JSON de runs

El primer run suministra el estilo métrico del párrafo; un primer run vacío puede aportar un box padre mayor o con otro estilo, y una secuencia preparada separada admite su fuente real sin reemplazar los runs escritos

IsParagraphStrut no es un miembro JSON público; los runs generados de solo métrica cuentan en el presupuesto acumulado de runs de la operación, y cada face métrica cargada cuenta en los bytes agregados de fuentes

El callback recibe las solicitudes reales configuradas de familia y estilo, incluyendo una face padre que no pinta texto; los file jobs existentes de Windows basados en paths usan el mismo parser tipado y el mismo planner de fuentes suministradas

El V guardado retiene el texto lógico, RV registra el perfil computado del párrafo, y AP retiene la precisión original de color y font-size

Las operaciones totalmente rich sin cambios preservan los bytes PDF exactos confirmados, incluyendo no-ops semánticos válidos de solo lectura; los estilos de solo lectura cambiados, las fallas de autenticación AES y los campos de firma protegidos retienen las políticas existentes

Los errores de callback, la cancelación y las fallas del presupuesto de publicación preservan el contexto previo; los file jobs también preservan el destino previo bajo publicación atómica

Un sink de callback puede haber aceptado ya bytes PDF candidatos cuando un callback posterior falla; el contexto vivo se confirma solo después de que los callbacks requeridos y las comprobaciones finales de cancelación tengan éxito

Los layouts versionados de la operación C y del callback de fuentes no cambian; las capabilities anuncian los kinds y bounds reales de lineHeight dentro del perfil de llenado tipado

Layout nativo de line-height · Record original de run