StyleItem 사용예제를 요청합니다.

[Set ID] StyleItem : 스타일
Item ID Type Description
Type
NameLocal
NameEng
Next
CharShape
ParaShape

SetID 문서에 위와 같은 StyleItem 이 있습니다.
“이 StyleItem 은 어떨 때 사용하는 것이고 어떻게 사용한다” 라고
하는 예제를 하나 작성해 주실 수 있을 까요?
저에게 필요한 항목이 있는 데, 사용 방법을 도통 찾을 수가 없네요.

안녕하세요.

한글오토메이션으로 스타일을 핸들링하는 동작은 제한되어 있습니다.
확인해봤을 때 신규 스타일 추가 정도이고, 메뉴얼에 나와있지 않은 동작인데요.
코드로 작성하면 아래와 같습니다.

(C++)

	CDHwpAction action = m_app.CreateAction(_T("StyleAddNew"));
	CDHwpParameterSet set = action.CreateSet();
	CDHwpParameterSet csSet;

	action.GetDefault(set);
	set.SetItem(_T("NameLocal"), COleVariant(_T("MyStyle1")));
	set.SetItem(_T("NameEng"), COleVariant(_T("MyStyle1")));
	set.SetItem(_T("Next"), COleVariant((long)1));
	
	if (set.ItemExist(_T("CharShape"))) {
		csSet = (CDHwpParameterSet)set.Item(_T("CharShape")).pdispVal;
	} else {
		csSet = set.CreateItemSet(_T("CharShape"), _T("CharShape"));
	}
	
	csSet.SetItem(_T("Height"), COleVariant((long)m_app.PointToHwpUnit(20.0)));
	csSet.SetItem(_T("FaceNameHangul"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FaceNameLatin"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FaceNameHanja"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FaceNameJapanese"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FaceNameOther"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FaceNameSymbol"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FaceNameUser"), COleVariant(_T("굴림")));
	csSet.SetItem(_T("FontTypeHangul"), COleVariant((long)1));
	csSet.SetItem(_T("FontTypeLatin"), COleVariant((long)1));
	csSet.SetItem(_T("FontTypeHanja"), COleVariant((long)1));
	csSet.SetItem(_T("FontTypeJapanese"), COleVariant((long)1));
	csSet.SetItem(_T("FontTypeOther"), COleVariant((long)1));
	csSet.SetItem(_T("FontTypeSymbol"), COleVariant((long)1));
	csSet.SetItem(_T("FontTypeUser"), COleVariant((long)1));

	VARIANT var;
	VariantInit(&var);

	var.pdispVal = csSet.m_lpDispatch;
	var.vt = VT_DISPATCH;	
	set.SetItem(_T("CharShape"), var);

	action.Execute(set);

그리고 필요한 동작을 말씀해주시면 더 도움되는 답변을 드릴 수 있을 것 같습니다. :grinning_face:

감사합니다.

한글 오토메이션에서 StyleItem을 쓸 수 없다는 것은 좀 아쉽네요.

StyleAddNew 기능 소개해 주셔서 감사합니다.
StyleDirectEdit 와 함께 쓰면 강력하고 유연할 것 같습니다.
한가지만 충족되면 좋을 것 같은 데,
현재 스타일의 NameLocal을 조회할 수 있는 방법이 있는가요?
원시적인 루프방식이라도 가능한 방법이 있으면 소개 부탁드립니다.
감사합니다.

문의주신 현재 위치의 스타일 이름을 조회하거나
현재 문서에서 가지고 있는 스타일 목록을 가져오는 API는 제공하지 않고 있습니다.
말씀하신대로 스타일을 핸들링할 수 있는 API는 보강할 수 있도록 요청해보겠습니다.

감사합니다.