Boundaries de grafos Unicode
HPDFUnicodeTextBoundary implementa los extended grapheme clusters por defecto de Unicode 17.0.0 usando las propiedades Grapheme_Cluster_Break, Indic_Conjunct_Break y Extended_Pictographic incluidas en el repositorio
La implementación Pascal portable maneja signos combinantes, Hangul, secuencias de linkers índicos, secuencias emoji ZWJ e indicadores regionales emparejados sin exigir una GUI ni una DLL de segmentación
Los offsets cuentan unidades de código UTF-16 desde cero e incluyen tanto el inicio como el final del texto; el texto vacío devuelve el único offset cero
La entrada debe contener surrogados UTF-16 emparejados, y el llamador suministra un presupuesto positivo de unidades de código de hasta 1048576; el default es 65535
La cancelación se verifica antes de la asignación y al consumir cada escalar, incluso para entrada vacía
Wrapping de rich fields
Una palabra demasiado ancha en un rich field multiline con wrapping se divide en clusters de grafos extendidos completos y se mide con la fuente y el espaciado seleccionados
Cada fragmento preserva los valores V y RV originales, los mapeos Unicode reales y la alineación del párrafo; un cluster indivisible más ancho que el rectángulo permanece intacto y se recorta
Los anchos de fragmentos se verifican después del shaping, incluidas las joining forms que se ensanchan al procesarse por separado; los overflows divisibles se vuelven a dividir en clusters completos
El pintado de scripts complejos sigue usando HarfBuzz y FriBidi; la segmentación de grafos no aporta shaping de glifos ni layout bidireccional de párrafos
Las oportunidades de line break Unicode por defecto están disponibles a través de la misma unit portable; el wrapping de palabras a través de boundaries de estilo y el bidi de párrafos con estilos mezclados siguen siendo objetivos activos separados
Conformidad
Ejecuta Tests/Linux/Run-UnicodeGraphemeAcceptance.sh o el runner de pruebas portable de Windows con HotPDFUnicodeGraphemeTests y Tests/Linux/resources
Las pruebas consumen los 766 casos oficiales de GraphemeBreakTest de Unicode 17 y comparan cada boundary publicado en unidades UTF-16
Build-UnicodeTextBoundaryTables.py reconstruye de forma determinista las tablas de rangos compiladas a partir de los datos UCD fijados existentes
Reglas de segmentación de texto de Unicode 17 · Función de boundaries · Comportamiento de rich fields