67 lines
1.8 KiB
Bash
Executable File
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!"
|