python-docx
는 파이썬에서 Microsoft Word 문서를 생성하고 편집할 수 있는 라이브러리입니다. 이 라이브러리를 사용하여 페이지 설정 및 레이아웃을 지정할 수 있습니다.
페이지 설정하기
python-docx
에서 페이지 설정은 document
객체의 sections
속성을 사용하여 설정할 수 있습니다. 아래의 예제 코드를 통해 페이지 크기, 여백 등을 설정하는 방법을 알아보겠습니다.
from docx import Document
from docx.shared import Inches
# 빈 문서 생성
doc = Document()
# 첫 번째 섹션 설정
section = doc.sections[0]
# 페이지 크기 설정
section.page_height = Inches(11)
section.page_width = Inches(8.5)
# 여백 설정
section.left_margin = Inches(1)
section.right_margin = Inches(1)
section.top_margin = Inches(1)
section.bottom_margin = Inches(1)
# 문서 저장
doc.save('page_settings.docx')
위의 예제 코드에서는 Document
객체를 생성한 후 첫 번째 섹션의 속성을 설정하여 페이지 크기를 11인치 x 8.5인치로, 여백을 1인치로 설정하고, 마지막으로 문서를 저장합니다.
레이아웃 지정하기
python-docx
를 사용하여 문서의 레이아웃을 지정할 수도 있습니다. 예를 들어, 헤더와 푸터, 쪽번호, 섹션브레이크 등을 설정할 수 있습니다.
아래의 예제 코드는 python-docx
를 사용하여 헤더와 푸터를 추가하는 방법을 보여줍니다.
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
# 빈 문서 생성
doc = Document()
# 첫 번째 섹션 설정
section = doc.sections[0]
# 헤더 설정
header = section.header
header_paragraph = header.paragraphs[0]
header_paragraph.text = "헤더"
# 헤더 정렬
header_paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 푸터 설정
footer = section.footer
footer_paragraph = footer.paragraphs[0]
footer_paragraph.text = "푸터"
# 쪽번호 설정
page_number = footer_paragraph.add_run()
page_number.text = "Page {PAGE}"
page_number.font.size = Pt(10)
page_number.font.name = "Arial"
page_number.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
# 참고: 쪽번호 XML 수정
xml = '<w:fldSimple %s w:instr="PAGE" />' % nsdecls('w')
r_element = parse_xml(xml)
footer_paragraph._p.insert_element_before(r_element, 'w:pPr')
# 문서 저장
doc.save('layout.docx')
위의 예제 코드에서는 Document
객체를 생성한 후 첫 번째 섹션의 헤더와 푸터를 설정합니다. 헤더와 푸터에는 원하는 내용을 추가하고, 필요에 따라 정렬 및 서식을 지정할 수 있습니다. 또한, 쪽번호를 추가하고 필요한 경우 XML을 수정하여 쪽번호 서식을 변경할 수도 있습니다.
위의 예제 코드를 실행하면 layout.docx
라는 파일명으로 문서가 저장됩니다.
python-docx
의 다양한 기능과 속성을 사용하여 페이지 설정 및 레이아웃을 자유롭게 지정할 수 있습니다. 자세한 사용법은 python-docx 공식 문서에서 확인할 수 있습니다.