inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

서식 추출 및 스타일 교정

해결된 질문

206

Hyunuk Seo

작성한 질문수 8

1

안녕하세요 빠른 답변 감사합니다.

 

아래 잠긴 문서 너무 궁굼합니다. ㅠㅠ

[HDMI] 최종화 : 취합문서 스타일 교정

 

저번 질문에서 커서위치 스타일 추출이 없어서 고민 하고 있습니다.

 

그러면 내가 원하는 커서위치의 서식정보를 가지고 와서 스타일을 만들면 어떨까 고민하고 있는데요

저번에 어느 일코님 강이에서 스타일 만드는거는 어렵다고 이야기를 들어서 ^^&

 

  1. 서식정보 추출이 가능한가요!?

  2. 스타일 폰트 크기 자간등 및 개요수전 1단계 이런거 가능할까요!?

 

질문이 많아 죄송합니다.

항상감사합니다.

 

 

python 한컴오피스

답변 2

1

일코

스타일을 직접 수정하는 액션이 있었네요.

https://forum.developer.hancom.com/t/topic/1552/4?u=ilco

 

파이썬으로 특정 스타일의 글자모양, 문단모양 바꾸기

① 기본적인 예시코드입니다.

# "개요 1" 스타일의 글자모양 중 "크기"를 30pt로,
# 문단모양 중 "줄간격"을 160%로 변경하는 코드
from pyhwpx import Hwp

hwp = Hwp()
# 또는, import win32com.client as win32; hwp = win32.gencache~ 해도 됨.

act = hwp.CreateAction("StyleDirectEdit")
pset = act.CreateSet()
act.GetDefault(pset)
pset.SetItem("NameLocal", "개요 1")
char_shape = pset.CreateItemSet("CharShape", "CharShape")
char_shape.SetItem("Height", hwp.PointToHwpUnit(30))
para_shape = pset.CreateItemSet("ParaShape", "ParaShape")
para_shape.SetItem("LineSpacing", 200)
para_shape.SetItem("LineSpacingType", hwp.LineSpacingMethod("Percent"))
act.Execute(pset)

 

② 위의 코드는 아래의 방식의 코드로도 실행하실 수 있습니다. (스크립트매크로 방식)

# 위 코드는 아래 방법으로도 입력 가능
# 개요 1의 글자크기를 40으로, 줄간격 250%로 변경하기
pset = hwp.HParameterSet.HStyleItem
hwp.HAction.GetDefault("StyleDirectEdit", pset.HSet)
pset.CharShape.Height = hwp.PointToHwpUnit(40)
pset.ParaShape.LineSpacing = 250
pset.ParaShape.LineSpacingType = 0  # "Percent"
pset.NameLocal = "개요 1"  # 변경하고자 하는 스타일 이름
hwp.HAction.Execute("StyleDirectEdit", pset.HSet)

 

③ 마지막으로 커서 위치의 스타일로 바꾸기 코드입니다.

# 개요 1 스타일을 현재커서위치 서식(글자, 문단모양)으로 변경
cur_charshape = hwp.CharShape  # 현재 글자15, 빨갛게 상태
cur_parashape = hwp.ParaShape  # 현재 가운데정렬, 줄간격180% 상태

act = hwp.CreateAction("StyleDirectEdit")
pset = act.CreateSet()
act.GetDefault(pset)
pset.SetItem("NameLocal", "개요 1")
charshape = pset.CreateItemSet("CharShape", "CharShape")
parashape = pset.CreateItemSet("ParaShape", "ParaShape")
charshape.Merge(cur_charshape)
parashape.Merge(cur_parashape)
act.Execute(pset)

마지막 예시만 시연화면을 남겨둡니다.

녹화_2024_12_03_21_16_37_854.gif

 

 

질문 많이 남겨주셔도 괜찮아요!!!!!!!

행복한 하루 되세요^^

 

질문에 남겨주신 "HDMI 최종화"는 작성중에... 너무 분량도 많아지고, 내용도 뒤죽박죽인데다 xml 파싱이나 편집 등 일반인을 대상으로 할 수 없을 내용의 것들이었습니다ㅜ 하등 도움이 되지 않는다고 판단하여 비공개 처리를 했습니다. 포스팅의 주된 내용은 위의 StyleDirectEdit 액션과 StyleItem 파라미터셋을 쓰지 않고 header.xml의 스타일 서식 부분을 부분적으로 조작하는 방법이었습니다. 완결된 포스팅도 아니어서, 비공개로 남겨두려고 합니다. 관련 내용은 다행히 100% 위의 액션으로 훨씬 간편하게 대체할 수 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Hyunuk Seo님.

질문하신 내용에 대해 관련된 정보 및 유사한 질문에 대한 답변이 있는 자료를 찾아보았습니다. 아래 내용을 참조하시면 도움이 될 것입니다.

  1. 서식정보 추출 가능 여부:
    파이썬으로 한컴오피스를 자동화하여 문서의 서식 정보를 추출하는 기능은 가능합니다. 서식은 일반적으로 폰트 정보, 문단 모양, 개요 설정 등의 형식을 포함하며, 이를 코드로 접근하여 특정 위치의 서식 정보를 동적으로 불러오는 것이 가능합니다.

질문하신 “커서 위치의 서식 정보 추출”에는 hwp.GetParaShapehwp.GetCharShape 등의 메서드를 활용할 수 있습니다. 이를 통해 문서의 특정 부분에 대한 서식 및 모양 정보를 가져올 수 있습니다. 관련한 내용은 아래 URL에서 더 상세히 다루고 있습니다:
- [스타일 정보 조회가 가능할까요?]

  1. 스타일 및 포맷ting 설정 변경 가능 여부:
    스타일을 새로 만들거나 수정하는 것은 직접적인 자동화 API에서는 다소 복잡한 부분이 있는 것이 사실입니다. 그러나 한컴오피스 API를 통해 문서의 스타일 속성을 접근하고 변경하는 것은 가능합니다. 이때 HParameterSet.HStyle 속성을 활용하여 스타일의 폰트 크기, 자간, 개요 수준 등을 설정하는 코드를 구성할 수 있습니다.

다음은 스타일 속성을 설정하는 코드의 예시입니다:

   hwp.HAction.GetDefault("StyleChangeToCurrentShape", hwp.HParameterSet.HStyleItem.HSet)
   hwp.HParameterSet.HStyleItem.FontHeight = 10000  # 폰트 크기 설정 (예: 10pt)
   hwp.HAction.Execute("StyleChangeToCurrentShape", hwp.HParameterSet.HStyleItem.HSet)

보다 구체적인 구현은 강의 중 관련 부분을 통해 학습하시거나 추가적인 자료를 참고하시기를 추천드립니다.

Hyunuk Seo님께 도움이 되었으면 합니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

섹션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