강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của janggetup1306
janggetup1306

câu hỏi đã được viết

Công thức tự động hóa Python-아래아한글 cần thiết cho nhân viên văn phòng

API lỗi được sử dụng để kiểm tra và thay đổi phông chữ hàng loạt

API 버그를 활용한 서체 일괄 변경이 잘 안됩니다.

Đã giải quyết

Viết

·

421

·

Đã chỉnh sửa

2

2024-02-12_23-14-49.jpgAPI 버그를 활용한 서체 일괄체크 및 변경 파이썬코드가 작동안하는데 한글의 버그가 패치되었는지~

글자색_변경하기()함수는 결과가 나오는데 모든_줄간격_변경하기(줄간격), 모든_글자색_변경하기(r, g, b) 함수는 실행시켜도 한글 문서에 아무런 변화가 없습니다.~

 

 

python한컴오피스

Câu trả lời 2

2

ilco님의 프로필 이미지
ilco
Người chia sẻ kiến thức

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)    

라고 정의하고 실행하면

image

이렇게 일괄변경이 됩니다.

한/글 버전이 달라서 그러는 것 같지는 않고,
혹시 작성하신 코드를 보여주시거나,
처리하시려는 작업을 알려주시면
관련 코드를 작성해드려보겠습니다.

 

행복한 하루 되세요!!!

혹시 글자크기도 조정일괄로 하고 싶은데 가능할까요?

ilco님의 프로필 이미지
ilco
Người chia sẻ kiến thức

글자크기 일괄조절은 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

실행화면은 아래와 같습니다.

image

도움이 되었길 바랍니다.

 

1

janggetup님의 프로필 이미지
janggetup
Người đặt câu hỏi

pset = hwp.HparameterSet.HFindReplace를 할당해서 사용해야 안전한거군요? 강의중 이 내용이 있었는데 이제서야 기억이 납니다. ^^ 감사합니다.~

Hình ảnh hồ sơ của janggetup1306
janggetup1306

câu hỏi đã được viết

Đặt câu hỏi