Bromcom Timetable Formatter

Transform PDF timetables into beautiful, color-coded visual schedules

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

Stylized representation of the original Bromcom PDF timetable

Raw export with plain text rows

β†’

After: Formatted SVG

Color-coded timetable cards showing periods with room and teacher labels

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

1

Prepare Your Files

You'll need:

  • Bromcom PDF timetable
  • School map SVG (with department IDs)
  • Configuration file (config.toml)
2

Configure Room Mappings

[[mappings]]
prefix = "MA"
bg_color = "#fcdcd8"
fg_color = "#e8a490"
map_id = "Maths_Rooms"
label = "Maths"
3

Run the Formatter

./timetable_cli \
  --input timetable.pdf \
  --config config.toml \
  --map school_map.svg \
  --output output/
4

View Your Timetable

Open the generated SVG in your browser or print it directly. Each week's timetable will be saved separately.

Built With

lopdf PDF parsing and text extraction
svg Programmatic SVG generation
roxmltree XML/SVG parsing and manipulation
serde & toml Configuration management
clap CLI argument parsing
regex Pattern matching for parsing