import streamlit as st
import os
from docx import Document
from docx2pdf import convert
import comtypes

def main():
    comtypes.CoInitialize()  # COM 개체 초기화
    st.title('수료증 생성기 및 PDF 다운로드')

    name = st.text_input('이름을 입력하세요:')
    course = st.text_input('과정을 입력하세요:')
    date = st.text_input('날짜를 입력하세요 (예: 2023년 7월 21일):')

    if st.button('수료증 생성'):
        doc = Document("template.docx")  # 템플릿 파일명으로 대체해주세요.
        for paragraph in doc.paragraphs:
            if 'NAME' in paragraph.text:
                paragraph.text = paragraph.text.replace('NAME', name)
            elif 'COURSE' in paragraph.text:
                paragraph.text = paragraph.text.replace('COURSE', course)
            elif 'DATE' in paragraph.text:
                paragraph.text = paragraph.text.replace('DATE', date)

        doc_filename = f"{name}_{course}_인증서.docx"
        pdf_filename = f"{name}_{course}_인증서.pdf"
        doc.save(doc_filename)

        convert(doc_filename, pdf_filename)

        st.success(f'수료증이 생성되었습니다! 아래에서 다운로드하세요:')
        
        # PDF 파일을 바이트로 읽어오기
        with open(pdf_filename, 'rb') as f:
            pdf_bytes = f.read()

        # 바이트와 파일명을 사용하여 다운로드 링크 제공
        st.download_button(label='수료증 다운로드', data=pdf_bytes, file_name=pdf_filename)

        # 선택 사항: PDF 표시 후 생성된 파일들 삭제
        os.remove(doc_filename)
        os.remove(pdf_filename)

if __name__ == '__main__':
    main()