Files
FoFreeXit/README.md
T
admin e442a9f678 Phase 3 (Organize + robust save) + Phase 4 (Edit content); update docs
Engine:
- organize.rs: build_document(plan) core — insert/delete/rotate/crop/extract/merge/split
- watermark.rs: watermark + header/footer via PdfPages::watermark, CID Unicode fonts
- qpdf.rs: QPDF CLI wrapper — repair corrupt files, re-encrypt after edits, ensure_openable
- edit.rs: MOAT — list_objects + apply_edits (SetText VN, Transform, Delete, Add/ReplaceImage)
- Tests: organize/watermark/qpdf_safety/edit roundtrip — 43/43 engine tests green

UI (Tauri): "Tổ chức trang" mode (grid + drag-reorder + multi-select), "Sửa nội dung"
mode (WYSIWYG object overlay, edit-in-place), global undo/redo, robust file open.

Corpus: add encrypted.pdf + corrupt-truncated.pdf fixtures.

Docs: mark Phase 1-4 done in roadmap; document QPDF setup + engine module layout in
05-dev-setup; add 10-13 phase summaries & user-test checklists; README status.
2026-07-14 22:07:38 +07:00

4.6 KiB

FoFreeXit

Mục tiêu dự án: Xây dựng một phần mềm chỉnh sửa PDF trên desktop có thể thay thế Foxit PDF Editor (và một phần Adobe Acrobat) cho các nhu cầu phổ biến — miễn phí / mã nguồn mở.

Dự án được thực hiện qua nhiều session Claude Code. Token và thời gian không phải là ràng buộc. Ưu tiên số 1: tạo ra được một sản phẩm dùng được, thay thế Foxit cho các tác vụ chính.

Tài liệu

File Nội dung
docs/01-research.md Khảo sát tính năng Foxit, tính năng "đáng tiền", khó khăn kỹ thuật, thuật toán Foxit/Adobe, khảo sát thư viện PDF
docs/02-tech-stack.md Phân tích & lựa chọn ngôn ngữ / framework / engine
docs/03-roadmap.md Lộ trình theo phase, mục tiêu, phương pháp, định nghĩa hoàn thành (DoD)
docs/04-architecture.md Kiến trúc kỹ thuật chi tiết (sẽ chi tiết hóa dần)

Trạng thái hiện tại

  • Phase 0 — Nghiên cứu & lập kế hoạch
  • Đã chốt stack: Rust + Tauri (App/UI) trên engine PDFium + QPDF (xem docs/02-tech-stack.md)
  • Phase 1 — Engine core + Viewer ✅ HOÀN TẤT (10/10 test xanh)
    • Cargo workspace + app Tauri; engine render qua PDFium
    • CLI ff: info/render/pages/text/search/outline
    • Engine: render, page_dims, extract_text, search(+toạ độ), outline, page_char_boxes
    • Viewer: mở file (hộp thoại), cuộn liên tục + lazy render (file 1000+ trang), zoom/Fit, thumbnails, outline, tìm kiếm + highlight, chọn & copy text (text-layer)
    • Tổng kết: docs/06-phase1-summary.md · Checklist test cho bạn: docs/07-phase1-user-tests.md
  • Phase 2 — Annotate ✅ lõi hoàn tất (13/13 test xanh)
    • Engine: 6 loại annotation (Highlight/Underline/Strikeout/Square/FreeText/Note) + lưu file + đọc lại — round-trip test
    • UI: thanh công cụ + vẽ bằng chuột + preview + chọn màu + tab Chú thích + lưu qua hộp thoại
    • Follow-up: Ink, sửa/di chuyển annotation đã lưu, XFDF — xem docs/08-phase2-summary.md
    • Checklist test cho bạn: docs/09-phase2-user-tests.md
  • Phase 3 — Organize trang + lưu file vững ✅ lõi hoàn tất (36/36 test xanh)
    • Engine: chèn/xoá/xoay/trích/thay/đảo trang, merge/split, crop, watermark, header/footer + đánh số trang
    • Lưu file vững: QPDF repair file hỏng + mã hoá lại an toàn (qpdf.rs)
    • UI: chế độ "Tổ chức trang" (lưới + kéo-thả + multi-select), undo/redo toàn cục (chú thích + tổ chức trang chung 1 stack), dialog cho mọi thao tác (có xem trước thật cho Watermark/Header-Footer)
    • Follow-up: preview thật cho Insert/Extract/Replace/Crop, tách theo outline, watermark ảnh — xem docs/10-phase3-summary.md
    • Checklist test cho bạn: docs/11-phase3-user-tests.md
  • Phase 4 — Chỉnh sửa nội dung (Edit) ⭐ tính năng lõi/moat ✅ Iteration 1 hoàn tất (43/43 test xanh)
    • Engine edit.rs: liệt kê object + sửa text run (tiếng Việt), xoá, di chuyển/resize, thêm chữ/ảnh, thay ảnh — round-trip test
    • UI chế độ "Sửa nội dung": overlay đối tượng, sửa text tại chỗ WYSIWYG, thêm chữ/ảnh, xoá, cỡ chữ/màu, undo/redo, lưu
    • Follow-up: reflow đoạn nhiều dòng, xoay/lật/clip, tab Format nâng cao, convert text→path — xem docs/12-phase4-summary.md
    • Checklist test cho bạn: docs/13-phase4-user-tests.md
  • Phase 5 — Bảo mật & Chữ ký (kế tiếp) — xem docs/03-roadmap.md

Build & chạy: xem docs/05-dev-setup.md.

Nguyên tắc làm việc qua nhiều session

  1. Tài liệu là nguồn chân lý. Mọi quyết định kiến trúc phải được ghi vào docs/.
  2. Mỗi phase có Definition of Done rõ ràng và test kèm theo.
  3. Không viết lại engine PDF từ con số 0 ở giai đoạn đầu — đứng trên vai người khổng lồ (PDFium/QPDF), tự xây phần "editor" và "UX".
  4. Ưu tiên giấy phép permissive (BSD/Apache/MIT) để sản phẩm có thể tự do phân phối.