import os
from reportlab.lib.pagesizes import A3, landscape
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle

PDF_OUT = "/home/magdalena/eee/alunos/47356812742818-maximo/Arranjo_Geral_e_Perfil_Saveiro_580.pdf"
IMG_PATH = "/home/magdalena/eee/alunos/47356812742818-maximo/Arranjo_Geral_Perfil_Saveiro_580.png"

doc = SimpleDocTemplate(
    PDF_OUT,
    pagesize=landscape(A3),
    leftMargin=25,
    rightMargin=25,
    topMargin=20,
    bottomMargin=20
)

styles = getSampleStyleSheet()

title_style = ParagraphStyle(
    'DocTitle',
    parent=styles['Normal'],
    fontName='Helvetica-Bold',
    fontSize=13,
    leading=17,
    textColor=colors.HexColor('#0F2A4A'),
    alignment=0
)

info_style = ParagraphStyle(
    'DocInfo',
    parent=styles['Normal'],
    fontName='Helvetica',
    fontSize=8.5,
    leading=12,
    textColor=colors.HexColor('#444444'),
    alignment=0
)

story = []

header_data = [
    [
        Paragraph("<b>BRANA PROJETOS NAVAIS / ESTALEIRO ESCOLA (EEE)</b><br/>"
                  "<b>PROJETO:</b> SAVEIRO DAY RACER 5,80 m — ARRANJO GERAL E ELEVAÇÃO DE PERFIL<br/>"
                  "<b>PROJETISTA:</b> MAXIMO | <b>DATA:</b> 15/09/2026 | <b>ESCALA:</b> 1:20 (A3)", title_style),
        Paragraph("<b>DIMENSÕES & ARMAÇÃO TRADICIONAL:</b><br/>"
                  "LOA: 5,80 m | BOA: 1,90 m | Pontal: 0,75 m | Calado: 0,25 m / 1,10 m<br/>"
                  "Armação: Vela de Pena / Içar (18,2 m²) | Mastro: 4,45 m | Verga: 6,70 m", info_style)
    ]
]
t_head = Table(header_data, colWidths=[650, 480])
t_head.setStyle(TableStyle([
    ('BACKGROUND', (0,0), (-1,-1), colors.HexColor('#F8FAFC')),
    ('BOX', (0,0), (-1,-1), 1, colors.HexColor('#0F2A4A')),
    ('INNERGRID', (0,0), (-1,-1), 0.5, colors.HexColor('#CBD5E1')),
    ('PADDING', (0,0), (-1,-1), 8),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
]))

story.append(t_head)
story.append(Spacer(1, 10))

if os.path.exists(IMG_PATH):
    img = Image(IMG_PATH, width=1130, height=660)
    story.append(img)

doc.build(story)
print(f"PDF de Arranjo Geral Saveiro gerado: {PDF_OUT}")
