[글머리 기호 추출] GetheadingString()
문단 글머리 기호를 추출하고자 합니다.
원래 목적은 문단별 글머리 기호가 다르고 문단별로 각각 다른 폰트를 적용이 목적입니다.
GetHeadingString()을 써보니
코드를 적용해서 커서를 옮겨도 문서를 최초 불러온 커서의 위치의 글머리 기호를 불러오네요..
이유를 몰겟습니다. ㅠㅠ
아래는 테스트 코드입니다.
import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
hwp.Open("D:\Automation\Test.hwpx")
text = hwp.GetHeadingString()
hwp.InitScan()
hwp.HAction.Run("MoveDocBegin")
hwp.HAction.Run("MoveParaBegin")
print(text)
hwp.HAction.Run("MoveSelParaEnd")
hwp.HAction.Run("CharShapeItalic")
hwp.HAction.Run("Cancel")
hwp.MovePos(10)
print(text)
hwp.HAction.Run("MoveSelNextParaBegin")
hwp.HAction.Run("MoveSelParaEnd")
hwp.HAction.Run("CharShapeItalic")
hwp.HAction.Run("Cancel")
hwp.ReleaseScan()
답변 1
1
안녕하세요?^^
보내주신 코드를 읽어보았습니다.
혹시 원하시는 동작이
특정 수준의 글머리 기호에 이탤릭을 적용하시겠다는 것인지요?ㅎ
조금만 더 구체적으로 알려주시면 답변에 도움이 될 것 같습니다.
GetHeadingString() 메서드는 해당 글머리 기호의 텍스트 정보를
파이썬으로 가져오는 기능만 수행합니다.
(참고로 작성하신 코드에서 InitScan과 ReleaseScan은 없어도 무방합니다.)
1
인프런 블로그에 관련 포스팅을 남겨보았습니다.
혹시 의도하신 바와 다르면 댓글 남겨주시기 바랍니다^^
아래 링크를 남겨놓습니다.
[python+hwp] 글머리 기호의 모양만 수준별로 바꾸는 파이썬 코드 - 일코님의 블로그 - 인프런 | 커뮤니티 (inflearn.com)
1
답변주심에 감사드립니다.
원래 목적은 특정 글머리 기호 문단에 특정 폰트를 적용하고 자간조정하고, 글머리 기호를 그림 글머리로 대체하는 자동화 프로그램을 하고자합니다. 예를들어 '-'이런모양의 글머리 문단은 맑은고딕 폰트로 'ㅇ'모양의 글머리기호의 문단은 바탕체 폰트로 변경하는 자동화 프로그램입니다. 요걸하기위해서 글머리를 인힉하고자 합니다.
2

