Update app.py
Browse files
app.py
CHANGED
|
@@ -98,22 +98,41 @@ def _build_text(r: dict, mc_passes: int) -> str:
|
|
| 98 |
|
| 99 |
# ββ PDF BUILDER βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 100 |
def _build_pdf(text: str):
|
|
|
|
| 101 |
try:
|
| 102 |
from fpdf import FPDF
|
| 103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
pdf = FPDF()
|
|
|
|
| 105 |
pdf.add_page()
|
| 106 |
-
pdf.set_font("Courier", size=11)
|
| 107 |
|
| 108 |
-
|
| 109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
|
| 111 |
-
out = tempfile.NamedTemporaryFile(delete=False, suffix=".pdf")
|
| 112 |
pdf.output(out.name)
|
|
|
|
| 113 |
return out.name
|
| 114 |
|
| 115 |
except Exception as e:
|
| 116 |
-
|
|
|
|
|
|
|
| 117 |
return None
|
| 118 |
|
| 119 |
|
|
|
|
| 98 |
|
| 99 |
# ββ PDF BUILDER βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 100 |
def _build_pdf(text: str):
|
| 101 |
+
|
| 102 |
try:
|
| 103 |
from fpdf import FPDF
|
| 104 |
|
| 105 |
+
# Remove unsupported unicode characters
|
| 106 |
+
safe_text = (
|
| 107 |
+
text.replace("β", "-")
|
| 108 |
+
.replace("β’", "-")
|
| 109 |
+
.replace("β", "->")
|
| 110 |
+
)
|
| 111 |
+
|
| 112 |
pdf = FPDF()
|
| 113 |
+
|
| 114 |
pdf.add_page()
|
|
|
|
| 115 |
|
| 116 |
+
pdf.set_auto_page_break(auto=True, margin=15)
|
| 117 |
+
|
| 118 |
+
pdf.set_font("Courier", size=10)
|
| 119 |
+
|
| 120 |
+
for line in safe_text.splitlines():
|
| 121 |
+
pdf.multi_cell(0, 6, txt=line)
|
| 122 |
+
|
| 123 |
+
out = tempfile.NamedTemporaryFile(
|
| 124 |
+
delete=False,
|
| 125 |
+
suffix=".pdf"
|
| 126 |
+
)
|
| 127 |
|
|
|
|
| 128 |
pdf.output(out.name)
|
| 129 |
+
|
| 130 |
return out.name
|
| 131 |
|
| 132 |
except Exception as e:
|
| 133 |
+
|
| 134 |
+
print("PDF generation failed:", repr(e))
|
| 135 |
+
|
| 136 |
return None
|
| 137 |
|
| 138 |
|