Files
aletheia/docs/generate-pdfs.sh

67 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
cd "$(dirname "$0")"
LOGO_B64=$(base64 -w0 ../frontend/public/icons/icon-192.png)
TEMPLATE="pdf-template.html"
DATE=$(date +"%d/%m/%Y")
declare -A TITLES=(
["MANUAL-PRODUTO"]="Manual do Produto"
["MANUAL-VENDAS"]="Manual de Vendas"
["MANUAL-TECNICO"]="Manual Técnico"
["ARQUITETURA-TECNICA"]="Arquitetura Técnica"
)
for doc in MANUAL-PRODUTO MANUAL-VENDAS MANUAL-TECNICO ARQUITETURA-TECNICA; do
TITLE="${TITLES[$doc]}"
echo "Generating $doc.pdf..."
# Create cover + content HTML
COVER="<div class=\"cover\">
<img src=\"data:image/png;base64,$LOGO_B64\" class=\"cover-logo\" />
<h1>ALETHEIA</h1>
<div class=\"subtitle\">SCANNER NUTRICIONAL COM IA</div>
<div class=\"doc-title\">$TITLE</div>
<div class=\"version\">Versão 1.0 — $DATE</div>
<div class=\"tagline\">\"A verdade sobre o que você come\"</div>
</div>
<div class=\"page-header\">
<div style=\"display:flex;align-items:center;gap:10px\">
<img src=\"data:image/png;base64,$LOGO_B64\" />
<span class=\"brand\">ALETHEIA</span>
</div>
<span class=\"doc-type\">$TITLE</span>
</div>"
# Convert MD to HTML body
BODY=$(pandoc "$doc.md" --from markdown --to html 2>/dev/null)
# Build full HTML
FULL_HTML=$(cat "$TEMPLATE" | sed "s|\\\$body\\\$|$COVER\n$BODY|")
# Write temp HTML
echo "$FULL_HTML" > "/tmp/${doc}-full.html"
# Generate PDF with wkhtmltopdf
wkhtmltopdf \
--page-size A4 \
--margin-top 20mm \
--margin-bottom 20mm \
--margin-left 20mm \
--margin-right 20mm \
--enable-local-file-access \
--print-media-type \
--encoding utf-8 \
--quiet \
"/tmp/${doc}-full.html" "$doc.pdf" 2>/dev/null
if [ $? -eq 0 ]; then
SIZE=$(du -h "$doc.pdf" | cut -f1)
echo "$doc.pdf ($SIZE)"
else
echo " ❌ Failed $doc.pdf"
fi
done
echo "Done!"