도움이 되었으면 좋겠습니다.
아래는 예시에 사용한 코드입니다.
"""
특정 글머리 기호 문단에 특정 폰트를 적용하고 자간조정하고,
글머리 기호를 그림 글머리로 대체하는 자동화 프로그램을 하고자합니다.
예를들어 '-'이런모양의 글머리 문단은 맑은고딕 폰트로
'ㅇ'모양의 글머리기호의 문단은 바탕체 폰트로 변경하는
자동화 프로그램입니다.
요걸 하기 위해서 글머리를 인식하고자 합니다.
"""
import win32com.client as win32
def 한글_시작():
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
return hwp
def 서체속성변경(face, 크기, 장평, 자간):
hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet)
hwp.HParameterSet.HFindReplace.Direction = hwp.FindDir("AllDoc")
hwp.HParameterSet.HFindReplace.FindCharShape.FontTypeHangul = hwp.FontType("TTF")
hwp.HParameterSet.HFindReplace.FindCharShape.FaceNameHangul = face
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingJapanese = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingHanja = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingLatin = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingHangul = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioUser = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioSymbol = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioOther = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioJapanese = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioHanja = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioLatin = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.RatioHangul = 장평
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingUser = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingSymbol = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.SpacingOther = 자간
hwp.HParameterSet.HFindReplace.ReplaceCharShape.Height = hwp.PointToHwpUnit(크기)
hwp.HParameterSet.HFindReplace.ReplaceMode = 1
hwp.HParameterSet.HFindReplace.IgnoreMessage = 1
hwp.HParameterSet.HFindReplace.FindType = 1
hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet)
def 서체변경(face):
hwp.HAction.GetDefault("CharShape", hwp.HParameterSet.HCharShape.HSet)
hwp.HParameterSet.HCharShape.FaceNameUser = face
hwp.HParameterSet.HCharShape.FontTypeUser = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameSymbol = face
hwp.HParameterSet.HCharShape.FontTypeSymbol = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameOther = face
hwp.HParameterSet.HCharShape.FontTypeOther = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameJapanese = face
hwp.HParameterSet.HCharShape.FontTypeJapanese = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameHanja = face
hwp.HParameterSet.HCharShape.FontTypeHanja = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameLatin = face
hwp.HParameterSet.HCharShape.FontTypeLatin = hwp.FontType("TTF")
hwp.HParameterSet.HCharShape.FaceNameHangul = face
hwp.HParameterSet.HCharShape.FontTypeHangul = hwp.FontType("TTF")
hwp.HAction.Execute("CharShape", hwp.HParameterSet.HCharShape.HSet)
return hwp.HAction.Run("MoveParaEnd")
if __name__ == '__main__':
hwp = 한글_시작()
hwp.Run("MoveDocBegin")
hwp.Run("MoveParaEnd")
para_num = 0
while True:
hwp.SetPos(0, para_num, -1)
if hwp.GetPos() == (0, 0, 16):
서체속성변경("맑은 고딕", 크기=41, 장평=90, 자간=-5)
서체속성변경("바탕체", 크기=41, 장평=110, 자간=-15)
break
head = hwp.GetHeadingString()
if head == "-":
hwp.Run("MoveSelParaBegin")
서체변경("맑은 고딕")
elif head == "○":
hwp.Run("MoveSelParaBegin")
서체변경("바탕체")
else:
pass
para_num += 1
섹션7과 같은 수학 수식을 백지에서 시작할 때 어떻게 만들 수 있을까요?
0
76
1
hwp 병렬 작업시 클립보드 충돌문제
0
59
1
본문을 각주로 내리는 법
1
93
1
한글 자동화 삽도 삽입!!
1
385
2
한글 표 내부 위치 찾는 코드좀 알려주세요 ㅠㅠ
1
233
2
빈 문서를 새로 열때는 팝업이 안나오는데 기존 문서를 열면 팝업이 나옵니다
1
119
2
사무실 컴퓨터ㅠ
0
97
2
글자입력 여러번 실행기
0
69
1
현재 커서 문단에 아무런 내용이 없는지 확인하기
1
103
1
특정 스타일을 찾아 이동하는 방법
1
164
2
한/글 파일 open 시 '상위 버전에서...' 메세지 안 뜨게 하는 방법?
1
1116
1
win32com 으로 hwp 문자열 검색하기 문의
1
223
2
[응용] 엑셀문서 값을 필드에 입력하기 질
1
123
1
표 병합하기 관련
0
142
0
메타태그 삽입 자동화
0
191
1
스크립트 매크로 초기화 하고 싶습니다.
1
272
2
한글 창이 여러 개 존재할 때 pyhwpx 모듈로 접근하는 방법을 알고 싶습니다.
1
271
1
표안의 특정 필드에 있는 이미지를 복사하여 한글 외부에 저장하기
1
277
2
스타일 싹 다 지우고 바탕글로 통일하는 방법 문의드립니다.
1
285
0
하위의 여러 폴더 중 특정폴더의 사진만 추출하기
1
346
2
한글 수식을 자동으로 넣는 코드를 만들었는데, 수식 사이의 간격이 계속 벌어집니다.
1
663
1
보유 특허 검색 페이지에서 검색이 되지 않습니다.
1
140
1
hwp 페이지별 분할 저장하는 코드 관련 문의
0
450
0
한글 문서에 사용된 폰트명 추출
1
647
1





