Skip to content

edi194/KSeF_PDF_Generator

Repository files navigation

KSeF Invoice Converter (C# / .NET 10)

Konwersja XML faktur KSeF (Krajowy System e-Faktur) do PDF, przekonwertowana z kodu JavaScript do natywnego C#.

Cały projekt bazowany jest na generatorze PROFAK który jest tutaj: https://github.com/lkosson/profak/blob/master/IO/KSEFPDF/ksef-fe-invoice-converter.umd.cjs

Na ten moment brak wsparcia UPO!

Wymagania

  • .NET 10 SDK
  • Czcionka Roboto (Regular + Bold) wbudowana w bibliotekę jako EmbeddedResource — nie wymaga instalacji w systemie

Instalacja / użycie jako biblioteka

dotnet build -c Release

Wyjściowa DLL: bin/Release/net10.0/KSeF_PDF_Generator.dll

Zależności NuGet (automatycznie przywrócone):

  • itext7 — generowanie PDF
  • QRCoder — kod QR do weryfikacji w KSeF

API

using KSeF_PDF_Generator;

// Generowanie PDF jako byte[]
byte[] pdf = KsefInvoiceGenerator.GenerateInvoiceFromString(
    xmlString,            // string — XML faktury KSeF
    nrKSeF: "abc-123",   // string? — numer referencyjny KSeF (opcjonalny)
    ksefHash: "hash=="   // string? — hash do URL weryfikacji w QR (opcjonalny)
);

File.WriteAllBytes("faktura.pdf", pdf);

Obsługiwane formaty

  • FA (1) — NIP
  • FA (2) — NIP + Rejestr
  • FA (3) — NIP + Rejestr + Status podatnika (domyślnie dla plików XML z atrybutem kodSystemowy="FA (3)")

Przykład użycia

var xml = File.ReadAllText("faktura.xml");
var pdf = KsefInvoiceGenerator.GenerateInvoiceFromString(
    xml,
    nrKSeF: "XXXXXXXXXXXXXXXXX-XXXXXXXXX",
    ksefHash: "abc123base64hash"
);
File.WriteAllBytes("faktura.pdf", pdf);

Sekcje generowanej faktury

  1. Nagłówek KSeF (tytuł, numer faktury, typ, numer KSeF)
  2. Dane faktury korygowanej
  3. Sprzedawca + Nabywca (dane identyfikacyjne + adres, układ dwukolumnowy 50/50)
  4. Szczegóły (daty, waluta, kurs)
  5. Pozycje / Wiersze faktury (tabela z dynamicznymi kolumnami)
  6. Rabat
  7. Zamówienia
  8. Podsumowanie stawek VAT (P_13_x / P_14_x)
  9. Adnotacje
  10. Dodatkowe informacje
  11. Rozliczenie faktur zaliczkowych
  12. Płatność (status, termin, rachunek bankowy)
  13. Warunki transakcji
  14. Stopka (Rejestry, BDO)
  15. Sekcja weryfikacji KSeF (kod QR + link)

Konfiguracja QR

URL weryfikacji budowany automatycznie z pól faktury:

https://qr.ksef.mf.gov.pl/invoice/{nip}/{data}/{hash_urlsafe}

Hash konwertowany do formatu URL-safe przez HashUtils.ToUrlSafeBase64():

  • usuwa = z końca
  • zamienia +-
  • zamienia /_

Różnice od oryginalnego JS

  • Czcionka: Roboto zamiast domyślnej pdfmake
  • PDF: iText7 zamiast pdfmake
  • Parsowanie XML: XDocument (LINQ to XML) zamiast sax.js + xml2js
  • Kod QR: QRCoder zamiast zewnętrznej biblioteki JS
  • Układ dwukolumnowy 50/50 z sztywnym podziałem (SetFixedLayout)

Licencja

MIT

About

Generator wizualizacji faktury KSeF PDF w natywnym C#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages