RFTSystems commited on
Commit
0b23bcd
·
verified ·
1 Parent(s): f337b2b

Create drp/pdf_report.py

Browse files
Files changed (1) hide show
  1. drp/pdf_report.py +35 -0
drp/pdf_report.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import List
2
+ from reportlab.lib.pagesizes import letter
3
+ from reportlab.pdfgen import canvas
4
+
5
+
6
+ def write_pdf_report(pdf_path: str, title: str, lines: List[str]) -> str:
7
+ """
8
+ Simple, robust PDF export for stakeholders.
9
+ We render plain text lines (already human-friendly via report.md).
10
+ """
11
+ c = canvas.Canvas(pdf_path, pagesize=letter)
12
+ w, h = letter # noqa: F841
13
+ x = 50
14
+ y = h - 60
15
+
16
+ c.setFont("Helvetica-Bold", 16)
17
+ c.drawString(x, y, title[:90])
18
+ y -= 30
19
+
20
+ c.setFont("Helvetica", 11)
21
+ for line in lines:
22
+ # page break
23
+ if y < 60:
24
+ c.showPage()
25
+ y = h - 60
26
+ c.setFont("Helvetica", 11)
27
+
28
+ # hard wrap-ish
29
+ s = line.replace("\t", " ")
30
+ # keep simple: clip long lines
31
+ c.drawString(x, y, s[:120])
32
+ y -= 14
33
+
34
+ c.save()
35
+ return pdf_path