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/Plano_Velico_Saveiro_5_80m.pdf"
IMG_PATH = "/home/magdalena/eee/alunos/47356812742818-maximo/plano_velico_saveiro_5_80m.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 — ESPECIFICAÇÃO DO PLANO VÉLICO TRADICIONAL<br/>"
                  "<b>PROJETISTA:</b> MAXIMO | <b>DATA:</b> 15/09/2026 | <b>ARMAÇÃO:</b> VELA DE PENA (IÇAR)", title_style),
        Paragraph("<b>PROPORÇÕES EM ESCALA REAL & ESCALA 1:25:</b><br/>"
                  "LOA: 5,80 m (23,2 cm) | Boca: 1,90 m (7,6 cm) | Área Vélica: 18,2 m² (291 cm²)<br/>"
                  "Pena (P): 7,20 m (28,8 cm) | Esteira (E): 5,40 m (21,6 cm) | Mastro: 4,45 m (17,8 cm)", 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 Plano Vélico gerado: {PDF_OUT}")
