Ozgur Unlu
commited on
Commit
Β·
6eb4be5
1
Parent(s):
6c64411
changed fonts due to an error
Browse files- pdf_generator.py +17 -10
- requirements.txt +2 -1
pdf_generator.py
CHANGED
@@ -5,36 +5,43 @@ class ReportGenerator:
|
|
5 |
def __init__(self):
|
6 |
self.pdf = FPDF()
|
7 |
self.pdf.add_page()
|
8 |
-
|
|
|
|
|
|
|
9 |
|
10 |
def add_header(self):
|
11 |
-
self.pdf.set_font(
|
12 |
self.pdf.cell(200, 10, txt="Marketing Content Validation Report", ln=True, align='C')
|
13 |
-
self.pdf.set_font(
|
14 |
self.pdf.cell(200, 10, txt=f"Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='R')
|
15 |
self.pdf.ln(10)
|
16 |
|
17 |
def add_input_text(self, text):
|
18 |
-
self.pdf.set_font(
|
19 |
self.pdf.cell(200, 10, txt="Input Marketing Content:", ln=True)
|
20 |
-
self.pdf.set_font(
|
21 |
-
|
|
|
|
|
22 |
self.pdf.ln(10)
|
23 |
|
24 |
def add_check_result(self, check_name, status, details=None):
|
25 |
status_symbols = {
|
26 |
"pass": "β",
|
27 |
-
"fail": "
|
28 |
"warning": "!"
|
29 |
}
|
30 |
|
31 |
-
self.pdf.set_font(
|
32 |
status_symbol = status_symbols.get(status.lower(), "?")
|
33 |
self.pdf.cell(0, 10, txt=f"{check_name}: {status_symbol}", ln=True)
|
34 |
|
35 |
if details:
|
36 |
-
self.pdf.set_font(
|
37 |
-
|
|
|
|
|
38 |
self.pdf.ln(5)
|
39 |
|
40 |
def save_report(self):
|
|
|
5 |
def __init__(self):
|
6 |
self.pdf = FPDF()
|
7 |
self.pdf.add_page()
|
8 |
+
|
9 |
+
# Add Unicode font
|
10 |
+
self.pdf.add_font('DejaVu', '', '/usr/share/fonts/truetype/dejavu/DejaVuSansCondensed.ttf', uni=True)
|
11 |
+
self.pdf.set_font('DejaVu', size=12)
|
12 |
|
13 |
def add_header(self):
|
14 |
+
self.pdf.set_font('DejaVu', size=16)
|
15 |
self.pdf.cell(200, 10, txt="Marketing Content Validation Report", ln=True, align='C')
|
16 |
+
self.pdf.set_font('DejaVu', size=10)
|
17 |
self.pdf.cell(200, 10, txt=f"Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='R')
|
18 |
self.pdf.ln(10)
|
19 |
|
20 |
def add_input_text(self, text):
|
21 |
+
self.pdf.set_font('DejaVu', size=12)
|
22 |
self.pdf.cell(200, 10, txt="Input Marketing Content:", ln=True)
|
23 |
+
self.pdf.set_font('DejaVu', size=12)
|
24 |
+
# Clean the text of any problematic characters
|
25 |
+
cleaned_text = ''.join(char for char in text if ord(char) < 65536)
|
26 |
+
self.pdf.multi_cell(0, 10, txt=cleaned_text)
|
27 |
self.pdf.ln(10)
|
28 |
|
29 |
def add_check_result(self, check_name, status, details=None):
|
30 |
status_symbols = {
|
31 |
"pass": "β",
|
32 |
+
"fail": "Γ",
|
33 |
"warning": "!"
|
34 |
}
|
35 |
|
36 |
+
self.pdf.set_font('DejaVu', size=12)
|
37 |
status_symbol = status_symbols.get(status.lower(), "?")
|
38 |
self.pdf.cell(0, 10, txt=f"{check_name}: {status_symbol}", ln=True)
|
39 |
|
40 |
if details:
|
41 |
+
self.pdf.set_font('DejaVu', size=10)
|
42 |
+
# Clean the details text of any problematic characters
|
43 |
+
cleaned_details = ''.join(char for char in details if ord(char) < 65536)
|
44 |
+
self.pdf.multi_cell(0, 10, txt=cleaned_details)
|
45 |
self.pdf.ln(5)
|
46 |
|
47 |
def save_report(self):
|
requirements.txt
CHANGED
@@ -6,4 +6,5 @@ fpdf2==2.7.8
|
|
6 |
pandas==2.1.4
|
7 |
numpy==1.24.3
|
8 |
requests==2.31.0
|
9 |
-
python-dotenv==1.0.0
|
|
|
|
6 |
pandas==2.1.4
|
7 |
numpy==1.24.3
|
8 |
requests==2.31.0
|
9 |
+
python-dotenv==1.0.0
|
10 |
+
fonts-dejavu-core
|