프로그래밍 언어/Python

정기예금 금리 현황표 작성하기 - 보고서 작성하기(제목 입력)

· 코딩마이데이

비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_3_2.py'로 지정합니다. 다음 코드를 입력하고 대화형 창에서 실행하면 'output' 폴더에 'step_3_2.docx'가 생성됩니다.

from datetime import datetime
from pathlib import Path
from docx import Document
from docx.document import Document as DocumentObject # Document 객체
from step_1_1 import OUT_DIR
from step_3_1 import OUT_3_1, apply_font

OUT_3_2 = OUT_DIR / f"{Path(__file__).stem}.docx"

def add_blank_paragraph(doc: DocumentObject, size_pt: int = None): # 10
    r_empty = doc.add_paragraph().add_run(" ") # 빈 단락 삽입
    apply_font(r_empty, size_pt=size_pt) # 폰트 설정

def add_title():
    doc = Document(OUT_3_1)
    p_title = doc.add_paragraph(style="Title") # 제목 스타일 # 16
    r_title = p_title.add_run("정기예금 금리 현황표") # 17
    apply_font(r_title, face="Malgun Gothic", 
               size_pt=20, is_bold=True) # 폰트 설정
    now = datetime.now() # 현재 시점의 datetime 객체 생성 # 20
    now_string = now.isoformat(sep=" ", # 21
                               timespec="minutes") # 작성 일시 # 22
    r_now = p_title.add_run(f" (작성 일시: {now_string})") # 23
    apply_font(r_now, size_pt=14)
    add_blank_paragraph(doc, size_pt=5) # 빈 단락 삽입
    doc.save(OUT_3_2) # 워드 파일로 저장

if __name__ == "__main__":
    add_title() # 보고서 제목 작성

 

10 문서에 빈 단락을 삽입하는 함수 add_blank_paragraph()를 정의합니다.

16~17 단락에 제목 스타일을 적용하고 제목을 입력합니다.

20 함수 now()를 사용해 함수 호출 시점의 시간과 지정한 datetime 객체 생성합니다.

21~22 함수 isoformat()을 사용해 국제표준 날짜 문자열을 반환합니다. 매개변수 sep에 구분자를 진열해 날짜와 시간 사이에 공백을 두고, timespec에 'minutes'를 전달해 시간을 분 단위까지 표시합니다.

23 보고서 작성 일시를 입력합니다.

 

워드 파일 'step_3_2.docx'을 열어 제목과 작성 일시가 잘 입력되었는지 확인해 봅시다. A4 크기의 문서에 상하좌우 여백도 의도한 대로 설정되어 있습니다.