# Dokumentace sluzby html-to-pdf Sluzba prevadi HTML dokument na PDF. Prijme adresu dokumentu nebo HTML primo v tele requestu a vrati soubor PDF. Zvlada dokumenty o tisicich stranek. ## Obsah dokumentace - [api.md](api.md) popis endpointu a tel requestu - [architektura.md](architektura.md) jak sluzba funguje uvnitr - [konfigurace.md](konfigurace.md) environment variables - [provoz.md](provoz.md) nasazeni, Docker, znama omezeni - [zmeny.md](zmeny.md) zaznam zmen ## Aktualni stav Verze 1.0.0, stav development. Hotovo: - synchronni endpoint POST /convert - asynchronni endpoint POST /jobs se sledovanim stavu a stahovanim vysledku - dva render enginy, weasyprint a chromium, plus rezim auto - chunkovani velkych dokumentu a slucovani vysledku - dvoupruchodovy render obsahu se skutecnymi cisly stranek - cislovani stranek pres CSS countery nebo pres cislovaci vrstvu - SSRF ochrana s kontrolou po DNS resolvu a na kazdem presmerovani - hlaseni nedostupnych assetu v odpovedi jobu - fronta s omezenym poctem paralelnich workeru - volitelny callback po dokonceni jobu - strukturovane JSON logovani s job_id Neni hotovo a neni ani v zadani: - autentizace. Sluzba je bez overovani, pristup resi reverse proxy. Pokud ma byt chranena, je potreba se domluvit na zpusobu, typicky hlavicka X-Api-Key. Do te doby zadna neni. - trvala fronta. Restart sluzby znamena ztratu rozpracovanych jobu, ty se oznaci jako failed s duvodem service_restarted. ## Rychly priklad ```bash curl -X POST https://services.csbot.cz/apps/html-to-pdf/convert \ -H "Content-Type: application/json" \ -d '{"source": {"url": "https://example.com/dokument.html"}}' \ --output dokument.pdf ``` Pro velky dokument se pouziva asynchronni cesta: ```bash curl -X POST https://services.csbot.cz/apps/html-to-pdf/jobs \ -H "Content-Type: application/json" \ -d '{"source": {"url": "https://example.com/velky.html"}, "toc": {"enabled": true}}' ```