Spaces:
Sleeping
Sleeping
| from fpdf import FPDF | |
| def sanitize_text(text): | |
| # Replaces problematic characters with safe equivalents | |
| return text.replace("●", "*").encode("latin-1", "replace").decode("latin-1") | |
| def generate_pdf(results, overall_score, filename="ContractRiskReport.pdf"): | |
| pdf = FPDF() | |
| pdf.add_page() | |
| pdf.set_font("Arial", size=12) | |
| pdf.cell(200, 10, txt="Contract Risk Analysis Report", ln=True, align="C") | |
| pdf.ln() | |
| pdf.cell(200, 10, txt=f"Overall Risk Score: {overall_score:.2f}", ln=True) | |
| for r in results: | |
| pdf.set_text_color(255, 0, 0) if r['risk_level'] == "High" else pdf.set_text_color(0) | |
| clause_text = sanitize_text(r['clause']) # 👈 sanitize here | |
| pdf.multi_cell(0, 10, f"[{r['risk_level']}] {clause_text}") | |
| pdf.output(filename) | |
| return filename | |