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
from reportlab.pdfgen import canvas
from pypdf import PdfReader, PdfWriter
import io

PDF_OUT = "/home/magdalena/eee/alunos/47356812742818-maximo/Arranjo_Geral_e_Perfil_Maximo.pdf"
IMG_PATH = "/home/magdalena/eee/alunos/47356812742818-maximo/Arranjo_Geral_Perfil_Maximo.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=14,
    leading=18,
    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 = []

# Cabeçalho
header_data = [
    [
        Paragraph("<b>BRANA PROJETOS NAVAIS / ESTALEIRO ESCOLA (EEE)</b><br/>"
                  "<b>PROJETO:</b> 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 PRINCIPAIS:</b><br/>"
                  "LOA: 5,80 m | BOA: 1,90 m | Pontal: 0,75 m<br/>"
                  "Calado: 0,25 m / 1,10 m | Área Vélica: 17,5 m² (Vela de Içar)", 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))

# Imagem da Prancha
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 gerado: {PDF_OUT}")
