지난 포스팅은...
지난 포스팅에서는 수식을 선택하기 위해 컨트롤을 탐색하는 방법과, 찾아낸 앵커포지션(좌표)에 캐럿을 갖다놓고, 수식을 선택하여 수식문자열을 추출하는 과정까지 진행해보았다.
이번 포스팅에서는 저장해둔 수식 문자열로 한/글 안에 수식을 생성하는 방법을 소개한다.
코드를 먼저 보여드리면,
"""dict를 가지고 수식 삽입하기"""
for position, eqn_string in eqn_dict.items():
hwp.HAction.GetDefault("EquationCreate", hwp.HParameterSet.HEqEdit.HSet)
hwp.HParameterSet.HEqEdit.EqFontName = "HancomEQN"
hwp.HParameterSet.HEqEdit.string = eqn_string
hwp.HParameterSet.HEqEdit.BaseUnit = hwp.PointToHwpUnit(30.0) # 수식 폰트 크기 : 30
hwp.HAction.Execute("EquationCreate", hwp.HParameterSet.HEqEdit.HSet) # 폰트이상함
sleep(1) # 시연을 위해 1초 멈춤
hwp.FindCtrl() # 다시 선택
hwp.HAction.GetDefault("EquationPropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
hwp.HParameterSet.HShapeObject.HSet.SetItem("ShapeType", 3)
hwp.HParameterSet.HShapeObject.Version = "Equation Version 60"
hwp.HParameterSet.HShapeObject.EqFontName = "HancomEQN"
hwp.HParameterSet.HShapeObject.HSet.SetItem("ApplyTo", 0)
hwp.HParameterSet.HShapeObject.HSet.SetItem("TreatAsChar", 1)
hwp.HAction.Execute("EquationPropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
hwp.Run("Cancel") # 폰트 예뻐짐
hwp.Run("MoveRight") # 다음 수식 삽입 준비
sleep(1) # 시연을 위해 1초 멈춤
위 코드를 실행한 모습은 아래와 같다.
한 가지만 부연설명하자. 코드 안에 실행(Execute)하는 액션이 두 개 들어 있는데, 하나는 수식생성, 하나는 편집 액션이다. 필자의 경험이 짧아서 더 좋은 방법을 아직 찾지 못했지만, 현재는 "생성"시점에 굉장히 저품질의 폰트가 출현한다. 다시 "편집"액션을 생성하고 별다른 아이템값을 넣지 않은 상태로 한 번 더 Execute를 해야만 (다행히) 한/글 특유의 아름다운 수식폰트가 적용된다.
이번 포스팅은 여기서 마친다. 다음 포스팅은, 부족한 대로 한/글 수식을 LaTeX로 변환하는 방법을 소개하고 이번 시리즈를 마치려 한다.
모두들 행복한 하루 되시길^^
'아래아한글 자동화 > python+hwp 중급' 카테고리의 다른 글
[5/5, HwpEqn] 수식을 png이미지와 MathML, LaTeX로 내보내기 (4) | 2020.12.20 |
---|---|
[3/5, HwpEqn] 컨트롤 탐색방법(feat. 파이썬) (0) | 2020.12.18 |
[2/5, HwpEqn] HWP문서 수식을 텍스트로 추출하는 방법(feat. 파이썬) (0) | 2020.12.18 |
댓글