-
카테고리
-
세부 분야
업무 자동화
-
해결 여부
해결됨
API 버그를 활용한 서체 일괄 변경이 잘 안됩니다.
24.02.12 23:07 작성 24.02.12 23:16 수정 조회수 222
2
API 버그를 활용한 서체 일괄체크 및 변경 파이썬코드가 작동안하는데 한글의 버그가 패치되었는지~
글자색_변경하기()함수는 결과가 나오는데 모든_줄간격_변경하기(줄간격), 모든_글자색_변경하기(r, g, b) 함수는 실행시켜도 한글 문서에 아무런 변화가 없습니다.~
답변을 작성해보세요.
2
일코
지식공유자2024.02.13
janggetup님 안녕하세요?
지금 제가 쓰고 있는 버전은 한글2018인데요.
아직 일괄변경이 잘 됩니다.
예를 들어 문서 내 모든 서체를 "휴먼명조"로 일괄변경하고 싶으면,
def 서체일괄변경(src="모두", dst="휴먼명조"):
pset = hwp.HParameterSet.HFindReplace
hwp.HAction.GetDefault("AllReplace", pset.HSet)
pset.MatchCase = 0
pset.AllWordForms = 0
pset.SeveralWords = 0
pset.UseWildCards = 0
pset.WholeWordOnly = 0
pset.AutoSpell = 1
pset.Direction = hwp.FindDir("Forward")
pset.IgnoreFindString = 0
pset.IgnoreReplaceString = 0
pset.FindString = ""
pset.ReplaceString = ""
pset.FindCharShape.FontTypeUser = hwp.FontType("TTF")
pset.FindCharShape.FaceNameUser = src
pset.FindCharShape.FontTypeSymbol = hwp.FontType("TTF")
pset.FindCharShape.FaceNameSymbol = src
pset.FindCharShape.FontTypeOther = hwp.FontType("TTF")
pset.FindCharShape.FaceNameOther = src
pset.FindCharShape.FontTypeJapanese = hwp.FontType("TTF")
pset.FindCharShape.FaceNameJapanese = src
pset.FindCharShape.FontTypeHanja = hwp.FontType("TTF")
pset.FindCharShape.FaceNameHanja = src
pset.FindCharShape.FontTypeLatin = hwp.FontType("TTF")
pset.FindCharShape.FaceNameLatin = src
pset.FindCharShape.FontTypeHangul = hwp.FontType("TTF")
pset.FindCharShape.FaceNameHangul = src
pset.ReplaceCharShape.FontTypeUser = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameUser = dst
pset.ReplaceCharShape.FontTypeSymbol = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameSymbol = dst
pset.ReplaceCharShape.FontTypeOther = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameOther = dst
pset.ReplaceCharShape.FontTypeJapanese = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameJapanese = dst
pset.ReplaceCharShape.FontTypeHanja = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameHanja = dst
pset.ReplaceCharShape.FontTypeLatin = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameLatin = dst
pset.ReplaceCharShape.FontTypeHangul = hwp.FontType("TTF")
pset.ReplaceCharShape.FaceNameHangul = dst
pset.ReplaceMode = 1
pset.IgnoreMessage = 1
pset.HanjaFromHangul = 0
pset.FindJaso = 0
pset.FindRegExp = 0
pset.FindStyle = ""
pset.ReplaceStyle = ""
pset.FindType = 1
hwp.HAction.Execute("AllReplace", pset.HSet)
라고 정의하고 실행하면
이렇게 일괄변경이 됩니다.
한/글 버전이 달라서 그러는 것 같지는 않고,
혹시 작성하신 코드를 보여주시거나,
처리하시려는 작업을 알려주시면
관련 코드를 작성해드려보겠습니다.
행복한 하루 되세요!!!
일코
지식공유자2024.05.21
글자크기 일괄조절은 pyhwpx의 set_font 메서드를 쓰시는 걸 추천드립니다.
아래는 문서 내 모든 영역의 글자크기를 10으로 조정하는 코드입니다.
# 수정을 원하는 문서를 열어놓은 상태로 아래 코드 실행
from pyhwpx import Hwp
hwp = Hwp()
i = 0
while hwp.set_pos(i, 0, 0):
hwp.SelectAll()
hwp.set_font(Height=10)
i += 1
실행화면은 아래와 같습니다.
도움이 되었길 바랍니다.
1
janggetup
질문자2024.02.13
pset = hwp.HparameterSet.HFindReplace를 할당해서 사용해야 안전한거군요? 강의중 이 내용이 있었는데 이제서야 기억이 납니다. ^^ 감사합니다.~
답변 2