# Create a formatted book-style PDF using reportlab.platypus
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.pagesizes import A5
from reportlab.lib.units import cm
from reportlab.lib.enums import TA_CENTER, TA_JUSTIFY
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os
file_path = "/mnt/data/olume_giden_yol_kitap_duzeni.pdf"
styles = getSampleStyleSheet()
title_style = ParagraphStyle(
"Title",
parent=styles["Title"],
alignment=TA_CENTER,
fontSize=26,
spaceAfter=20
)
subtitle_style = ParagraphStyle(
"Subtitle",
parent=styles["Normal"],
alignment=TA_CENTER,
fontSize=16,
spaceAfter=20
)
heading_style = ParagraphStyle(
"Heading",
parent=styles["Heading2"],
alignment=TA_CENTER,
spaceAfter=14
)
text_style = ParagraphStyle(
"Text",
parent=styles["BodyText"],
alignment=TA_JUSTIFY,
fontSize=11,
leading=16,
spaceAfter=10
)
content = []
# Title page
content.append(Spacer(1, 5*cm))
content.append(Paragraph("ÖLÜME GİDEN YOL", title_style))
content.append(Paragraph("Azad'ın Hikâyesi", subtitle_style))
content.append(Spacer(1, 2*cm))
content.append(Paragraph("Özgür Mutlu", subtitle_style))
content.append(PageBreak())
# Preface
preface_text = """
Bu hikaye, güneşin sadece binaları ısıttığı ama ruhları teğet geçtiği o gri mahallelerin, susturulmuş babaların ve vaktinden önce büyümek zorunda kalan çocukların hikayesidir.
1990’ların Türkiye’si; sokakların sloganlarla yankılandığı, beyaz arabaların birer ölüm habercisi gibi köşe başlarında beklediği, adaletin ise sadece mahkeme duvarlarında asılı birer levhadan ibaret kaldığı bir dönemdi.
Azad, bu karmaşanın tam kalbinde, Ümraniye’nin bir gecekondusunda dünyaya gözlerini açtığında kaderi çoktan siyah-beyaz bir gazete kupürüne mühürlenmişti.
Bu kitap; bir çocuğun sessizliğinin nasıl bir direnişe dönüştüğünü, bir kar topunun masumiyetten öfkeye nasıl evrildiğini ve bir babanın yokluğunun bir hayatı nasıl şekillendirdiğini anlatır.
"""
content.append(Paragraph("Ön Söz", heading_style))
for p in preface_text.split("\n\n"):
content.append(Paragraph(p.strip(), text_style))
content.append(PageBreak())
# Chapter title
content.append(Paragraph("1. Bölüm — Temmuzun Çocuğu", heading_style))
chapter_text = """
Temmuzun kavurucu sıcağı, 1990 yılının o gününde Ümraniye'nin yoksul bir gecekondu mahallesinin üzerine çökmüştü. Hava o kadar ağırdı ki sanki zaman bile yavaşlamıştı.
O boğucu atmosferin ortasında Fatma'nın çaresiz çığlıkları yankılandı. Yokluğun ve sefaletin kol gezdiği o karanlık odada bir çocuk dünyaya geliyordu: Azad.
Ama bu doğum bir sevinç değil, sessiz bir kaderin başlangıcıydı.
Azad büyürken mahallenin sokaklarında yalnızca çocuk sesleri değil; tehditler, fısıltılar ve korkular da dolaşıyordu. Mahallenin köşelerinde toplanan sert bakışlı adamlar, bakkallardan haraç toplayan karanlık yüzler ve geceleri duyulan kavga sesleri…
Azad henüz küçük bir çocuktu ama o sessizliğiyle her şeyi görüyordu.
Bir kış günü karların üzerinde yuvarladığı küçük bir kar topu, onun hayatında ilk kez bir şeyi değiştirebildiğini hissettirmişti. O küçük kar topu büyüdükçe Azad’ın içinde de görünmez bir şey büyüyordu: merak… ve bir gün öfkeye dönüşecek olan o sessiz güç.
"""
for p in chapter_text.split("\n\n"):
content.append(Paragraph(p.strip(), text_style))
content.append(PageBreak())
# Author section
author_text = """
Özgür Mutlu, toplumsal gerçekçi bakış açısını şiirsel bir anlatımla harmanlayan bir yazardır.
Antoloji platformlarındaki şiirleriyle tanınan Mutlu, susturulmuş hayatların ve adalet arayışının hikâyelerini kaleme almaktadır. İlk eseri “Sessiz Çığlıklar” adlı şiir kitabıdır.
“Ölüme Giden Yol” ise 1990’ların karanlık atmosferinde büyüyen bir çocuğun hikâyesini anlatan roman serisinin ilk bölümüdür.
"""
content.append(Paragraph("Yazar Hakkında", heading_style))
for p in author_text.split("\n\n"):
content.append(Paragraph(p.strip(), text_style))
doc = SimpleDocTemplate(
file_path,
pagesize=A5,
rightMargin=2*cm,
leftMargin=2*cm,
topMargin=2*cm,
bottomMargin=2*cm
)
doc.build(content)
file_path