퀵스타트 투어

모든 hwpapi 스크립트가 사용하는 7가지 동작

샘플 출력 — tests/generate_v2_doc_artifacts.py 가 실제 HWP 를 구동해 생성

가장 짧고 유용한 스크립트 — 열기/새로 만들기, 텍스트 삽입, 서식 지정, 찾기, 저장 — 을 실행해봅니다. examples/quickstart.py 를 v2 표면에 맞게 이식한 것입니다.

from hwpapi import App
from hwpapi.context import charshape_scope
from hwpapi import units as U


def main():
    with App(is_visible=True) as app:
        app.new()

        # 1. 텍스트 삽입
        app.doc.insert_text("hwpapi 테스트 문서\n\n")
        app.doc.insert_text("이 문서는 hwpapi로 자동 생성되었습니다.\n")

        # 2. 서식 지정: 맨 위로 이동, 첫 줄 선택, 제목 스타일 적용
        app.doc.cursor.goto_page(1)
        app.doc.select_text(0, len("hwpapi 테스트 문서"))

        with charshape_scope(app, bold=True, size=U.pt(18)):
            app.doc.insert_text("hwpapi 테스트 문서")

        # 3. 이동 후 추가 삽입
        app.doc.cursor.goto_end()
        app.doc.insert_text("\n")
        for i in range(3):
            app.doc.insert_text(f"• 항목 {i + 1}\n")

        # 4. 찾기 / 바꾸기
        count = app.doc.replace_all("항목", "list item")
        print(f"Replaced {count} occurrences")

        # 5. 액션 인트로스펙션 (목록 조회 외에는 COM 호출 없음)
        actions = app.actions
        print(f"\nAvailable actions: {len(actions.list_actions())}")

        # 6. Raw COM 접근 (escape hatch)
        print(f"\nRaw HWP COM: {app.api.CLSID}")

        # 7. 저장
        app.save_as("quickstart-output.hwp")


if __name__ == "__main__":
    main()

v1 에서 무엇이 바뀌었는가

v1 v2
app.insert_text(...) app.doc.insert_text(...)
app.move.top_of_file() app.doc.cursor.goto_page(1)
app.select_text() app.doc.select_text(...)
app.set_charshape(bold=True, height=1800) charshape_scope(app, bold=True, size=U.pt(18))
app.replace_all(...) app.doc.replace_all(...)
app.api.CLSID app.api.CLSID (변경 없음 — api 는 여전히 App 에 있음)
맨 위로