Fra Nav · Bygd for gjenbruk
pdfgenrs
Typst-mal inn. Ferdig dokument ut.
pdfgenrs tar en Typst-mal og litt JSON-data og gir deg en arkivgyldig(PDF/A-2a og PDF/UA-1) PDF tilbake over HTTP. Samme oppskrift bak brev, vedtak og kvitteringer — i produksjon i Nav.
#heading(level: 1)[Vedtak om #ytelse]
Til #navn
Sak #saksnr
Vi har innvilget
søknaden din om
#ytelse, datert
#dato
Med vennlig hilsen
#saksbehandlendeenhet
Vedtak
Vedtak om foreldrepenger
Til Kari Nordmann
Sak 4711/2026
Vi har innvilget søknaden din om foreldrepenger, datert 14. juli 2026.
Med vennlig hilsen
Saksbehandlende enhet
Slik virker det
pdfgenrs er én liten rust-tjeneste (Axum) som lastes med malene dine og svarer på HTTP. Du eier malene og dataene — pdfgenrs står for forvandlingen.
Steg 1
Skriv malen
En
.typ-fil med Typst undertemplates/ditt_teamnavn/. Feltene{{navn}}og{{dato}}er hull som fylles av dataene.Steg 2
Send JSON-data
Dataene kobles til malen over HTTP. Under utvikling leser pdfgenrs testdata fra
data/<app>/<mal>.json, så du ser resultatet i nettleseren mens du jobber.Steg 3
Få PDF-en tilbake
GET /api/v1/genpdf/<app>/<mal>gir en ferdig PDF.
Bygd for arkivet — og for lesbarhet
Et offentlig dokument skal kunne arkiveres i årevis og leses av alle. pdfgenrs sikter mot standardene som gjør nettopp det, og har gjort det i produksjon.
- Siden 2026
- pdfgenrs har generert dokumenter i Nav siden 2026 — brev, vedtak og kvitteringer bygget på det samme mønsteret.
- PDF/A-2a
- Målet er PDF-er som er gyldige for langtidsarkivering, ikke bare for øyeblikket de lages i.
- PDF/UA
- Universell utforming er et uttalt mål: dokumenter som også er tilgjengelige, ikke bare arkivgyldige.
Kom i gang
pdfgenrs brukes oftest som et basisbilde: du legger malene, fontene og ressursene dine oppå. Alt du trenger er Docker.
1 · Dockerfile
FROM ghcr.io/navikt/pdfgenrs:<release>
COPY templates /app/templates
2 · Mappestruktur
# grunnstruktur
mkdir {templates,data}
# én mappe per team/app
mkdir {templates,data}/ditt_teamnavnLegg .typ-malene i templates/ditt_teamnavn/ og tilhørende testdata i data/ditt_teamnavn/. Navnet blir en del av API-stien.
Ta den i bruk i din virksomhet
pdfgenrs er ikke bundet til Nav. Mønsteret — mal pluss data pluss en liten tjeneste — passer enhver virksomhet som må lage mange like dokumenter.
Det du trenger
- Docker til å kjøre basisbildet fra
ghcr.io/navikt/pdfgenrs - Typst-maler og JSON-data for dokumentene dine
- Fontene du vil bake inn, om standardoppsettet ikke holder
Det du bør vite
MIT-lisensiert og fritt å bruke. Vi lover ingen support-SLA, men issues og pull requests er velkomne.
Klar for enhver norsk etat