iisadia commited on
Commit
738ceab
·
verified ·
1 Parent(s): e94965a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -23
app.py CHANGED
@@ -86,52 +86,56 @@ def generate_pdf_report(results):
86
  pdf = FPDF()
87
  pdf.add_page()
88
  pdf.set_font("Arial", size=12)
89
-
90
- # Add watermark
 
 
 
 
 
91
  pdf.set_font("Arial", 'B', 50)
92
  pdf.set_text_color(230, 230, 230)
93
  pdf.rotate(45)
94
- pdf.text(60, 150, "AI Powered Requirement Analysis")
95
  pdf.rotate(0)
96
-
97
- # Reset font for main content
98
  pdf.set_font("Arial", 'B', 16)
99
  pdf.set_text_color(0, 0, 0)
100
- pdf.cell(200, 10, txt="AI Powered Requirement Analysis and Defect Detection", ln=True, align='C')
101
  pdf.set_font("Arial", size=12)
102
- pdf.cell(200, 10, txt=f"Report Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
103
  pdf.ln(10)
104
 
105
  for i, result in enumerate(results, start=1):
106
- # Check page bounds and add new page if needed
107
- if pdf.get_y() > 250:
108
  pdf.add_page()
109
- # RE-APPLY FONT SETTINGS AFTER NEW PAGE
110
  pdf.set_font("Arial", 'B', 16)
111
- pdf.set_text_color(0, 0, 0)
112
- pdf.cell(200, 10, txt="AI Powered Requirement Analysis and Defect Detection", ln=True, align='C')
113
  pdf.set_font("Arial", size=12)
114
- pdf.cell(200, 10, txt=f"Report Generated on: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
115
  pdf.ln(10)
116
 
117
- # MAIN CONTENT WITH PROPER FONT INHERITANCE
118
  pdf.set_font("Arial", 'B', 14)
119
- pdf.multi_cell(0, 10, txt=f"Requirement R{i}: {result['Requirement']}")
120
  pdf.set_font("Arial", size=12)
121
- pdf.multi_cell(0, 10, txt=f"Type: {result['Type']}")
122
- pdf.multi_cell(0, 10, txt=f"Domain: {result['Domain']}")
123
- pdf.multi_cell(0, 10, txt=f"Stakeholders: {result['Stakeholders']}")
124
- pdf.multi_cell(0, 10, txt=f"Defects: {result['Defects']}")
125
- pdf.multi_cell(0, 10, txt=f"Rewritten: {result['Rewritten']}")
126
- pdf.ln(8)
127
  pdf.set_draw_color(200)
128
- pdf.cell(0, 0, border='T')
129
- pdf.ln(10)
130
 
131
  pdf_output = "requirements_report.pdf"
132
  pdf.output(pdf_output)
133
  return pdf_output
134
 
 
135
  # Custom CSS for professional styling
136
  st.markdown("""
137
  <style>
 
86
  pdf = FPDF()
87
  pdf.add_page()
88
  pdf.set_font("Arial", size=12)
89
+
90
+ # Page dimensions (A4: 210mm x 297mm)
91
+ page_width = 210
92
+ margin = 20
93
+ effective_width = page_width - 2*margin
94
+
95
+ # Watermark
96
  pdf.set_font("Arial", 'B', 50)
97
  pdf.set_text_color(230, 230, 230)
98
  pdf.rotate(45)
99
+ pdf.text(60, 150, "AI Powered Requirement Defects Analysis")
100
  pdf.rotate(0)
101
+
102
+ # Reset font for content
103
  pdf.set_font("Arial", 'B', 16)
104
  pdf.set_text_color(0, 0, 0)
105
+ pdf.cell(effective_width, 10, txt="AI Powered Requirement Analysis", ln=True, align='C')
106
  pdf.set_font("Arial", size=12)
107
+ pdf.cell(effective_width, 10, txt=f"Report Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
108
  pdf.ln(10)
109
 
110
  for i, result in enumerate(results, start=1):
111
+ if pdf.get_y() > 250: # Check if near bottom
 
112
  pdf.add_page()
113
+ # Reset formatting for new page
114
  pdf.set_font("Arial", 'B', 16)
115
+ pdf.cell(effective_width, 10, txt="AI Powered Requirement Analysis", ln=True, align='C')
 
116
  pdf.set_font("Arial", size=12)
117
+ pdf.cell(effective_width, 10, txt=f"Report Generated: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", ln=True, align='C')
118
  pdf.ln(10)
119
 
120
+ # Requirement content with proper widths
121
  pdf.set_font("Arial", 'B', 14)
122
+ pdf.multi_cell(effective_width, 8, txt=f"Requirement {i}: {result['Requirement']}")
123
  pdf.set_font("Arial", size=12)
124
+ pdf.multi_cell(effective_width, 8, txt=f"Type: {result['Type']}")
125
+ pdf.multi_cell(effective_width, 8, txt=f"Domain: {result['Domain']}")
126
+ pdf.multi_cell(effective_width, 8, txt=f"Stakeholders: {result['Stakeholders']}")
127
+ pdf.multi_cell(effective_width, 8, txt=f"Defects: {result['Defects']}")
128
+ pdf.multi_cell(effective_width, 8, txt=f"Rewritten: {result['Rewritten']}")
129
+ pdf.ln(5)
130
  pdf.set_draw_color(200)
131
+ pdf.cell(effective_width, 0, border='T')
132
+ pdf.ln(8)
133
 
134
  pdf_output = "requirements_report.pdf"
135
  pdf.output(pdf_output)
136
  return pdf_output
137
 
138
+
139
  # Custom CSS for professional styling
140
  st.markdown("""
141
  <style>