Files
FoFreeXit/docs/20-phase7-user-tests.md
adminandClaude Fable 5 b09bd7d750 Phase 7: OCR & Convert — Tesseract lớp text ẩn (Việt+Anh), PDF→PNG/TXT/DOCX, Office↔PDF
Engine:
- ocr.rs MỚI: find_tesseract (sidecar như qpdf, env FOFREEXIT_TESSERACT_PATH);
  ocr_page_words (render 300 DPI → tesseract tsv → lọc confidence ≥30 → quy
  đổi pixel→điểm PDF); ocr_add_text_layer — thêm text object render-mode
  INVISIBLE đúng khung từng từ lên CHÍNH trang gốc (searchable PDF chuẩn,
  ảnh không đổi), font Unicode nhúng 1 lần, mặc định vie+eng
- convert.rs MỚI: export_images (PNG mỗi trang theo DPI), export_text,
  export_docx tự viết (gom char boxes thành dòng thị giác → đoạn Word với cỡ
  chữ xấp xỉ + ngắt trang; DOCX = zip STORE tự ghi kèm CRC-32, không thêm
  dependency); find_soffice + office_to_pdf + pdf_to_docx_via_soffice
  (LibreOffice headless, profile riêng -env:UserInstallation)

Tauri + UI (thanh 🔁 Chuyển đổi):
- Commands: ocr_run, convert_images, convert_txt, convert_docx (tự chọn
  LibreOffice nếu có → fallback bộ cơ bản, báo engine đã dùng),
  office_convert, convert_tools_status (UI disable nút + báo thiếu công cụ),
  pick_office_file, pick_save_as
- Nút: OCR (select Việt+Anh/Việt/Anh), Xuất PNG 150 DPI, Xuất TXT, Xuất Word,
  Office→PDF (mở luôn kết quả)

Test (6 mới → engine 73/73 xanh ngoài 2 fixture qpdf Linux):
- OCR tiếng Anh trên PDF-scan giả lập THẬT (xoá text chỉ còn ảnh render):
  extract + search thấy từ, toạ độ lớp ẩn khớp vùng chữ
- OCR tiếng Việt đúng dấu ("Việt Nam đất nước")
- export PNG 3 trang / TXT / DOCX (unzip hệ thống giải được, có ngắt trang)
- LibreOffice round-trip 2 chiều (tự bỏ qua nếu máy không có soffice)

Docs: 19-phase7-summary (+ giới hạn v-sau), 20-phase7-user-tests (C1–C10 kèm
hướng dẫn cài Tesseract/LibreOffice trên Windows), README, roadmap (Phase 7
HOÀN TẤT lõi), 14 (kế tiếp: Phase 8 phát hành).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HgnbPwSoRGNH7LHsDUmRpk
2026-07-16 01:33:57 +00:00

2.3 KiB

20 — Checklist test thủ công Phase 7 (OCR & Convert)

Chuẩn bị trên Windows:

  • Tesseract: cài bản UB Mannheim (github tesseract-ocr), tick thêm gói ngôn ngữ Vietnamese; hoặc đặt FOFREEXIT_TESSERACT_PATH.
  • LibreOffice (cho Office↔PDF chất lượng cao): cài bản thường; hoặc đặt FOFREEXIT_SOFFICE_PATH trỏ tới soffice.exe.

Chạy

cd c:\Project\FoFreeXit\app\src-tauri
cargo run

Bảng test

# Thao tác Kỳ vọng KQ
C1 Bấm 🔁 Chuyển đổi Hiện thanh; nếu thiếu Tesseract/LibreOffice có ghi chú + nút tương ứng mờ
C2 Mở 1 PDF scan (hoặc ảnh chụp tài liệu in ra PDF) → 🔍 OCR (Việt + Anh) → lưu Chạy xong báo số từ; file mới nhìn Y HỆT bản gốc
C3 Trong file C2: Ctrl+F tìm 1 từ có trong ảnh; bôi chọn & copy đoạn chữ Tìm THẤY, vị trí highlight đúng chỗ; copy ra đúng chữ (kể cả tiếng Việt có dấu)
C4 Mở file C2 ở Foxit/Adobe → search/copy Hoạt động như C3 (lớp text ẩn chuẩn)
C5 🖼 Xuất PNG → chọn thư mục Mỗi trang 1 file PNG rõ nét (150 DPI)
C6 📄 Xuất TXT File .txt chứa đủ text các trang
C7 📘 Xuất Word (máy CÓ LibreOffice) → mở .docx bằng Word Mở được; chữ + bố cục gần bản gốc; status ghi "LibreOffice"
C8 📘 Xuất Word (máy KHÔNG LibreOffice) → mở .docx bằng Word Mở được; đủ text đúng thứ tự, cỡ chữ tương đối, ngắt trang đúng; status ghi "bộ chuyển cơ bản"
C9 📥 Office → PDF: chọn 1 file .docx → thư mục ra PDF tạo ra mở được trong app, nội dung đúng
C10 OCR file 20+ trang Chạy hết (có thể vài phút), không crash, số từ hợp lý

Mẫu phản hồi

[Mã] (vd C3) — Phần mềm mở: <Foxit/Adobe/Chrome/Word> — Hiện tượng: <mô tả> —
Kỳ vọng: <...> — Ưu tiên: cao/vừa/thấp

Giới hạn đã biết: OCR chưa tiền xử lý scan nghiêng/mờ; PDF→Word bộ cơ bản không tái tạo cột/bảng/ảnh (cài LibreOffice để có layout tốt); PDF→Excel chưa làm — xem docs/19-phase7-summary.md mục 6.