파이썬 docx 패키지로 워드파일 만들기, 한글폰트 적용방법
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')
- bold체:
run.bold = True
import docx
doc = docx.Document()para = doc.add_paragraph()
run = para.add_run('test')
run.font.name = 'Arial'
run.bold = Truedoc.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')
이유는 영어와 한글은 서로 다른 문자체계를 사용하기 때문. 한글은 eastAsia로 분류되기 때문이라는데, 자세한 내용은 여기서 확인
해결방법
아래처럼 from docx.oxml.ns import qn
을 불러온 뒤에 폰트 세팅을 해주자.
(번거롭지만 이게 최선인 듯 하다)
from docx.oxml.ns import qn
run._element.rPr.rFonts.set(qn('w:eastAsia'), '휴먼명조')