research / services /document_generator.py
Mohammed Foud
Add application file
bef7112
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)