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()