Biblioteka do generowania wizualizacji PDF faktur oraz UPO na podstawie plików XML po stronie klienta.
Biblioteka zawiera następujące funkcjonalności:
- Generowanie wizualizacji PDF faktur
- Generowanie wizualizacji PDF UPO
-
Zainstaluj Node.js w wersji 22.14.0
Możesz pobrać Node.js z oficjalnej strony: https://nodejs.org -
Sklonuj repozytorium i przejdź do folderu projektu:
git clone https://github.com/CIRFMF/ksef-pdf-generator# cd ksef-pdf-generator -
Zainstaluj zależności:
npm install
-
Uruchom aplikację:
npm run dev
Aplikacja uruchomi się domyślnie pod adresem: http://localhost:5173/
- Jak zbudować bibliotekę produkcyjnie:
npm run build
- Po uruchomieniu aplikacji przejdź do Wygeneruj wizualizacje faktury PDF.
- Wybierz plik XML zgodny ze schemą FA(1), FA(2) lub FA(3).
- Przykładowy plik znajduje się w folderze:
examples/invoice.xml - Po wybraniu pliku, PDF zostanie wygenerowany.
- Po uruchomieniu aplikacji przejdź do Wygeneruj wizualizacje UPO PDF.
- Wybierz plik XML zgodny ze schemą UPO v4_2.
- Przykładowy plik znajduje się w folderze:
examples/upo.xml - Po wybraniu pliku, PDF zostanie wygenerowany.
Aplikacja zawiera zestaw testów napisanych w TypeScript, które weryfikują poprawność działania aplikacji.
Projekt wykorzystuje Vite do bundlowania i Vitest jako framework testowy.
-
Uruchom wszystkie testy:
npm run test -
Uruchom testy z interfejsem graficznym:
npm run test:ui
-
Uruchom testy w trybie CI z raportem pokrycia:
npm run test:ci
Raport: /coverage/index.html
- Polsko-angielskie nazwy stosowane w zmiennych, typach i metodach wynikają bezpośrednio ze struktury pliku schemy
faktury.
Takie podejście zapewnia spójność i ujednolicenie nazewnictwa z definicją danych zawartą w schemie XML.
- Struktura danych interfejsu FA odzwierciedla strukturę danych źródłowych pliku XML, zachowując ich logiczne powiązania i hierarchię w bardziej czytelnej formie.
- Typy odzwierciedlają strukturę danych pobieranych z XML faktur oraz ułatwiają generowanie PDF
- Typy i interfejsy są definiowane w folderze types oraz plikach z rozszerzeniem types.ts.
- Vitest Docs — https://vitest.dev/guide/
- Vite Docs — https://vitejs.dev/guide/
- TypeScript Handbook — https://www.typescriptlang.org/docs/
- Upewnij się, że pliki XML są poprawnie sformatowane zgodnie z odpowiednią schemą.
- W przypadku problemów z Node.js, rozważ użycie menedżera wersji Node, np. nvm.