# Change: Fix OCR Track Table Empty Columns and Alignment

## Why

PP-Structure 生成的表格經常包含空白欄位（所有 row 該欄皆為空/空白），導致轉換後的 UnifiedDocument 表格出現空欄與欄位錯位。目前 OCR Track 直接使用原始資料，未進行清理，影響 PDF/JSON/Markdown 輸出品質。

## What Changes

- 新增 `trim_empty_columns()` 函數，清理 OCR Track 表格的空欄
- 在 `_convert_table_data` 入口調用清洗邏輯，確保 TableData 乾淨
- 處理 col_span 重算：若 span 跨過被移除欄位，縮小 span
- 更新 columns/cols 數值、調整各 cell 的 col 索引
- 可選：依 bbox x0 進行欄對齊排序

## Impact

- Affected specs: `ocr-processing`
- Affected code:
  - `backend/app/services/ocr_to_unified_converter.py` (主要修改)
- 不影響 Direct/HYBRID 路徑
- PDF/JSON/Markdown 輸出將更乾淨

## Constraints

- 保持表格 bbox、頁面座標不變
- 不修改 Direct/HYBRID 路徑
- 只移除「所有行皆空」的欄；若表頭空但數據有值，不應移除
- 保留原 bbox，避免 PDF 版面漂移
