Files
FoFreeXit/docs/13-phase4-user-tests.md
T
adminandClaude Fable 5 1285a8d6ae Phase 4 Iteration 2: sửa text GIỮ NGUYÊN FONT (chuẩn Foxit) + UX edit mượt
Engine:
- fontmatch.rs mới: làm sạch tên PostScript/subset, kiểm coverage cmap bằng
  ttf-parser, match font hệ thống CÙNG HỌ (bảng Windows/macOS, Liberation
  metric-compatible + fc-match trên Linux, alias base-14 Helvetica→Arial...)
- edit.rs: SetText quyết định 3 tầng — (1) sửa TẠI CHỖ giữ nguyên font gốc
  (charset-subset / base-14+ASCII / cmap phủ đủ, gồm font nhúng + tiếng Việt);
  (2) thiếu glyph → thay font cùng họ đúng đậm/nghiêng; (3) mới đến fallback.
  Đổi cỡ chữ = scale matrix neo baseline, không đụng font; fix bug phóng đại
  kép khi text có matrix scale. ObjectInfo thêm font_family/bold/italic/embedded.
  SetText/AddText nhận font_family + bold/italic dạng Option (None = giữ nguyên)
- annot.rs: fallback Linux có đủ biến thể đậm/nghiêng (DejaVu/Liberation)

UI (chuẩn trải nghiệm Foxit):
- Double-click sửa CẢ DÒNG (gộp run cùng baseline), commit 1 batch = 1 undo
- Ô sửa WYSIWYG: đúng font/cỡ/màu/đậm-nghiêng của run gốc khi gõ
- Toolbar Format: dropdown font "(giữ nguyên: X)", nút B/I theo kiểu thật,
  đổi cỡ/màu/kiểu gửi đúng field đó (null = giữ nguyên → không đổi font)
- Kéo di chuyển/resize có phản hồi trực tiếp (live), resize neo góc trên-trái
- Dọn file tạm ff_edit_* khi thoát/lưu (command edit_cleanup)

Test: 14 test edit (7 mới: giữ font ASCII/base-14, giữ font NHÚNG tiếng Việt,
match cùng họ, cỡ chữ neo + hồi quy matrix, bold override, gộp dòng) + 3 unit
fontmatch. Toàn bộ suite engine ngoài qpdf: 50/50 xanh (chạy trên Linux).

Docs: 12 (iteration 2), 13 (E17–E25), 14 MỚI — phân tích định hướng/công nghệ/
tiến độ so với tham vọng thay Foxit, gap còn lại + giải pháp; README cập nhật.

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

4.4 KiB
Raw Blame History

13 — Checklist test thủ công Phase 4 (Sửa nội dung)

Kéo-chuột (di chuyển/resize) không tự động test đầy đủ trong WebView2 (xem docs/08), nên cần bạn thử bằng chuột thật. Đặc biệt cần xác nhận lưu ra file mở lại đúng và tiếng Việt đúng dấu ở phần mềm khác.

Chạy

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

Bảng test

# Thao tác Kỳ vọng KQ
E1 Bấm ✏️ Sửa nội dung Viewport đổi thành trang lớn + khung mờ quanh từng đối tượng (text/ảnh)
E2 Bấm 1 lần vào 1 khung text Khung viền xanh (đã chọn); ô Cỡ chữ + Màu bật lên
E3 Bấm đúp (double-click) 1 khung text Hiện ô sửa tại chỗ với nội dung cũ
E4 Sửa thành chữ có dấu tiếng Việt, Enter Trang render lại đúng nội dung mới, đúng dấu
E5 Chọn text rồi đổi Cỡ chữ Chữ đổi kích thước
E6 Chọn text rồi đổi Màu Chữ đổi màu
E7 Bấm Thêm chữ → click lên trang → gõ → Enter Chữ mới xuất hiện đúng chỗ
E8 Bấm Thêm ảnh → chọn ảnh → click lên trang Ảnh xuất hiện tại chỗ click
E9 Chọn 1 ảnh → Thay ảnh → chọn ảnh khác Ảnh được thay, giữ khung cũ
E10 Chọn 1 đối tượng → Kéo để di chuyển Đối tượng dời theo chuột
E11 Chọn 1 đối tượng → kéo ô vuông góc để resize Đối tượng to/nhỏ lại
E12 Chọn 1 đối tượng → phím Delete (hoặc nút Xoá) Đối tượng biến mất
E13 Hoàn tác (Ctrl+Z) sau vài thao tác Lùi lại từng bước đúng
E14 Làm lại (Ctrl+Y) Tiến lại bước vừa hoàn tác
E15 Lưu thay đổi nội dung → chọn nơi lưu Tạo file PDF mới; app mở lại file đó
E16 Mở file đã lưu ở Foxit/Adobe/Chrome Nội dung đã sửa hiển thị đúng (text, ảnh, tiếng Việt đúng dấu), file không hỏng

Bổ sung Iteration 2 — GIỮ FONT + sửa cả dòng (chuẩn Foxit)

# Thao tác Kỳ vọng KQ
E17 Bấm đúp 1 dòng text bị cắt thành nhiều mảnh (PDF xuất từ Word thường vậy) Ô sửa phủ CẢ DÒNG (không chỉ 1 mảnh), nội dung ghép đủ
E18 Sửa 1 từ trong dòng, Enter Font giữ nguyên y hệt phần còn lại của trang (so bằng mắt + panel chọn hiện tên font cũ)
E19 Trong ô sửa đang gõ Chữ trong ô hiển thị đúng font/cỡ/màu/đậm-nghiêng của dòng (WYSIWYG khi gõ, không phải font hệ thống chung chung)
E20 Chọn text → chỉ đổi Cỡ chữ hoặc Màu Font KHÔNG đổi, nội dung không đổi, vị trí neo không trôi
E21 Chọn text → bấm B (Đậm) Chữ thành đậm cùng họ font (Times → Times Bold, không nhảy sang Arial)
E22 Chọn text → đổi Font trong dropdown Chữ đổi đúng family chọn; dropdown mặc định hiển thị "(giữ nguyên: <font gốc>)"
E23 Kéo di chuyển / kéo handle resize Khung đi theo con trỏ NGAY khi kéo (live), thả chuột mới ghi nhận
E24 Sửa text tiếng Việt trên file có font nhúng (file Word xuất PDF) Đúng dấu và giữ nguyên font nhúng (mở lại ở Foxit xem tên font trong Edit)
E25 Sửa nhiều lần rồi thoát chế độ sửa (không lưu) Không còn file ff_edit_*.pdf rác trong thư mục %TEMP%

Mẫu phản hồi

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

Quan trọng nhất: E4 (sửa tiếng Việt), E15/E16 (lưu + mở lại cross-viewer) — đường GHI nội dung là rủi ro nhất. Engine đã test round-trip nội bộ (gồm tiếng Việt), nhưng xác nhận cross-viewer của bạn rất giá trị.

Giới hạn đã biết (Iteration 1): sửa text ở mức dòng/run (chưa reflow cả đoạn như Word); thêm ảnh mặc định khung 150×112pt (kéo handle để chỉnh); lưu áp cho trang đang sửa. Xem docs/12-phase4-summary.md mục 5.