Ozgur Unlu commited on
Commit
6eb4be5
Β·
1 Parent(s): 6c64411

changed fonts due to an error

Browse files
Files changed (2) hide show
  1. pdf_generator.py +17 -10
  2. 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
- self.pdf.set_font("Arial", size=12)
 
 
 
9
 
10
  def add_header(self):
11
- self.pdf.set_font("Arial", "B", 16)
12
  self.pdf.cell(200, 10, txt="Marketing Content Validation Report", ln=True, align='C')
13
- self.pdf.set_font("Arial", size=10)
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("Arial", "B", 12)
19
  self.pdf.cell(200, 10, txt="Input Marketing Content:", ln=True)
20
- self.pdf.set_font("Arial", size=12)
21
- self.pdf.multi_cell(0, 10, txt=text)
 
 
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("Arial", "B", 12)
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("Arial", size=10)
37
- self.pdf.multi_cell(0, 10, txt=details)
 
 
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