Appearances por defecto nativas de FreeText

El fallback nativo de FreeText aplica el estado de appearance por defecto acotado al texto generado, el layout, el ajuste automático y las decoraciones

Una appearance normal suministrada tiene precedencia sobre la generación desde la appearance por defecto de FreeText y el rich text

Operadores de appearance por defecto

OperadoresComportamiento del fallback
TfSelecciona el recurso de fuente original y el tamaño del texto; tamaño cero solicita ajuste automático acotado
g rg kInicializa el color de relleno del texto en gris, RGB o CMYK
Tc Tw TzAplica espaciado de caracteres, espaciado de palabras y escala horizontal del texto a las mediciones de pintado y layout
Ts TLAplica elevación del texto y separación explícita de la línea base, incluido interlineado cero o negativo
TmAcepta como máximo una matriz; su parte lineal transforma el texto generado, mientras que el layout de la anotación determina la colocación
TrSelecciona los modos de pintado de glifos y de clipping de texto de cero a siete
G RG K w J j M dInicializa color de trazo, width, cap, join, miter y estado de dash para texto y decoraciones generadas

Los operandos de traslación de la matriz se validan pero no reemplazan la colocación de FreeText dentro de su rectángulo de anotación

La escala horizontal puede ser cero o negativa; la elevación, el espaciado y la matriz lineal participan en la geometría transformada de glifos, avances y decoraciones

Este es un perfil de appearance por defecto acotado, no un intérprete general de content streams de PDF; operadores no soportados, recuentos de operandos inválidos, valores mal formados y matrices de texto repetidas producen un error de rendering

Las componentes del color de trazo deben estar en el rango de cero a uno, los valores de cap y join deben ser enteros de cero a dos, la width no debe ser negativa y el límite de miter debe ser al menos uno

Un array de dash puede contener como máximo 256 valores finos no negativos y un array no vacío debe contener un valor positivo; un array vacío selecciona trazos sólidos, un array impar se repite y la fase no debe ser negativa

Layout, ajuste de línea y colocación

La alineación de FreeText usa avances visibles para la colocación izquierda, centrada o derecha; los espacios finales codificados y sus mapeos de origen permanecen presentes cuando el stream generado conserva esos fragmentos

El ajuste por límites de palabra y los saltos de párrafo duros tienen manejo separado; un espacio de no separación no se convierte en un separador suave ASCII ordinario

La ruta de fuente cruda original conserva sus reglas acotadas de ajuste por espacios y guiones; este conjunto de aceptación no establece cada caso Unicode de salto de línea, bidireccional o de shaping complejo

El rectángulo físico de la anotación, los bounds del Form raíz y el clip interior permanecen fijos; los bounds de Forms hijos temporales tienen en cuenta la cadena completa de ancestros y colocación

Pintado de glifos y clipping de texto

TrPintado de glifosContribución al clip
0RellenoNinguna
1TrazoNinguna
2Relleno y trazoNinguna
3Sin pintado de glifosNinguna
4RellenoContornos de glifos
5TrazoContornos de glifos
6Relleno y trazoContornos de glifos
7Sin pintado de glifosContornos de glifos

Los modos cuatro a siete acumulan contornos de glifos entre runs generados en un objeto de texto; el clip de texto acumulado se aplica después de ese objeto de texto a las decoraciones de subrayado y tachado generadas posteriores

El clip usa contornos de glifos en lugar de la silueta expandida del trazo; el estado de pintado permanece específico de cada run y el scope de graphics state que los encierra limita la vida del clip

El estado de trazo DA inicial se aplica en el scope de decoración raíz y también en los scopes de texto; los overrides por run y el save/restore de graphics state conservan su significado

Los cuatro casos de clipping positivo son una puerta de aceptación separada con appearances de dos runs escritas a mano, decoraciones clípeadas positivas y muestras blancas fuera de la unión de glifos

Esa puerta también usa un testigo de relleno rectangular de appearance explícita para probar el clipping de texto del backend; el testigo no afirma que la generación ante appearance faltante emita el relleno rectangular

La validación de lector positiva independiente de Tr4 a Tr7 pasó los cuatro casos finos de dos runs con MuPDF 1.28.5 oficial y Poppler, incluyendo ambos interiores de glifos, decoraciones clípeadas y muestras blancas fuera de la unión de glifos

