파이썬으로 스타일 가져오기

한글 매크로에서는
HParameterSet.HStyleTemplate.CreateItemArray(“NameEngs”, 4);
HParameterSet.HStyleTemplate.NameEngs.Item(0) = “Normal”;
HParameterSet.HStyleTemplate.NameEngs.Item(1) = “”;
HParameterSet.HStyleTemplate.NameEngs.Item(2) = " 1";
HParameterSet.HStyleTemplate.NameEngs.Item(3) = " 2";
HParameterSet.HStyleTemplate.CreateItemArray(“NameLocals”, 4);
HParameterSet.HStyleTemplate.NameLocals.Item(0) = “바탕글”;
HParameterSet.HStyleTemplate.NameLocals.Item(1) = “3열2행 보기”;
HParameterSet.HStyleTemplate.NameLocals.Item(2) = “2열3행 보기”;
HParameterSet.HStyleTemplate.NameLocals.Item(3) = “미주”;
HParameterSet.HStyleTemplate.FileName = “D:\\HWP 프로그래밍\\A4서식초기화.sty”;
ImportStyle(HParameterSet.HStyleTemplate.HSet);
를 이용해서 스타일 불러오기를 할 수 있는데요

이것을 파이썬에서 구현해 보려는데, 안되네요….
from pyhwpx import Hwp

hwp = Hwp()

hwp.import_style(“D:\\HWP 프로그래밍\\A4서식초기화.sty”)
를 이용해 보려고 했지만… 이것도 에러가 나는데. 어떻게 해야 할까요?

안녕하세요

pyhwpx 는 외부 개발자 분이 개발한 모듈이라 저희도 확인할 수가 없습니다.
개발자 분께 직접 문의하시던가 포럼에서도 활동하시니 답변을 기다려보셔도 좋을 것 같습니다.

pyhwpx를 안쓰고 매크로와 동일하게 만드시려면 ImportStyle 를 하기 전에 StyleTemplate Set을 만들고 값을 채운 뒤 ImportStyle 로 넘겨주면 동일하게 동작할 것 같습니다.

감사합니다.

제미나이의 도움을 받아 이리 저리 해 보고는 있습니다만. 도저히 방법을 찾지 못하여 재 문의 드립니다.

import win32com.client


def run_import_style():

    \# 1. 한글 실행 (캐시 에러 방지를 위해 dynamic 사용 권장)

    hwp = win32com.client.dynamic.Dispatch("HWPFrame.HwpObject")

    hwp.XHwpWindows.Item(0).Visible = True

    hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") # 보안 팝업 방지



    \# 1. 파라미터 셋 생성 ('HParameterSet.HStyleTemplate' 대체)

    Pset = hwp.CreateSet("StyleImport")



    \# 2. 파일 경로 설정

    style_path = r"C:\\Users\\Administrator\\Desktop\\A4서식초기화.sty"

    Pset.SetItem("FileName", style_path)



    \# 3. 배열 생성 (공간 확보)

    Pset.CreateItemArray("NameEngs", 4)

    Pset.CreateItemArray("NameLocals", 4)



    \# 4. 배열 값 채우기 (변수 활용)

    Eng = Pset.Item("NameEngs")

    Eng.SetItem(0, "Normal")

    Eng.SetItem(1, "")

    Eng.SetItem(2, " 1")

    Eng.SetItem(3, " 2")



    Loc = Pset.Item("NameLocals")

    Loc.SetItem(0, "바탕글")

    Loc.SetItem(1, "3열2행 보기")

    Loc.SetItem(2, "2열3행 보기")

    Loc.SetItem(3, "미주")



    \# 5. 실행 (API 메서드 호출)

    hwp.ImportStyle(Pset)

    

if \__name_\_ == "\__main_\_":

    run_import_style()

이와 같이 해 보았으나
예외가 발생했습니다. com_error

(-2147417851, ‘서버에서 예외 오류가 발생했습니다.’, None, None)

File “F:\앱개발\파이썬\파이썬 코드\import os00.py”, line 22, in run_import_style
Eng.SetItem(0, “Normal”)
File “F:\앱개발\파이썬\파이썬 코드\import os00.py”, line 37, in
run_import_style()
pywintypes.com_error: (-2147417851, ‘서버에서 예외 오류가 발생했습니다.’, None, None)
라는 에러가 나오네요

아래 처럼 변경 후 확인하시면 좋을 것 같아요

Eng = Pset.CreateItemArray("NameEngs", 4)

개발 가이드 | 한컴디벨로퍼 를 참고해서 개발 부탁드립니다.