파이썬 docx 패키지로 워드파일 만들기, 한글폰트 적용방법

docx 설치

Jay
4 min readMar 6, 2019
pip install python-docx
  • 파이썬 버전 3은 python-docx를 설치 할 것, 만약 실수로 docx를 설치했다면 아래와 같이 삭제해준다.
pip uninstall docx

워드파일 생성하기

import docxdoc = docx.Document()
doc.save('example.docx')

워드파일에 text입력

  • doc객체를 생성하고 나면 아래처럼.add_paragraph()로 문단을 생성해주고, 문단 객체에 .add_run() 으로 텍스트 를 추가해 준다.
import docx
doc = docx.Document()
para = doc.add_paragraph()
run = para.add_run('test')
doc.save('example.docx')
결과

폰트 수정

  • 글씨체 수정run.font.name = ‘Arial’ 추가
import docx
doc = docx.Document()
para = doc.add_paragraph()
run = para.add_run('test')
run.font.name = 'Arial'
doc.save('example.docx')
arial로 바뀜
  • bold체: run.bold = True
import docx
doc = docx.Document()
para = doc.add_paragraph()
run = para.add_run('test')
run.font.name = 'Arial'
run.bold = True
doc.save('example.docx')
볼드체 적용
  • 폰트 사이즈: run.font.size = docx.shared.Pt(20)
import docx
doc = docx.Document()
para = doc.add_paragraph()
run = para.add_run('test')
run.font.name = 'Arial'
run.bold = True
run.font.size = docx.shared.Pt(20)
doc.save('example.docx')
사이즈 커짐

한글은 폰트적용이 안되는데?

import docx
doc = docx.Document()
para = doc.add_paragraph()
run = para.add_run('테스트')
run.font.name = '휴먼명조'
doc.save('example.docx')
기본 디폴트 ms 명조로 남아있음

이유는 영어와 한글은 서로 다른 문자체계를 사용하기 때문. 한글은 eastAsia로 분류되기 때문이라는데, 자세한 내용은 여기서 확인

해결방법

아래처럼 from docx.oxml.ns import qn 을 불러온 뒤에 폰트 세팅을 해주자.

(번거롭지만 이게 최선인 듯 하다)

from docx.oxml.ns import qn
run._element.rPr.rFonts.set(qn('w:eastAsia'), '휴먼명조')
폰트가 적용된 모습

--

--

Jay
Jay

Written by Jay

Brain Neural Network : Where neuroscience meets machine learning

No responses yet