import os import uuid import subprocess from typing import List, Tuple class DocumentGenerator: def __init__(self, upload_folder): self.upload_folder = upload_folder os.makedirs(self.upload_folder, exist_ok=True) def generate_filename(self) -> Tuple[str, str]: """Generate filenames with unique ID""" unique_id = str(uuid.uuid4())[:8] md_filename = f"research_paper_{unique_id}.md" docx_filename = f"research_paper_{unique_id}.docx" return md_filename, docx_filename def convert_to_word(self, md_filename: str, docx_filename: str) -> None: """Convert markdown file to Word document using Pandoc""" md_path = os.path.join(self.upload_folder, md_filename) docx_path = os.path.join(self.upload_folder, docx_filename) command = [ "pandoc", md_path, "-o", docx_path, "--standalone", "--table-of-contents", "--toc-depth=3" ] if os.path.exists("reference.docx"): command.extend(["--reference-doc", "reference.docx"]) subprocess.run(command, check=True)