inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

개요 다루기 질문(2)

해결된 질문

130

Hyunuk Seo

작성한 질문수 8

1

아래 질문한 사람입니다. ^^

답변 감사드립니다.

추가적으로 ctrl k + o 개요 번호모양 없음 지정하는 방법과

 

image.png

 

스타일의 커서 위치로 스타일 바꾸기가 가능할까요!?

요렇게 해봤는데 제가 바꾸고자 하는 스타일을 지정하는 방법을 모르겠습니다. ㅠ

    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)

 

image.png

 

python 한컴오피스

답변 1

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)

위 함수를 정의해 두고 개요번호없음을 실행해보시면,

모든 스타일의 개요가 사라지는 것을 확인하실 수 있습니다.

녹화_2024_12_02_19_18_43_631.gif

 

함수를 적절히 활용하면, 아래처럼 개요번호를 임의 서식으로 만들 수도 있겠습니다.

녹화_2024_12_02_19_29_12_279.gif

보여주신 코드 중에, hwp.hwp.HAction.Run에 hwp는 왜 두 번 넣으신 거죠?
그냥 hwp.HAction.Run이나 hwp.Run으로 구현하시면 됩니다.

 

pyhwpx의 Hwp클래스 내부적으로는,
self.hwp를 통해 hwp 애플리케이션의 API를 직접 참조하는 방식을 쓰고 있기는 합니다.
(기존 오토메이션API의 코딩방식을 그대로 사용할 수 있게 하기 위함입니다.)

 

 

그리고 2번에 대한 부분은

다음 질문에 답변으로 달아놓았습니다. 참고해주시기 바랍니다.

링크

 

감사합니다.

행복한 하루 되세요!!!~

1

Hyunuk Seo

아 이래야 동작하는줄 알았습니다. 감사합니다 함수로 하면되겠네요 ^^오늘도 많이 배우고 갑니다.

1

Hyunuk Seo

아 그렇군요 ㅋㅋ 감사합니다.

1

일코

포럼에 질문하러 들어갔다가 무심코 검색해봤더니

이미 관련한 질문과 답변이 여러 번 있었네요..^^;

(이래서 검색을 생활화해야ㅠㅠㅠ)

퇴근하고 저녁에 관련 답변 달아두도록 하겠습니다.

행복한 하루 되세요^^

섹션7과 같은 수학 수식을 백지에서 시작할 때 어떻게 만들 수 있을까요?

0

76

1

hwp 병렬 작업시 클립보드 충돌문제

0

58

1

본문을 각주로 내리는 법

1

93

1

한글 자동화 삽도 삽입!!

1

384

2

한글 표 내부 위치 찾는 코드좀 알려주세요 ㅠㅠ

1

233

2

빈 문서를 새로 열때는 팝업이 안나오는데 기존 문서를 열면 팝업이 나옵니다

1

118

2

사무실 컴퓨터ㅠ

0

96

2

글자입력 여러번 실행기

0

67

1

현재 커서 문단에 아무런 내용이 없는지 확인하기

1

102

1

특정 스타일을 찾아 이동하는 방법

1

161

2

한/글 파일 open 시 '상위 버전에서...' 메세지 안 뜨게 하는 방법?

1

1108

1

win32com 으로 hwp 문자열 검색하기 문의

1

222

2

[응용] 엑셀문서 값을 필드에 입력하기 질

1

122

1

표 병합하기 관련

0

140

0

메타태그 삽입 자동화

0

191

1

스크립트 매크로 초기화 하고 싶습니다.

1

270

2

한글 창이 여러 개 존재할 때 pyhwpx 모듈로 접근하는 방법을 알고 싶습니다.

1

271

1

표안의 특정 필드에 있는 이미지를 복사하여 한글 외부에 저장하기

1

273

2

스타일 싹 다 지우고 바탕글로 통일하는 방법 문의드립니다.

1

283

0

하위의 여러 폴더 중 특정폴더의 사진만 추출하기

1

345

2

한글 수식을 자동으로 넣는 코드를 만들었는데, 수식 사이의 간격이 계속 벌어집니다.

1

655

1

보유 특허 검색 페이지에서 검색이 되지 않습니다.

1

137

1

hwp 페이지별 분할 저장하는 코드 관련 문의

0

446

0

한글 문서에 사용된 폰트명 추출

1

644

1