Unicode grapheme 邊界
HPDFUnicodeTextBoundary 實作 Unicode 17.0.0 的預設延伸 grapheme cluster,使用簽入的 Grapheme_Cluster_Break、Indic_Conjunct_Break 與 Extended_Pictographic 屬性
可攜的 Pascal 實作處理結合符號、Hangul、Indic 連結序列、emoji ZWJ 序列與成對的區域指示符,不需要 GUI 或分割 DLL
偏移量從零起算 UTF-16 code unit,並涵蓋文字的起點與終點;空文字回傳單一偏移量 0
輸入必須包含配對完整的 UTF-16 surrogate,呼叫端須提供最大 1048576 的正整數 code unit 預算;預設為 65535
取消會在配置前與消費每個 scalar 時檢查,空輸入也不例外
Rich field 換行
多行換行 rich field 中過寬的單詞會在完整的延伸 grapheme cluster 邊界上切分,並以選定的字型與間距量測
每個片段保留原始 V 與 RV 值、實際 Unicode 對應與段落對齊;無法再切的 cluster 若寬過矩形則保持完整並被裁切
片段寬度在 shaping 之後檢查,包括分開 shaping 會變寬的連結形;可切的溢出會再於完整 cluster 邊界上切分
複雜文字繪製持續使用 HarfBuzz 與 FriBidi;grapheme 分割不提供 glyph shaping 或段落雙向排版
預設 Unicode 換行點同樣由這個可攜單元提供;跨樣式邊界的單詞換行與混合樣式段落的 bidi 仍是獨立的進行中目標
一致性
執行 Tests/Linux/Run-UnicodeGraphemeAcceptance.sh,或以 HotPDFUnicodeGraphemeTests 搭配 Tests/Linux/resources 執行 Windows 可攜測試執行器
測試涵蓋官方 Unicode 17 GraphemeBreakTest 全部 766 個案例,並以 UTF-16 unit 比對每個已公布的邊界
Build-UnicodeTextBoundaryTables.py 會從既有固定的 UCD 資料確定性地重建編譯後的範圍表