import PyPDF2 import docx import os from sentence_transformers import SentenceTransformer from fpdf import FPDF from io import StringIO # Function to extract text from different file types def extract_text(uploaded_file, file_type): if file_type == "pdf": return extract_text_pdf(uploaded_file) elif file_type == "docx": return extract_text_docx(uploaded_file) elif file_type == "txt": return extract_text_txt(uploaded_file) elif file_type == "html": return extract_text_html(uploaded_file) # Extract text from PDF file def extract_text_pdf(uploaded_file): reader = PyPDF2.PdfReader(uploaded_file) text = "" for page in reader.pages: text += page.extract_text() or "" return text # Extract text from DOCX file def extract_text_docx(uploaded_file): doc = docx.Document(uploaded_file) text = '' for para in doc.paragraphs: text += para.text + '\n' return text # Extract text from TXT file def extract_text_txt(uploaded_file): text = uploaded_file.read().decode("utf-8") return text # Extract text from HTML file def extract_text_html(uploaded_file): from bs4 import BeautifulSoup soup = BeautifulSoup(uploaded_file, 'html.parser') text = soup.get_text() return text # Function to render different resume templates def render_template(tailored_resume, template="template1"): if template == "template1": return render_template1(tailored_resume) elif template == "template2": return render_template2(tailored_resume) elif template == "template3": return render_template3(tailored_resume) return tailored_resume # Template 1 rendering def render_template1(tailored_resume): # Here, you can define a simple formatting style for template 1 return f"--- Template 1 ---\n\n{tailored_resume}\n--- End of Template 1 ---" # Template 2 rendering def render_template2(tailored_resume): # Here, you can define a simple formatting style for template 2 return f"=== Template 2 ===\n\n{tailored_resume}\n=== End of Template 2 ===" # Template 3 rendering def render_template3(tailored_resume): # Here, you can define a simple formatting style for template 3 return f"### Template 3 ###\n\n{tailored_resume}\n### End of Template 3 ###"