feat(verbale): export PDF verbale istruttoria via weasyprint
- Dockerfile: dipendenze sistema libpango/libgdk-pixbuf/libcairo/shared-mime-info + fonts-dejavu per rendering WeasyPrint su debian slim - requirements: weasyprint==61.2 + pydyf==0.10.0 (vincolo compatibilita, weasyprint 62.x ha bug con pydyf 0.11 su stream.transform) + jinja2==3.1.3 - templates_jinja/verbale_istruttoria.html: layout A4 professionale con intestazione Gepafin, dati pratica, tabelle fatture raggruppate per categoria (dichiarato vs ammesso con motivazione rettifica), ULA, documenti, soccorsi istruttori, totali, checklist finale, note istruttore, blocco firma - routers/verbale: endpoint /verbale.html (debug preview) e /verbale.pdf (weasyprint on-the-fly) — solo ruoli istruttore/superadmin - main: include router verbale, version bump 0.3.0 Testato E2E: PDF 27KB generato su pratica UNDER_REVIEW, magic bytes PDF-1.7 OK.
This commit is contained in:
@@ -3,6 +3,15 @@ FROM python:3.12-slim
|
||||
WORKDIR /app
|
||||
ENV TZ=Europe/Rome PYTHONUNBUFFERED=1
|
||||
|
||||
# Dipendenze sistema: weasyprint serve libpango, libgdk-pixbuf, libcairo,
|
||||
# shared-mime-info per MIME detection, libffi per cffi, fonts-dejavu come fallback.
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libpango-1.0-0 libpangoft2-1.0-0 \
|
||||
libgdk-pixbuf-2.0-0 libcairo2 \
|
||||
libffi-dev shared-mime-info \
|
||||
fonts-dejavu fonts-dejavu-core \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
|
||||
Reference in New Issue
Block a user