Centralized PDF export styling for KAAG projects
Project description
KAAG PDF Exports
Een gecentraliseerde Python package voor het genereren van gestileerde PDF exports voor alle KAAG projecten met consistente branding.
Features
- 🎨 Unified Color Schemes - KAA Gent branding kleuren
- 🔤 Custom Font Support - Poppins, Obviously, IvyPresto
- 📊 Herbruikbare Componenten - Headers, tabellen, radar charts, performance bars
- 📄 Meerdere Report Types - Scouting reports, final reports, quick overviews
Installatie
Lokale Development
# Vanuit de kaag-pdf-exports directory
pip install -e .
Als Dependency in KAAG-BE
# In KAAG-BE requirements.txt toevoegen:
-e ../kaag-pdf-exports
# Of direct installeren:
pip install -e ../kaag-pdf-exports
Gebruik
Basic Usage
from kaag_pdf import PDFGenerator, KAAG_COLORS
# Maak een generator
generator = PDFGenerator()
# Genereer een PDF
pdf_bytes = generator.create_report(
title="Speler Rapport",
subtitle="Seizoen 2024-2025",
content_callback=my_content_function,
)
# Opslaan
with open("rapport.pdf", "wb") as f:
f.write(pdf_bytes)
Color Scheme
from kaag_pdf import ColorScheme, KAAG_COLORS, KAAG_COLORS_LIGHT
# Gebruik standaard kleuren
print(KAAG_COLORS.primary) # (0, 57, 107) - KAA Gent blauw
# Genormaliseerd voor ReportLab (0-1 range)
r, g, b = KAAG_COLORS.primary_normalized()
# Custom color scheme
custom = ColorScheme(
primary=(100, 50, 200),
secondary=(200, 150, 100),
# ... other colors
)
Fonts
from kaag_pdf import FontManager, FONTS, get_font
# Automatische font registratie
font_manager = FontManager()
font_manager.register_fonts()
# Get font name met fallback
heading_font = get_font("HEADING", fallback="Helvetica-Bold")
# Beschikbare font keys:
# POPPINS_REGULAR, POPPINS_BOLD, POPPINS_SEMIBOLD, etc.
# OBVIOUSLY_REGULAR, OBVIOUSLY_BOLD, OBVIOUSLY_SEMIBOLD
# IVYPRESTO_REGULAR, IVYPRESTO_ITALIC
# HEADING, SUBHEADING, BODY, BODY_BOLD, ACCENT, LABEL, SMALL
Components
from kaag_pdf.components import (
PDFHeader,
PDFFooter,
InfoBlock,
SectionHeader,
StatsTable,
RadarChart,
PerformanceBar,
RadarChartData,
PerformanceBarData,
)
# Radar Chart
radar_data = RadarChartData(
labels=["Aanval", "Verdediging", "Passing", "Fysiek", "Mentaal"],
values=[75, 60, 80, 70, 85],
background_values=[50, 50, 50, 50, 50], # Group average
title="Performance",
)
chart = RadarChart()
chart.draw(canvas, center_x, center_y, radar_data)
# Performance Bar
bar_data = PerformanceBarData(
label="Doelpunten per 90",
value=0.45,
percentile=15.0, # Top 15%
)
bar = PerformanceBar()
bar.draw(canvas, x, y, bar_data)
Styles
from kaag_pdf import PDFStyles
from kaag_pdf.styles import DEFAULT_STYLES, COMPACT_STYLES
# Custom styles
my_styles = PDFStyles(
page_margin_top=20 * mm,
font_size_title=28,
radar_chart_size=70 * mm,
)
generator = PDFGenerator(styles=my_styles)
Fonts Installeren
Kopieer font bestanden naar src/kaag_pdf/assets/fonts/:
Poppins-Regular.ttfPoppins-Bold.ttfPoppins-SemiBold.ttfPoppins-Light.ttfPoppins-Medium.ttfObviously-Regular.ttfObviously-Bold.ttfObviously-SemiBold.ttfIvyPrestoDisplay-Regular.otfIvyPrestoDisplay-Italic.otf
Project Structure
kaag-pdf-exports/
├── setup.py
├── README.md
└── src/
└── kaag_pdf/
├── __init__.py
├── colors.py # Color schemes
├── fonts.py # Font management
├── styles.py # PDF styling
├── components.py # Reusable components
├── generator.py # Base PDF generator
└── assets/
├── fonts/ # TTF/OTF files
└── images/ # Logos, etc.
API Reference
PDFGenerator
De basis class voor PDF generatie met ingebouwde componenten.
| Method | Description |
|---|---|
create_report(title, subtitle, content_callback, data) |
Genereer complete PDF |
new_page(canvas, title, subtitle) |
Start nieuwe pagina |
check_page_break(canvas, current_y, needed_height, ...) |
Check of page break nodig is |
draw_section(canvas, y, title) |
Teken section header |
draw_info_block(canvas, y, items, title) |
Teken info block |
draw_radar_chart(canvas, x, y, data) |
Teken radar chart |
draw_performance_bar(canvas, y, data) |
Teken performance bar |
ColorScheme
| Color | Usage |
|---|---|
primary |
Headers, accenten |
secondary |
Secundaire accenten (goud) |
text_primary |
Hoofdtekst |
text_secondary |
Muted tekst |
success/warning/danger |
Status kleuren |
chart_primary/secondary/background |
Chart kleuren |
Licentie
Intern gebruik - KAA Gent
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kaag_pdf_exports-0.2.4.tar.gz.
File metadata
- Download URL: kaag_pdf_exports-0.2.4.tar.gz
- Upload date:
- Size: 239.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4daa28f7a5584b37a055456b24c8bd902a4bc430858559d2561fb8f02231715
|
|
| MD5 |
e9f6f8aadf5e5922861aead6c418b7b6
|
|
| BLAKE2b-256 |
3e3056f50c941544d3c1690c938efebef80ad47e01e7962eda091781da065992
|
File details
Details for the file kaag_pdf_exports-0.2.4-py3-none-any.whl.
File metadata
- Download URL: kaag_pdf_exports-0.2.4-py3-none-any.whl
- Upload date:
- Size: 240.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6af08f6fe6d21e8dff20bd3533d7c0af3e922a36e6eba1ed82a5aed35be83641
|
|
| MD5 |
a22cd5ce9fe0fb375b97c6ecc0746129
|
|
| BLAKE2b-256 |
e3eb7b68b6a1584b2b5cbe6383de12fdc6bb91cefa85cf74b34294f25387c791
|