La revisión de prueba separada de solo clip usa Scale4 para seleccionar celdas de píxel completas desde puntos testigo sin cambios en espacio de página; conserva los umbrales de color originales y deja el rendering normal45 en Scale1

MuPDF 1.28.2 tiene un problema de compatibilidad de bounds de clipping cuando un cambio de color vacía un run antes de un run posterior en el mismo objeto de texto; el run anterior puede quedar excluido de los bounds de clip acumulados

La CLI oficial de MuPDF 1.28.5 y el Poppler fijado de forma independiente aceptaron estas appearances sin cambios; las versiones de lectores y los controles positivos finos siguen siendo distintos de una garantía para cada pipeline de rendering

Ajuste automático

Un tamaño de fuente DA cero inicia una búsqueda acotada de reducción y refinamiento desde el layout generado inicial, usando rutas de glifos transformadas, avances y decoraciones en lugar de solo una altura de línea sin transformar

La expansión del trazo incluye el soporte transformado conservador de esquinas con cap cuadrada dash y joins de miter

La búsqueda conserva la cuantización de rutas Cairo y FreeType establecida; no promete el tamaño de fuente ideal matemáticamente mayor ni hinting idéntico entre lectores

Si ningún intento cabe antes de que la búsqueda acotada alcance su mínimo, el clip físico sigue limitando la publicación; el contenido muy largo no tiene garantía de permanecer totalmente visible

Fuentes originales y límites de recursos

El fallback de Type1C, CIDFontType0C y Type1 crudo original incrustado ya está soportado; las rutas de appearance completas de OpenType CFF y CFF2 de instancia por defecto conservan sus reglas documentadas de mapeo e incrustación

Los streams CFF2 crudos independientes y la selección de coordenadas de variación no por defecto siguen fuera de la ruta CFF2 publicada

Los límites de tokens, objetos, memoria de trabajo, operaciones, datos decodificados y salida se aplican al parsing, los recursos temporales, el ajuste y la publicación; la cancelación se consulta durante el trabajo acotado

El fallo preserva el grafo de origen y permite recuperación en el mismo documento; alcanzar un límite no convierte una appearance generada parcialmente en un resultado exitoso

Aceptación reproducible y fronteras restantes

La suite pública es Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, distribuida con sus assets y un manifiesto de archivo completo

Su modo normal ejecuta 45 pares candidato/AP-manuscrito con diferencia máxima de canal de dos, siete grupos de límites originales y geometría continua independiente de AP original con épsilon 1e-6

Los renderizados positivos de lector de AP original y las observaciones verticales conocidas de celdas de píxel se registran por separado de la geometría continua; ni la igualdad de pares ni esas observaciones finas prueban geometría arbitraria de candidatos generados ni envolturas raster transformadas arbitrarias

El modo AP fino comprueba seis controles afines y de dash de appearance explícita conservados; no reemplaza la aceptación normal, las comprobaciones de candidatos generados ni los tests de límites

Las 45 appearances generadas conservadas pasaron geometría continua independiente con épsilon 1e-6; sus 90 imágenes de lector MuPDF y Poppler fijadas también pasaron un modelo independiente de imagen completa sobre las 3.168.000 celdas de píxel con diferencia máxima de canal cero, sin imágenes omitidas ni celdas excluidas

Ese modelo fino deriva los glifos esperados, transformaciones, clipping, trazos y composición de las appearances manuscritas originales y los contornos de fuentes, usando el kernel FreeType fijado de cada lector; no aprende los píxeles esperados de las imágenes observadas

La diferencia máxima de canal original sigue siendo dos y el umbral de tinta sigue siendo 245; estos éxitos cubren el corpus conservado y los pipelines fijados, no fuentes arbitrarias, todas las builds de renderers ni una prueba del tamaño ajustado matemáticamente mayor

Los objetivos FPC de Linux y Windows requieren FPC 3.3.1 o posterior; el FPC de Windows usa una build privada de dependencias NoGUI verificada por separado y no lanza lectores de escritorio

Temas relacionados: fallback de anotaciones, decoraciones de anotaciones, espaciado de runs de rich text, appearances de fuente cruda originales y appearances de instancia por defecto OpenType CFF2