Silnik pozwala na konwersję kodu HTML do dokumentów PDF zgodnych ze standardem PDF/UA-1 (ISO 14289-1) oraz wytycznymi WCAG 2.1 AA. Poniżej znajduje się pełny opis endpointów REST API, narzędzia wiersza poleceń oraz reguł CSS Paged Media.
Przyjmuje obiekt JSON lub formularz multipart. Zwraca strumień binarny PDF lub obiekt JSON z base64 i raportem audytu.
curl -X POST http://10.8.0.5:5563/api/v1/render \
-H "Content-Type: application/json" \
-d '{
"html": "<html lang=\"pl\"><head><title>Raport</title></head><body><h1>Raport Oficjalny</h1><p>Przykładowa treść.</p></body></html>",
"title": "Raport Oficjalny",
"author": "Jan Kowalski",
"lang": "pl-PL",
"size": "A4",
"orientation": "portrait"
}' \
--output dokument.pdf
import requests
url = "http://10.8.0.5:5563/api/v1/render"
payload = {
"html": "<html lang='pl'><head><title>Faktura</title></head><body><h1>Faktura</h1></body></html>",
"title": "Faktura",
"format": "pdf"
}
r = requests.post(url, json=payload)
with open("wynik.pdf", "wb") as f:
f.write(r.content)
Dostępne szablony: accessible_report, invoice, scientific_paper, official_certificate, product_catalog.
curl -X POST http://10.8.0.5:5563/api/v1/render-template \
-H "Content-Type: application/json" \
-d '{
"template_id": "invoice",
"data": {
"invoice_number": "FV/AUTO/01",
"total_gross": 15990.00
}
}' \
--output faktura.pdf
Zwraca ocenę punktową (0-100%), listę błędów i wskazówki naprawcze.
curl -X POST http://10.8.0.5:5563/api/v1/validate \
-H "Content-Type: application/json" \
-d '{"html": "<html><body><img src=\"test.jpg\"></body></html>"}'
curl http://10.8.0.5:5563/api/v1/health
# Odpowiedź: {"status":"healthy","version":"2.0.0","engine":"WeasyPrint + PDF/UA-1 Engine"}
Narzędzie cli.py umożliwia generowanie i weryfikację dokumentów bezpośrednio z konsoli oraz skryptów powłoki:
| Polecenie Bash | Opis |
|---|---|
python3 cli.py convert -i input.html -o out.pdf --audit |
Konwersja pliku HTML do PDF/UA z audytem WCAG. |
cat input.html | python3 cli.py convert - -o out.pdf |
Konwersja strumieniowa ze standardowego wejścia (potok / pipe). |
python3 cli.py render-template -t invoice -d data.json -o faktura.pdf |
Generowanie PDF z wbudowanego szablonu i danych JSON. |
python3 cli.py list-templates |
Wyświetlenie listy dostępnych szablonów. |
python3 cli.py inspect-pdf dokument.pdf |
Inspekcja struktury tagów /StructTreeRoot i metadanych. |
python3 cli.py validate input.html |
Walidacja reguł WCAG w pliku HTML. |
<html lang="pl"> → /Catalog /Lang (pl-PL).<title> w HTML → flaga DisplayDocTitle: true.<h1>, logiczna kolejność bez przeskoków.alt="..." dla grafik lub role="presentation" dla ozdobników.<th scope="col|row"> oraz podpis <caption>.@page { @bottom-right { content: "Strona " counter(page) " z " counter(pages); } }@page:first { @top-left { content: normal; } }table tr, figure, .card { break-inside: avoid; }thead { display: table-header-group; }