Espaciado de runs JSON de rich text tipado
Los file jobs de Windows y las operaciones versionadas por callbacks, y las operaciones versionadas nativas por callbacks de Linux, enlazan el espaciado en las entradas richTextRuns de forms.fill usando los runs tipados originales
{"type":"forms.fill","fields":[{"name":"Input","richTextRuns":[
{"text":"A spaced line","fontSize":12,
"letterSpacingKind":"em","letterSpacing":0.125,
"wordSpacingKind":"points","wordSpacing":-0.5}
]}]}
letterSpacingKind y wordSpacingKind aceptan legacy, normal, points y em; un kind omitido con valor numérico significa points, mientras que kind y valor omitidos significan legacy
points y em exigen un valor numérico finito; legacy y normal permiten solo un valor ausente o cero; los valores del autor y las longitudes en puntos calculadas tienen un máximo absoluto de 1000000
El parser JSON de Windows retiene los valores decimales finitos al Double más cercano antes de que los runs tipados originales lleguen al layout; la notación científica sigue la gramática JSON y el rango numérico existentes, y el límite existente de bytes de solicitud también acota los tokens numéricos largos
Los modos desconocidos, los tipos JSON equivocados, los valores calculados con overflow y los runs rich en campos que no son de texto fallan antes de cargar fuentes o publicar; los presupuestos agregados existentes de fuentes, objetos, entrada y salida y las comprobaciones de cancelación siguen activos
Los campos mixtos escalares y rich usan la candidata transaccional existente, preservando el grafo cargado actual, la clave de revisión AES autenticada, las restricciones de firmas y el comportamiento de callbacks de PDF/resultado en dos fases
Dentro de este perfil acotado, el normal explícito y el cero explícito calculan el mismo espaciado en puntos y RV canónico, haciendo que las actualizaciones reales equivalentes de solo lectura sean no-ops semánticos; las operaciones JSON versionadas retienen los bytes de origen originales, y el modo legacy omitido permanece distinto porque hereda las opciones globales de appearance
Los campos de solo lectura aceptan no-ops semánticos reales y rechazan el espaciado cambiado; los no-ops JSON exitosos retienen los bytes PDF exactos, y los callbacks de salida o resultado fallidos dejan el contexto actual sin cambios
Los metadatos de capacidades exponen typedRichFill.spacing sin cambiar las estructuras ni símbolos existentes del C ABI; el espaciado se aplica a las coordenadas de glifos con shaping reales y a los valores RV, con las reglas acotadas del espaciado nativo de runs