-
카테고리
-
세부 분야
업무 자동화
-
해결 여부
해결됨
특정 누름틀 필드 제거
23.12.28 15:34 작성 조회수 321
1
이것저것 다양하게 자동화코드 짜보시다가
막히면 언제든 무엇이든 질문 던져주세요.
업무자동화 코딩은 과학이나 알고리즘과는 조금 달라서
고민만으로 풀리지 않는 경우가 대부분입니다.
저도 최대한 빠르게 회신 드리겠습니다.
hwp.DeleteCtrl 부분 잘 학습하다가
업무에서 입력할 부분을 입력한뒤
전체 누름틀 제거가 아닌
특정 누름틀을 제거하고 싶은 경우는 어떻게 방법이 있을까요?
답변을 작성해보세요.
1
일코
지식공유자2023.12.28
pyhwpx 모듈을 사용하신다면, (pip으로 설치가능)
아래와 같은 코드로 특정 이름의 필드를 제거할 수 있습니다.
from pyhwpx import Hwp
hwp = Hwp()
hwp.open("./doc.hwp")
hwp.delete_field_by_name("name") # "name"이라는 이름의 누름틀 모두 제거(텍스트 남김)
기존의 win32com 방식으로 제거하시는 방법은,
대략 아래와 같은 함수로 짤 수 있습니다.
import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
def delete_field_by_name(field_name):
start_pos = hwp.get_pos()
ctrl = hwp.HeadCtrl
while ctrl:
if ctrl.CtrlID == "%clk":
hwp.SetPosBySet(ctrl.GetAnchorPos(1))
if hwp.GetCurFieldName() == field_name:
hwp.DeleteCtrl(ctrl)
ctrl = ctrl.Next
hwp.SetPos(*start_pos)
도움이 되었길 바랍니다^^
답변 1