# html-to-pdf Sluzba prevadi HTML dokument na PDF. Prijme adresu dokumentu nebo HTML primo v tele requestu a vrati soubor PDF. Je navrzena pro dokumenty o stovkach az tisicich stranek. Bezi v AppFactory na `https://services.csbot.cz/apps/html-to-pdf`. ## Jak to funguje Dva render enginy: - **WeasyPrint** je vychozi. Ma spravne CSS Paged Media, tedy countery stranek, opakovane hlavicky tabulek a zalozky. Nizka pametova narocnost. Nespousti JavaScript. - **Chromium** pres Playwright zvladne i dokumenty dokreslovane JavaScriptem. Nema pouzitelne countery stranek, cisla se proto dopisuji do hotoveho PDF. Velke dokumenty se renderuji po castech a vysledky se slucuji. Cisla stranek a obsah se dopocitavaji dvoupruchodovym renderem, aby po slouceni sedely. ## Spusteni ```bash docker build -t html-to-pdf . docker run --rm -p 8000:8000 html-to-pdf ``` ## Priklad volani Maly dokument synchronne: ```bash curl -X POST http://localhost:8000/convert \ -H "Content-Type: application/json" \ -d '{"source": {"url": "https://example.com/dokument.html"}}' \ --output dokument.pdf ``` Velky dokument asynchronne: ```bash # zarazeni do fronty curl -X POST http://localhost:8000/jobs \ -H "Content-Type: application/json" \ -d '{ "source": {"url": "https://example.com/velky.html"}, "page_numbers": {"enabled": true}, "toc": {"enabled": true} }' # stav curl http://localhost:8000/jobs/ # stazeni curl http://localhost:8000/jobs//result --output velky.pdf ``` ## Dokumentace Podrobnosti jsou ve slozce [documentation](documentation/README.md): - [api.md](documentation/api.md) endpointy a telo requestu - [architektura.md](documentation/architektura.md) jak sluzba funguje uvnitr - [konfigurace.md](documentation/konfigurace.md) environment variables - [provoz.md](documentation/provoz.md) nasazeni a znama omezeni - [zmeny.md](documentation/zmeny.md) zaznam zmen Interaktivni dokumentace API je na `/docs`.