해결된 질문
작성
·
294
·
수정됨
답변 2
2
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)
라고 정의하고 실행하면
이렇게 일괄변경이 됩니다.
한/글 버전이 달라서 그러는 것 같지는 않고,
혹시 작성하신 코드를 보여주시거나,
처리하시려는 작업을 알려주시면
관련 코드를 작성해드려보겠습니다.
행복한 하루 되세요!!!
글자크기 일괄조절은 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
pset = hwp.HparameterSet.HFindReplace를 할당해서 사용해야 안전한거군요? 강의중 이 내용이 있었는데 이제서야 기억이 납니다. ^^ 감사합니다.~
혹시 글자크기도 조정일괄로 하고 싶은데 가능할까요?