Skip to content

onde alma mora #5593

@g4merdr0id123-prog

Description

@g4merdr0id123-prog

from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, PageBreak
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas

PDF final

file_path = "/mnt/data/onde_a_alma_mora_completo.pdf"

doc = SimpleDocTemplate(file_path, pagesize=A4,
rightMargin=72, leftMargin=72,
topMargin=72, bottomMargin=72)

styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name='TitleStyle', fontName='Times-Roman', fontSize=28, leading=32, alignment=1, spaceAfter=30))
styles.add(ParagraphStyle(name='PrefaceStyle', fontName='Times-Roman', fontSize=14, leading=20, alignment=0, spaceAfter=18))
styles.add(ParagraphStyle(name='Poem', fontName='Georgia', fontSize=14, leading=22, alignment=1, spaceAfter=20))

story = []

Função para adicionar borda em todas as páginas

def add_border(canvas_obj, doc_obj):
width, height = A4
canvas_obj.setLineWidth(1)
canvas_obj.rect(36, 36, width-72, height-72) # borda de 36pt de margem

Capa estilizada

story.append(Spacer(1, 1.5*inch))

Imagem de fundo opcional da capa

story.append(Image('/caminho/para/fundo_capa.png', width=A4[0], height=A4[1]))
story.append(Spacer(1, 2inch))
story.append(Paragraph("Onde a Alma Mora", ParagraphStyle(
name='CoverTitle', fontName='Times-Roman', fontSize=36, alignment=1, textColor='black', spaceAfter=20)))
story.append(Paragraph("Livro de Poesias", ParagraphStyle(
name='CoverSubtitle', fontName='Times-Roman', fontSize=18, alignment=1, textColor='black')))
story.append(Spacer(1, 4
inch))
story.append(Paragraph("Autor: Seu Nome", ParagraphStyle(
name='CoverAuthor', fontName='Times-Roman', fontSize=14, alignment=1, textColor='black')))
story.append(PageBreak())

Prefácio

prefacio = """
Este livro nasceu da necessidade de transformar em palavras as múltiplas faces da existência.
Aqui, o leitor encontrará versos que falam de tristeza e felicidade, de amor e paixão, da vida e da morte.
É um convite para passear pela alma humana, onde luz e sombra convivem, onde a dor se mistura ao encanto,
e onde sempre resta uma centelha de eternidade.
"""
story.append(Paragraph("Prefácio", styles['TitleStyle']))
story.append(Spacer(1, 0.3*inch))
story.append(Paragraph(prefacio, styles['PrefaceStyle']))
story.append(PageBreak())

Poemas completos (substitua pelos 50 poemas)

poemas = [
"No silêncio da noite fria,\nA lua observa minha agonia.\nSombras dançam na parede,\nSussurros da alma que não se mede.",

... até o 50º poema

]

Caminho das imagens (01.png a 50.png)

imagens = [f"/caminho/para/imagens/{str(i+1).zfill(2)}.png" for i in range(50)]

for i in range(50):
story.append(Spacer(1, 0.5inch))
story.append(Image(imagens[i], width=7
inch, height=7inch))
story.append(Spacer(1, 0.3
inch))
story.append(Paragraph(f"{poemas[i].replace('\n','
')}", styles['Poem']))
story.append(Image('/caminho/para/icone.png', width=0.4inch, height=0.4inch))
story.append(PageBreak())

Monta PDF com bordas

doc.build(story, onFirstPage=add_border, onLaterPages=add_border)

file_path

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions