Confini dei grapheme Unicode

HPDFUnicodeTextBoundary implementa i cluster grapheme estesi predefiniti di Unicode 17.0.0 usando le proprietà archiviate Grapheme_Cluster_Break, Indic_Conjunct_Break e Extended_Pictographic

L'implementazione Pascal portabile gestisce combining mark, Hangul, sequenze linker indiche, sequenze emoji ZWJ e regional indicator accoppiati senza richiedere una GUI né una DLL di segmentazione

Gli offset contano le code unit UTF-16 da zero e includono sia l'inizio sia la fine del testo; testo vuoto restituisce il singolo offset zero

L'input deve contenere surrogate UTF-16 accoppiate e il chiamante fornisce un budget positivo di code unit fino a 1048576; il default è 65535

La cancellazione è controllata prima dell'allocazione e mentre si consuma ogni scalar, incluso per input vuoto

Wrapping dei campi rich

Una parola troppo larga in un campo rich multilinea con wrapping è divisa ai cluster grapheme estesi completi e misurata con il font e la spaziatura selezionati

Ogni frammento preserva i valori V e RV originali, le vere mappature Unicode e l'allineamento del paragrafo; un cluster indivisibile più largo del rettangolo resta intatto e viene ritagliato

Le larghezze dei frammenti sono controllate dopo lo shaping, comprese le joining form che si allargano quando modellate separatamente; gli overflow divisibili sono divisi di nuovo ai cluster completi

Il disegno degli script complessi continua a usare HarfBuzz e FriBidi; la segmentazione dei grapheme non fornisce shaping dei glyph né layout bidirezionale del paragrafo

Le opportunità di line break Unicode predefinite sono disponibili tramite la stessa unità portabile; il wrapping di parole oltre i confini di stile e il bidi di paragrafo a stili misti restano obiettivi attivi separati

Conformità

Esegui Tests/Linux/Run-UnicodeGraphemeAcceptance.sh o il test runner portabile Windows con HotPDFUnicodeGraphemeTests e Tests/Linux/resources

I test consumano tutti i 766 casi ufficiali GraphemeBreakTest di Unicode 17 e confrontano ogni confine pubblicato in unità UTF-16

Build-UnicodeTextBoundaryTables.py ricostruisce in modo deterministico le tabelle range compilate dai dati UCD con pin esistenti

Regole di segmentazione testo Unicode 17 · Funzione dei confini · Comportamento dei campi rich