Swift套件 · v0.1.0

KLReadingOrder

根據座標將OCR結果重新排列為橫向或直向閱讀順序。

KLReadingOrder接收文字、信心值、正規化矩形、頁碼與原始順序,回傳依閱讀順序分組的行,並保留整合端App提供的候選ID。套件不執行OCR,也不分析文件內容。

支援平台
iOS 17+ · macOS 14+
開發工具
Swift 6.0+
授權條款
MIT
第三方相依套件

功能

  • 橫排由上至下、行內由左至右
  • 直排按欄由右至左、欄內由上至下
  • 每頁獨立自動判斷方向
  • 依字元尺寸自動調整分組容差

不包含的功能

套件不執行OCR、旋轉或透視校正,也不負責信心值篩選、語言辨識、表格擷取與語意分析。同一頁的所有矩形必須使用相同的正規化座標系。

透過SwiftPM安裝

Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLReadingOrder.git", from: "0.1.0")

使用方式

整合範例Swift
let engine = ReadingOrderEngine()
let lines = engine.reconstruct(
    candidates: observations,
    preferredDirection: .unknown
)

for line in lines {
    print(line.text)
}
ReadingOrderEngine

同步完成過濾、分頁、方向判斷、分組、排序與結果合併,不進行I/O。

ReadingOrderPolicy

提供可調整的幾何閾值與預設值。

ReadingOrderLine

保存排序後的候選ID、合併矩形、串接文字、平均信心值、頁碼與最終方向。

範例App

Reading Flow

橫排由上至下、行內由左至右 · 直排按欄由右至左、欄內由上至下

Layout Comparator

每頁獨立自動判斷方向 · 依字元尺寸自動調整分組容差