Line height JSON de rich text tipado

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

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fields": [{
    "name": "Input",
    "richTextRuns": [{
      "text": "First\rSecond",
      "fontSize": 10,
      "lineHeightKind": "number",
      "lineHeight": 2
    }]
  }]
}
KindValor y comportamiento
legacyEl por defecto cuando no se suministra ninguno de los miembros, reteniendo el layout de párrafos existente
normalLayout normal explícito usando métricas de fuentes suministradas y espaciado de líneas nativo
numberUn factor sin unidad no negativo multiplicado por el fontSize de este run
pointsUna altura absoluta en puntos no negativa
percentUn porcentaje calculado inmediatamente a partir del fontSize de este run y almacenado como puntos
emUn factor calculado inmediatamente a partir del fontSize de este run y almacenado 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 en puntos calculada debe permanecer también 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 líneas base superpuestas; los ascenders y descenders reales de la face determinan el half-leading negativo y la unión del strut del párrafo y las cajas de runs participantes

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

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

IsParagraphStrut no es un miembro JSON público; los runs generados de solo métricas 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 solicitudes reales de familias y estilos configurados, incluida una face padre que no pinta texto; los file jobs de Windows basados en paths usan el mismo parser tipado y planificador de fuentes suministradas

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

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

Los errores de callbacks, la cancelación y los fallos de presupuesto de publicación preservan el contexto previo; los file jobs también preservan el destino anterior 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 de operaciones y callbacks de fuentes C versionados no cambian; las capacidades anuncian los kinds y bounds reales de lineHeight dentro del perfil de llenado tipado

Layout nativo de line-height · Run record original