Tiện ích tải tài liệu từ trang sinh viên trường Đại học Y dược Cần Thơ.
- Desktop GUI (
ct_gui.py) - Ứng dụng Tkinter chạy trên máy tính - Web Interface (
ctsample.py) - Giao diện web qua trình duyệt - Chrome Extension (
chrome-extension/) - ⭐ MỚI! Tiện ích Chrome Manifest V3
Công cụ chuyển đổi tài liệu từ CTUMP DocImage sang PDF với giao diện đồ họa đơn giản và tự động phát hiện token. Hỗ trợ tải xuống bất đồng bộ với hiệu suất cao và tự động dọn dẹp cache.
- Tải xuống đồng thời nhiều trang với HTTP/2
- Xử lý theo phân đoạn để tiết kiệm RAM
- Hỗ trợ hủy bỏ quá trình bất cứ lúc nào
- Dán URL viewer để tự động lấy token
- Quét cả trang chính và các script bên ngoài
- Hỗ trợ nhập token thủ công
- Theme đen trắng tối giản
- Font Tahoma dễ đọc
- Các trường cấu hình chỉ đọc (readonly)
- Hiển thị tiến trình real-time
- Xóa cache và file tạm sau khi hoàn thành
- Giải phóng dung lượng ổ đĩa
- Tối ưu hiệu suất hệ thống
- Python 3.7 trở lên
- Hệ điều hành: Windows, macOS, Linux
# Clone hoặc tải file ct_gui.py (Desktop GUI) hoặc ctsample.py (Web UI)
# Công cụ sẽ tự động cài đặt các thư viện cần thiết:
# - httpx[http2]>=0.26
# - img2pdf>=0.6.0
# - pikepdf>=9.0
# - flask>=2.0.0 (chỉ cho ctsample.py)Desktop GUI (Tkinter):
python ct_gui.pyWeb Interface (Flask) - MỚI:
python ctsample.py
# Sau đó mở trình duyệt tại: http://localhost:5000📝 Lưu ý:
ctsample.pylà phiên bản web UI mới, cho phép truy cập qua trình duyệt. Xem chi tiết trong CTSAMPLE_README.md
Chrome Extension (Manifest V3) - MỚI:
# 1. Chạy API server trước
python ctsample.py
# 2. Cài đặt extension trong Chrome
# - Mở chrome://extensions/
# - Bật "Developer mode"
# - Click "Load unpacked"
# - Chọn thư mục chrome-extension/🌐 Extension: Tiện ích Chrome giúp tải PDF dễ dàng từ trình duyệt. Xem hướng dẫn chi tiết trong chrome-extension/README.md
🚀 Cloud Deployment: Muốn sử dụng extension từ xa không cần chạy server local?
- Railway Deployment - Deploy lên Railway
- Render Deployment - Deploy lên Render.com
| Tính năng | Desktop GUI | Web Interface | Chrome Extension |
|---|---|---|---|
| Giao diện | Tkinter | Browser | Chrome Popup |
| Cài đặt | Không cần | Không cần | Load extension |
| Chạy server | ❌ Không | ✅ Cần | ✅ Cần (local/cloud) |
| Auto-detect token | ✅ | ✅ | ✅ |
| Fill từ trang hiện tại | ❌ | ❌ | ✅ |
| Manifest file | ✅ | ❌ | ❌ |
| Multi-user | ❌ | ✅ | ❌ |
| Deploy to cloud | ❌ | ✅ Railway/Render | ✅ Railway/Render |
| Phù hợp cho | Cá nhân | Nhóm/Server | Sử dụng nhanh |
- Nhấn nút "Add Document"
- Dán URL viewer vào chỗ "Viewer URL" - Hướng dẫn lấy URL Viewer: bằng cách chuột phải chọn "View Frame Source" sau đó copy URL và xoá phần "view-source:" (nếu có)
- Nhấn "Auto Detect Token" để tự động lấy token
- Điền thông tin:
- Start page: Trang bắt đầu (mặc định: 1)
- End page: Trang kết thúc (mặc định: 1)
- Output PDF: Đường dẫn file PDF đầu ra
- Nhấn "Add" để thêm vào danh sách
- Remove Selected: Xóa tài liệu đã chọn
- Load Manifest: Tải danh sách tài liệu từ file JSON
- Save Manifest: Lưu danh sách tài liệu ra file JSON
- Kiểm tra cấu hình:
- Base URL:
https://media.ctump.edu.vn/DocImage.axd - Concurrency: 6
- Segment size: 200
- Base URL:
- Nhấn "Start" để bắt đầu
- Theo dõi tiến trình trong phần "Progress" và "Logs"
- Nhấn "Cancel" nếu muốn dừng
- Progress bar: Hiển thị tổng tiến trình
- Segment: Hiển thị phân đoạn đang xử lý
- Logs: Chi tiết quá trình xử lý với màu sắc:
- 🔵 INFO: Thông tin bình thường
- 🟡 WARN: Cảnh báo
- 🔴 ERROR: Lỗi
- 🟢 DONE: Hoàn thành
| Tham số | Giá trị | Mô tả |
|---|---|---|
| Base URL | https://media.ctump.edu.vn/DocImage.axd |
URL cơ sở của CTUMP |
| Concurrency | 6 | Số kết nối đồng thời |
| Segment Size | 200 | Số trang mỗi phân đoạn |
| Connect Timeout | 5.0s | Thời gian chờ kết nối |
| Read Timeout | 30.0s | Thời gian chờ đọc dữ liệu |
| Retry Total | 6 | Số lần thử lại tối đa |
- Background: Đen tuyệt đối (#000000)
- Text: Trắng tuyệt đối (#ffffff)
- Cards: Xám đậm (#1a1a1a)
- Accent: Xanh navy (#213448)
- Tất cả text sử dụng font Tahoma 14pt
- Dễ đọc trên mọi kích thước màn hình
- Hỗ trợ đa ngôn ngữ
- Nguyên nhân: URL viewer không hợp lệ hoặc trang đã thay đổi
- Giải pháp:
- Kiểm tra lại URL viewer
- Thử nhập token thủ công
- Kiểm tra kết nối internet
- Nguyên nhân: Mạng chậm hoặc server quá tải
- Giải pháp:
- Chờ và thử lại
- Kiểm tra kết nối internet
- Giảm số lượng tài liệu xử lý cùng lúc
- Nguyên nhân: Dữ liệu hình ảnh bị lỗi
- Giải pháp:
- Thử lại với trang cụ thể
- Kiểm tra token còn hợp lệ
- Thử với phạm vi trang nhỏ hơn
[INFO] Token detected: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[INFO] Doc 1/3 document.pdf : 1–50
[INFO] Segment 1: downloading 1–200
[INFO] Segment 1: ✓200 ✗0 -> /tmp/segment_1_200.pdf
[INFO] Merging segments and linearizing…
[DONE] Wrote document.pdf
[INFO] Clearing cache and temporary files...
[DONE] Cache cleared successfully
- Xử lý nhiều tài liệu cùng lúc thay vì từng cái một
- Sử dụng phạm vi trang hợp lý (không quá lớn)
- Lưu manifest để tái sử dụng danh sách tài liệu
- Đặt tên file PDF có ý nghĩa
- Sử dụng chức năng Save/Load Manifest
- Kiểm tra kết quả trước khi xử lý hàng loạt
- Luôn kiểm tra logs để hiểu nguyên nhân lỗi
- Thử lại với phạm vi trang nhỏ hơn nếu gặp lỗi
- Sử dụng chức năng Cancel khi cần thiết
- Token được xử lý an toàn trong bộ nhớ
- Không lưu trữ thông tin nhạy cảm
- Tự động dọn dẹp file tạm
- Sử dụng HTTPS cho tất cả kết nối
Nếu gặp vấn đề, hãy kiểm tra:
- Logs trong ứng dụng để xem thông báo lỗi chi tiết
- Kết nối internet và URL viewer
- Quyền ghi file tại thư mục đích
- Dung lượng ổ đĩa còn trống
Công cụ này được phát triển để hỗ trợ việc chuyển đổi tài liệu từ trang Sinh viên CTUMP sang PDF một cách hiệu quả và an toàn.
Lưu ý: Công cụ này chỉ dành cho mục đích học tập và nghiên cứu. Vui lòng tuân thủ các quy định của Trường Đại học Y Dược Cần Thơ khi sử dụng.