해결된 질문
작성
·
23
·
수정됨
1
아래 질문한 사람입니다. ^^
답변 감사드립니다.
추가적으로 ctrl k + o 개요 번호모양 없음 지정하는 방법과
스타일의 커서 위치로 스타일 바꾸기가 가능할까요!?
요렇게 해봤는데 제가 바꾸고자 하는 스타일을 지정하는 방법을 모르겠습니다. ㅠ
hwp.open(hwpx_file, arg="suspendpassword:false; forceopen:true; versionwarning:false")
print('---------------------')
print(hwp.find(src=contents[1], direction='AllDoc'), hwp.current_page)
print('---------------------')
print(hwp.find(src=contents[1], direction='AllDoc'), hwp.current_page)
print('---------------------')
#hwp.HAction.Run("StyleShortcut3")
hwp.hwp.HAction.GetDefault("StyleChangeToCurrentShape", hwp.hwp.HParameterSet.HStyleItem.HSet)
hwp.hwp.HAction.Execute("StyleChangeToCurrentShape", hwp.hwp.HParameterSet.HStyleItem.HSet)
답변 1
1
현욱님 안녕하세요!
스타일들(0~9)의 개요번호를 임의로 지우는 일련의 코드모음입니다.
파이썬에서는 아래와 같이 구현하실 수 있습니다.
from pyhwpx import Hwp
hwp = Hwp()
def 개요번호없음():
pset = hwp.HParameterSet.HSecDef
hwp.HAction.GetDefault("OutlineNumber", pset.HSet)
# 개요번호와 텍스트 사이의 간격("본문과의 배치" = 텍스트%)
pset.OutlineShape.TextOffsetLevel0 = 0
pset.OutlineShape.TextOffsetLevel1 = 0
pset.OutlineShape.TextOffsetLevel2 = 0
pset.OutlineShape.TextOffsetLevel3 = 0
pset.OutlineShape.TextOffsetLevel4 = 0
pset.OutlineShape.TextOffsetLevel5 = 0
pset.OutlineShape.TextOffsetLevel6 = 0
pset.OutlineShape.TextOffsetLevel7 = 0
pset.OutlineShape.TextOffsetLevel8 = 0
pset.OutlineShape.TextOffsetLevel9 = 0
# 번호 서식 문자열("^1." 또는 "^1-^2-^3." 등. 여기서 ^정수는 해당수준 개요번호)
pset.OutlineShape.StrFormatLevel0 = ""
pset.OutlineShape.StrFormatLevel1 = ""
pset.OutlineShape.StrFormatLevel2 = ""
pset.OutlineShape.StrFormatLevel3 = ""
pset.OutlineShape.StrFormatLevel4 = ""
pset.OutlineShape.StrFormatLevel5 = ""
pset.OutlineShape.StrFormatLevel6 = ""
pset.OutlineShape.StrFormatLevel7 = ""
pset.OutlineShape.StrFormatLevel8 = ""
pset.OutlineShape.StrFormatLevel9 = ""
# 번호 모양("HangulSyllable", "CircledDigit", "HangulJamo", "RomanSmall" 등)
# pset.OutlineShape.NumFormatLevel0 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel1 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel2 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel3 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel4 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel5 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel6 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel7 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel8 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NumFormatLevel9 = hwp.NumberFormat("Digit")
# pset.OutlineShape.NewList = 1
# pset.HSet.SetItem("ApplyClass", 24)
pset.HSet.SetItem("ApplyTo", 3)
return hwp.HAction.Execute("OutlineNumber", pset.HSet)
위 함수를 정의해 두고 개요번호없음
을 실행해보시면,
모든 스타일의 개요가 사라지는 것을 확인하실 수 있습니다.
함수를 적절히 활용하면, 아래처럼 개요번호를 임의 서식으로 만들 수도 있겠습니다.
보여주신 코드 중에,
hwp.hwp.HAction.Run
에 hwp는 왜 두 번 넣으신 거죠?
그냥hwp.HAction.Run
이나hwp.Run
으로 구현하시면 됩니다.
pyhwpx의 Hwp클래스 내부적으로는,
self.hwp를 통해 hwp 애플리케이션의 API를 직접 참조하는 방식을 쓰고 있기는 합니다.
(기존 오토메이션API의 코딩방식을 그대로 사용할 수 있게 하기 위함입니다.)
다음 질문에 답변으로 달아놓았습니다. 참고해주시기 바랍니다.
감사합니다.
행복한 하루 되세요!!!~
포럼에 질문하러 들어갔다가 무심코 검색해봤더니
이미 관련한 질문과 답변이 여러 번 있었네요..^^;
(이래서 검색을 생활화해야ㅠㅠㅠ)
퇴근하고 저녁에 관련 답변 달아두도록 하겠습니다.
행복한 하루 되세요^^
아 이래야 동작하는줄 알았습니다. 감사합니다 함수로 하면되겠네요 ^^오늘도 많이 배우고 갑니다.