안녕하세요. 답변이 늦어 죄송합니다.
- 일반적으로 한글에서 폰트를 설정하게 되면"대표 폰트"로 폰트를 설정하게 되며 이는 문자의 각 영역별로 어울리는 폰트 집합을 지정해둔 것을 의미합니다.
한컴오피스 2022 한/글 도움말
각 영역은 "한글, 영문, 한자, 일어, 외국어, 기호, 사용자"의 영역으로 나누어져 있으며 질문자께서 작성하신 샘플코드는 "사용자"영역에만 지정을 했기 때문에 폰트적용이 되지 않을 것으로 보였을 수도 있습니다(아마 한글문자열을 입력하셨을거라고 예상합니다)
예를 들어 대표폰트로 강낭콩을 지정하게 되면 각 영역에는
“한글” : “강남콩”
“영어” : “오이”
“한자” : “한양중고딕”
“일어” : “한양중고딕”
“외국어” : " 한양신명조"
“기호” : " 한양중고딕"
“사용자” : “명조”
가 기본으로 설정되어있으며 한글을 실행 후 대표폰트로 강낭콩을 적용한 뒤 드롭박스로 폰트 영역을 변경해보면 위에 나열한대로 바뀌는것을 확인하실 수 있습니다.
따라서 “한글 문자열” 영역에 강낭콩 폰트를 지정하려면
SetItem(“FaceNameUser”, “강낭콩”)이 아니라
SetItem(“FaceNameHangul”, “강낭콩”)로 지정했으면 아마 확인이 가능하셨을 겁니다.
하지만 일반적으로 폰트를 적용하고 다양한 문자열을 입력할 수도 있으니 폰트를 설정할때는 모든 영역에 사용하고자 하는 폰트를 같이 설정합니다.
HWPCONTROLLib.DHwpAction dAction = (HWPCONTROLLib.DHwpAction)axHwpCtrl1.CreateAction(“CharShape”);
HWPCONTROLLib.HwpParameterSet dSet = (HWPCONTROLLib.HwpParameterSet)dAction.CreateSet();
dAction.GetDefault(dSet);dSet.SetItem(“FaceNameHangul”, “강낭콩”);
dSet.SetItem(“FontTypeHangul”, 2);
dSet.SetItem(“FaceNameLatin”, “오이”);
dSet.SetItem(“FontTypeLatin”, 2);
dSet.SetItem(“FaceNameHanja”, “한양중고딕”);
dSet.SetItem(“FontTypeHanja”, 2);
dSet.SetItem(“FaceNameJapanese”, “한양중고딕”);
dSet.SetItem(“FontTypeJapanese”, 2);
dSet.SetItem(“FaceNameOther”, “한양중고딕”);
dSet.SetItem(“FontTypeOther”, 2);
dSet.SetItem(“FaceNameSymbol”, “한양신명조”);
dSet.SetItem(“FontTypeSymbol”, 2);
dSet.SetItem(“FaceNameUser”, “명조”);
dSet.SetItem(“FontTypeUser”, 2);dAction.Execute(dSet);
위와 같이 적용을 하시면 됩니다.
- "FaceNameUser"의 fontName으로 들어가는 인자의 값을 어떻게 알 수 있습니까?
→ 질문에서 말씀하신대로 첨부파일에 있는 목록에서 폰트명을 확인할 수 있습니다.
이 부분이 현재 한컴에서 제공하고 있는 HFT폰트 목록이며, 이 목록에 없는 폰트는 이름을 확인하기 어렵습니다.
그래서 지난번에 질문주신 옛날폰트도 이름이 확인이 안되는 부분이구요…
도움이 되셨으면 좋겠네요.
더 궁금한 점 있으시면 언제든지 문의주세요.