해결된 질문
작성
·
145
1
안녕하세요 일코님!
글자속성 부분 강의를 들으면서, 매크로로도 확인해서 함수를 작성해보았는데요.
먼저 텍스트 입력 함수입니다.
def 텍스트입력(text):
hwp.HAction.GetDefault("InsertText", hwp.HParameterSet.HInsertText.HSet)
hwp.HParameterSet.HInsertText.Text = text
hwp.HAction.Execute("InsertText", hwp.HParameterSet.HInsertText.HSet)
그다음 폰트를 설정하는 함수입니다.
def 폰트설정(글꼴,크기):
hwp.HAction.GetDefault("CharShape", hwp.HParameterSet.HCharShape.HSet);
hwp.HParameterSet.HCharShape.FaceNameUser = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeUser = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameSymbol = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeSymbol = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameOther = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeOther = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameJapanese = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeJapanese = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameHanja = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeHanja = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameLatin = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeLatin = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameHangul = f"{글꼴}"
hwp.HParameterSet.HCharShape.FontTypeHangul = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.Height = hwp.PointToHwpUnit(크기)
hwp.HAction.Execute("CharShape", hwp.HParameterSet.HCharShape.HSet)
이렇게 하니까, 변경까지는 아주 잘 되는데,
변경후에 텍스트를 입력하면 커서만 깜빡이고 텍스트가 입력되질 않네요..
매크로로 해서 그런가 싶어서, 다시 일코님이 작성해주신 코드를 복붙해서 사용해보았는데
charshape = hwp.XHwpDocuments.Item(0).XHwpCharacterShape
charshape.Height = 5000 # 5000 HwpUnit = 50 pt
charshape.Italic = True # 이탤릭
charshape.Bold = True # 진하게
charshape.ShapeNormal() # 글자크기와 서체를 제외한 모든 속성 초기화
이코드도 동일하게 적용까지는 되는데,, 텍스트가 입력이 되지 않네요.
움짤로는 아래와 같습니다!
답변 1
1
이상하네요..
액션의 디폴트값을 추가로 지정해야 하거나,
현재 위치의 디폴트값이 문제가 있는 듯도 한데,
함수를 직접 지정하지 마시고
hwp.insert_text와 hwp.set_font 메서드를 사용해보시겠어요?
제법 오래 고민해서 만든 메서드인 만큼..
왠만한 경우에는 오류가 나지 않을 것입니다.
hwp.insert_text("폰트 설정 전에도 잘 되고\r\n")
hwp.set_font(Height=20, FaceName="함초롬돋움")
hwp.insert_text("폰트 설정 후에도 잘 됨\r\n")
hwp.set_font(Height=50, FaceName="나눔고딕")
hwp.insert_text("계속 잘 되어야 정상임\r\n")
hwp.set_font의 파라미터 목록은 아래를 참고해주세요.
(출처 : blog.naver.com/pythonrpa)
감사합니다!! 해결되었습니다.