Tonic commited on
Commit
b45c9bd
·
unverified ·
1 Parent(s): cefcb8b

add pdf generator

Browse files
Files changed (1) hide show
  1. utils/pdfutils.py +31 -0
utils/pdfutils.py CHANGED
@@ -54,6 +54,37 @@ class PDFGenerator:
54
  )
55
  )
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  def generate_pdf(self, content: Union[str, Dict]) -> io.BytesIO:
58
  """Generate PDF with improved formatting"""
59
  try:
 
54
  )
55
  )
56
 
57
+ def generate_pdf_from_text(self, text: str, filename: str, output_dir: str = "discharge_papers") -> str:
58
+ """Generate a PDF file from plain text and return the file path."""
59
+ try:
60
+ if not os.path.exists(output_dir):
61
+ os.makedirs(output_dir)
62
+ filepath = os.path.join(output_dir, filename)
63
+ doc = SimpleDocTemplate(filepath, pagesize=letter, rightMargin=72, leftMargin=72, topMargin=72, bottomMargin=72)
64
+ elements = []
65
+
66
+ # Add title
67
+ elements.append(Paragraph("Discharge Summary", self.styles['CustomTitle']))
68
+ elements.append(Spacer(1, 20))
69
+
70
+ # Split text into lines and format
71
+ lines = text.split('\n')
72
+ for line in lines:
73
+ if line.strip():
74
+ if ':' in line and not line.strip().startswith('-'):
75
+ elements.append(Paragraph(line.strip(), self.styles['SectionHeader']))
76
+ elements.append(Spacer(1, 12))
77
+ else:
78
+ elements.append(Paragraph(line.strip(), self.styles['CustomContent']))
79
+ elements.append(Spacer(1, 8))
80
+
81
+ # Build PDF
82
+ doc.build(elements)
83
+ return filepath
84
+ except Exception as e:
85
+ print(f"Error generating PDF from text: {str(e)}")
86
+ return None
87
+
88
  def generate_pdf(self, content: Union[str, Dict]) -> io.BytesIO:
89
  """Generate PDF with improved formatting"""
90
  try: