PDF viewer (render/search/text-select/thumbnails/outline) and annotation engine (Highlight/Underline/Strikeout/Square/FreeText/Note) over PDFium + lopdf, with Unicode font embedding for Vietnamese text and undo/redo.
3.2 KiB
3.2 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 (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
- 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/. - Mỗi phase có Definition of Done rõ ràng và test kèm theo.
- 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".
- Ưu tiên giấy phép permissive (BSD/Apache/MIT) để sản phẩm có thể tự do phân phối.