from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, PageBreak
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.enums import TA_CENTER
from reportlab.lib.units import cm

path = "/mnt/data/fac_simile_relazione_rissa_villapiana.pdf"

doc = SimpleDocTemplate(
    path, pagesize=A4,
    rightMargin=1.7*cm, leftMargin=1.7*cm,
    topMargin=1.5*cm, bottomMargin=1.5*cm
)
styles = getSampleStyleSheet()
title = ParagraphStyle("title", parent=styles["Heading1"], alignment=TA_CENTER, fontSize=15, leading=18)
subtitle = ParagraphStyle("subtitle", parent=styles["Normal"], alignment=TA_CENTER, fontSize=9, leading=12)
body = ParagraphStyle("body", parent=styles["BodyText"], fontSize=10, leading=15)
small = ParagraphStyle("small", parent=styles["BodyText"], fontSize=8, leading=10)

story = []
story += [
    Paragraph("FAC-SIMILE — DOCUMENTO DI FANTASIA", title),
    Paragraph("NON È UN VERBALE, DENUNCIA O ATTO UFFICIALE DELLE FORZE DELL’ORDINE", subtitle),
    Spacer(1, 12),
    Paragraph("RELAZIONE DESCRITTIVA DELL’EVENTO", title),
    Spacer(1, 12),
]

data = [
    ["Soggetto indicato", "Rabie Barakat"],
    ["Data di nascita", "17/04/2007"],
    ["Origine / cittadinanza indicata", "Marocchino"],
    ["Luogo dell’episodio", "Villapiana (CS)"],
    ["Data", "Venerdì 7 agosto 2026"],
    ["Ora indicativa", "01:30 circa"],
    ["Tipologia dell’episodio", "Colluttazione / rissa tra più persone"],
]
t = Table(data, colWidths=[6.2*cm, 10.6*cm])
t.setStyle(TableStyle([
    ("GRID", (0,0), (-1,-1), 0.6, colors.grey),
    ("BACKGROUND", (0,0), (0,-1), colors.whitesmoke),
    ("FONTNAME", (0,0), (-1,-1), "Helvetica"),
    ("FONTNAME", (0,0), (0,-1), "Helvetica-Bold"),
    ("FONTSIZE", (0,0), (-1,-1), 9),
    ("VALIGN", (0,0), (-1,-1), "TOP"),
    ("TOPPADDING", (0,0), (-1,-1), 6),
    ("BOTTOMPADDING", (0,0), (-1,-1), 6),
]))
story += [t, Spacer(1, 16)]

sections = [
("1. Premessa",
"""Il presente elaborato è una ricostruzione narrativa e puramente fittizia di un ipotetico episodio avvenuto in luogo pubblico. I nominativi e le circostanze riportate sono utilizzati esclusivamente per finalità sceniche e non costituiscono accertamento di responsabilità."""),
("2. Descrizione dell’episodio",
"""Secondo la ricostruzione immaginaria, in data 07/08/2026, alle ore 01:30 circa, si sarebbe verificato a Villapiana un alterco tra più giovani successivamente degenerato in una colluttazione. La situazione avrebbe attirato l’attenzione delle persone presenti e richiesto l’intervento delle autorità."""),
("3. Identificazione del soggetto",
"""Nel contesto della ricostruzione viene indicato Rabie Barakat, nato il 17/04/2007 e di origine marocchina. L’indicazione dell’origine è riportata esclusivamente come elemento narrativo e non implica alcuna valutazione sul soggetto."""),
("4. Dinamica ipotetica",
"""L’episodio sarebbe iniziato a seguito di un diverbio verbale. Nel corso della discussione, alcuni dei presenti sarebbero passati a spintoni e successivamente a contatti fisici, dando luogo a una rissa di breve durata. Le parti sarebbero state successivamente separate."""),
("5. Attività ipoteticamente svolta",
"""Nella ricostruzione scenica, gli operatori avrebbero proceduto alla messa in sicurezza dell’area, all’identificazione dei presenti e alla raccolta delle prime informazioni sull’accaduto. Eventuali ulteriori accertamenti sarebbero rimessi alle competenti autorità."""),
("6. Esito della ricostruzione",
"""Il presente testo non stabilisce colpe, non rappresenta una denuncia e non attribuisce formalmente alcun reato a Rabie Barakat o ad altre persone. Qualsiasi riferimento a una possibile responsabilità ha esclusivamente carattere narrativo."""),
]

for heading, text in sections:
    story += [Paragraph(heading, styles["Heading3"]), Paragraph(text, body), Spacer(1, 8)]

story += [
    Spacer(1, 10),
    Paragraph("UFFICIALE", title),
    Spacer(1, 6),
    Paragraph("Questo documento è stato creato come elemento di fantasia e non proviene da Polizia di Stato, Carabinieri, Guardia di Finanza, Procura della Repubblica o altra autorità pubblica.", small)
]

doc.build(story)
print(f"Creato: {path}")

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: