Features
PDF Parsing
Extracts lessons, rooms, teachers, and subjects from Bromcom PDF timetables with precise coordinate detection.
Color-Coded Output
Automatically applies department colors to room codes based on configurable mappings (Maths, Science, Humanities, etc.).
School Map Integration
Highlights department locations on your school map SVG, showing where each class takes place.
Configurable
TOML-based configuration for room mappings, colors, and lesson overrides. Easy to customize for your school.
Print-Ready
Generates A4-sized SVG output (794Γ1123px) optimized for printing and digital viewing.
Fast & Reliable
Built with Rust for speed, safety, and cross-platform compatibility (Linux, macOS, Windows).
Example Output
See how a typical Bromcom PDF timetable is transformed into a visual schedule:
Before: Bromcom PDF
Raw export with plain text rows
After: Formatted SVG
Color-coded timetable ready for printing
Installation
From Source
# Clone the repository
git clone https://github.com/RichardSlater/bromcom-timetable-formatter.git
cd bromcom-timetable-formatter
# Build with Cargo
cargo build --release
# Binary will be in target/release/timetable_cli
From GitHub Releases
# Download the latest release for your platform
# Visit: https://github.com/RichardSlater/bromcom-timetable-formatter/releases
# Extract and run
./timetable_cli --help
Quick Start
Prepare Your Files
You'll need:
- Bromcom PDF timetable
- School map SVG (with department IDs)
- Configuration file (config.toml)
Configure Room Mappings
[[mappings]]
prefix = "MA"
bg_color = "#fcdcd8"
fg_color = "#e8a490"
map_id = "Maths_Rooms"
label = "Maths"
Run the Formatter
./timetable_cli \
--input timetable.pdf \
--config config.toml \
--map school_map.svg \
--output output/
View Your Timetable
Open the generated SVG in your browser or print it directly. Each week's timetable will be saved separately.
Documentation
π API Documentation
Rust API documentation generated with rustdoc. Explore the core library and CLI.
π User Guide
Comprehensive README with setup instructions, configuration examples, and troubleshooting.
ποΈ Architecture
Technical overview of the project structure, data flow, and design decisions.
π€ Contributing
Guidelines for contributing code, reporting issues, and submitting pull requests.