Line height de rich text tipado em JSON

forms.fill aceita membros opcionais lineHeightKind e lineHeight em cada item richTextRuns original, usando o layout real de parágrafos e linhas físicas com as fontes fornecidas

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fields": [{
    "name": "Input",
    "richTextRuns": [{
      "text": "First\rSecond",
      "fontSize": 10,
      "lineHeightKind": "number",
      "lineHeight": 2
    }]
  }]
}
KindValor e comportamento
legacyO default quando nenhum membro é fornecido, retendo o layout existente de parágrafos
normalLayout normal explícito usando as métricas da fonte fornecida e o line spacing nativo
numberUm fator sem unidade não negativo multiplicado pelo fontSize deste run
pointsUma altura absoluta em pontos não negativa
percentUma porcentagem computada imediatamente do fontSize deste run e armazenada em pontos
emUm fator computado imediatamente do fontSize deste run e armazenado em pontos

Um lineHeight numérico sem lineHeightKind seleciona number; cada kind numérico exige um valor, enquanto legacy e normal aceitam valor ausente ou zero

Os valores precisam ser finitos e entre zero e um milhão; a altura em pontos computada deles também precisa permanecer dentro desse bound, e nomes de kinds desconhecidos ou tipos inválidos falham antes do carregamento de fontes

Zero é suportado e pode produzir baselines sobrepostas; os ascenders e descenders reais da face determinam o half-leading negativo e a união do strut do parágrafo e das caixas dos runs participantes

Cada run JSON é um item tipado original, e não um elemento CSS; percent e em não introduzem herança entre objetos JSON de runs

O primeiro run fornece o estilo métrico do parágrafo; um primeiro run vazio pode contribuir com uma caixa pai maior ou com estilo diferente, e uma sequência preparada separada admite sua fonte real sem substituir os runs autorados

IsParagraphStrut não é um membro JSON público; runs gerados somente métricos contam no orçamento cumulativo de runs da operação, e toda face métrica carregada conta nos bytes agregados de fontes

O callback recebe requisições reais de família e estilo configuradas, incluindo uma face pai que não pinta texto; os file jobs existentes baseados em paths do Windows usam o mesmo parser tipado e o mesmo planner de fontes fornecidas

O V salvo retém o texto lógico, o RV registra o perfil computado do parágrafo, e o AP retém a precisão original de cor e tamanho de fonte

Operações totalmente rich inalteradas preservam os bytes exatos commitados do PDF, incluindo semantic no-ops read-only válidos; estilos read-only alterados, falhas de autenticação AES e campos de assinatura protegidos retêm as políticas existentes

Erros de callback, cancelamento e falhas do orçamento de publicação preservam o contexto anterior; file jobs também preservam o destino anterior sob publicação atômica

Um sink de callback pode já ter aceitado bytes candidatos do PDF quando um callback posterior falha; o contexto vivo commita somente depois que os callbacks obrigatórios e as checagens finais de cancelamento tiverem sucesso

Os layouts versionados da operação C e do callback de fontes permanecem inalterados; as capabilities anunciam os kinds e bounds reais de lineHeight dentro do perfil de preenchimento tipado

Layout nativo de line-height · Record original de runs