StratoPilot / utils /helpers.py
JARVISXIRONMAN's picture
Create utils/helpers.py
056a86a verified
raw
history blame contribute delete
979 Bytes
import os
import re
from fpdf import FPDF
from datetime import datetime
def generate_pdf(title: str, content: str) -> str:
# Sanitize and truncate title for filename
safe_title = re.sub(r'[\\/*?:"<>|\n]', "_", title)
safe_title = safe_title.strip().replace(" ", "_").lower()
# Truncate to max 50 characters to avoid long path errors
safe_title = safe_title[:50]
# Add timestamp to ensure uniqueness
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"{safe_title}_{timestamp}.pdf"
# Ensure export directory exists
export_dir = "exports"
os.makedirs(export_dir, exist_ok=True)
path = os.path.join(export_dir, filename)
# Create the PDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt=title.upper(), ln=True, align="C")
pdf.ln(10)
for line in content.split("\n"):
pdf.multi_cell(0, 10, txt=line.strip())
pdf.output(path)
return path