Moderní generátor PDF reportů z CSV dat pro Jira a vývojové týmy. Tento projekt umožňuje uživatelům nahrát CSV export (např. z Jiry), definovat vizuální styl a mapování polí pomocí grafického editoru a následně vygenerovat čisté, profesionální PDF dokumenty.
- Dynamické Mapování: Nahrajte libovolné CSV a přiřaďte sloupce k polím v PDF (Title, Body, Meta).
- Editor Profilů: Kompletní vizuální editor pro nastavení barev, velikosti písma, tloušťky linek a rozvržení hlavičky.
- Real-time Preview: Okamžité generování PDF dokumentů na straně klienta.
- Custom Design: Podpora vlastních fontů (SN Pro) a moderního tmavého UI.
- Persistentní Nastavení: Export a import konfiguračních profilů ve formátu JSON.
- Framework: Next.js (React)
- PDF Engine: @react-pdf/renderer
- UI: React Bootstrap & React Icons
- Data Parsing: PapaParse
├── components/
│ ├── Layout.js # Společný obal aplikace (Navbar, Footer)
│ └── MyPdfDocument.js # Definice PDF šablony a stylů
├── pages/
│ ├── _app.js # Globální nastavení a import CSS
│ ├── index.js # Hlavní generátor PDF
│ └── mapping.js # Editor profilu a mapování dat
├── public/
│ ├── data/ # VSTUPNÍ DATA (JSON profily a CSV data)
│ └── fonts/ # TTF fonty pro PDF
└── styles/
└── theme.css # Custom Dark Mode styling
- Instalace
Nejprve nainstalujte potřebné balíčky: Bash
npm install
# nebo
yarn install
- Spuštění vývojového serveru Bash
npm run dev
Aplikace bude dostupná na http://localhost:3000.
-
Použití
Přejděte do Editoru Profilu (/mapping).
Nahrajte vzorové CSV pro načtení hlaviček.
Upravte barvy, fonty a mapování polí.
Uložte profil (stáhne se jako JSON).
Na hlavní stránce nahrajte CSV s daty + váš uložený profil a klikněte na Stáhnout PDF.
{
"meta": {
"title": "Jira Report",
"project": "L2 Support"
},
"schema": [
{ "id": "Summary", "label": "Téma", "type": "title" },
{ "id": "Status", "label": "Stav", "type": "meta" }
],
"styles": {
"types": {
"title": { "fontSize": 18, "color": "#0052CC", "fontWeight": "bold" }
}
}
}Projekt je otevřený pro jakákoliv vylepšení. Stačí vytvořit Pull Request nebo nahlásit Issue.
Vytvořeno s ❤️ pro efektivnější reportování.