본문 바로가기

아래아한글 자동화/python+hwp 입문19

3. 입력하기 보호되어 있는 글 입니다. 2022. 11. 10.
2-8. 필드위치로 캐럿 옮기기 이번 챕터에서 알려드릴 메서드는 누름틀 또는 표 안의 셀 필드로 커서를 한 번에 옮기는 hwp.MoveToField 입니다. 'PutFieldText로 텍스트만 입력할 수 있으면 되는 거 아닌가?' 하고 생각할 분들도 계실 수 있겠네요. MoveToField가 아주 유용하게 쓰이는 경우 중 하나가 바로 "특정 셀 안에 이미지 넣기" 같은 작업입니다. 이게 얼마나 코드를 간편하게 만드는지 비교해서 보여드리겠습니다. 아래와 같은 표가 있을 때 두 번째 표의 B3 셀(빨간 테두리)에 나무사진4.jpg를 삽입하고자 합니다. MoveToField를 쓰지 않는다면 아래의 과정을 거쳐 이미지를 삽입합니다. ① hwp.InitScan 실행 후에 ② hwp.GetText로 "나무사진4"가 나올 때까지 탐색하다가 "나무사.. 2022. 11. 9.
2-7. 필드 삭제하기 필드를 삭제하는 일이 흔한 경우는 아니지만, 보고서를 작성해서 공유하거나 상사에게 HWP파일로 송부하는 경우 간혹 "자꾸 무슨 빨간 꺽쇠가 뚝딱거린다?"며 불편한 피드백을 보이는 분들이 계세요. 그런 피드백푸념에 대비하기 위해 최종 보고서 작성까지는 누름틀을 통해서 자동화했더라도, 배포(?)할 때에는 내용은 그대로 두고 누름틀만 삭제하는 기능이 있습니다. 바로, hwp.DeleteCtrl(ctrl) 인데요. 사실 이 명령어는 누름틀을 삭제하는 기능뿐만 아니라, 표나 이미지 등 모든 컨트롤을 삭제할 수 있는 범용 메서드입니다. 사용법도 간단합니다. 괄호 안에 파라미터로 삭제하고 싶은 컨트롤 객체를 넣으면 됩니다. 오히려 컨트롤을 선택하는 과정이 약간 더 복잡하게 느껴질 정도입니다. 2장 초반에서 많이 사용.. 2022. 11. 9.
2-6. 필드속성 수정하기 지난 포스팅까지 기본적인 누름틀필드와 셀필드 관련 입출력 방법을 알려드렸습니다. 이번 챕터에서는 필드를 생성하거나 속성을 수정하는 등 필드관련 기타 메서드를 소개합니다. 다소 특수한(어렵고 복잡한) 경우에 사용될 수도 있는 메서드들입니다. 이 포스팅의 메서드들은 왠만한 경우에는 사용되지 않을 것이므로 필요한 경우가 아니면 읽지 않으실 것을 권합니다. 분량도 다소 깁니다. 1. RenameField : 필드이름 수정하기 2. SetCurFieldName : 현재 커서위치의 필드이름 수정하기 3. SetFieldViewOption : 필드의 겉보기속성 수정(『』을 표시하지 않거나, 흰색으로 표시) - "양식모드"/"읽기모드" 전용 4. CreateField : 커서 현재 위치에 필드를 생성 5. FieldE.. 2022. 11. 9.
2-5. 문서의 필드목록 및 필드 값 취득하기 지금까지는 필드에 값을 삽입하는 과정을 보여드렸다면, 이번 챕터에서는 한/글 문서의 필드 목록을 가져오거나, 특정 필드의 값을 추출하는 방법을 알려드리겠습니다. 이번 실습에 사용할 한/글 문서는 지난 포스팅에서 완성한 "누름틀필드#완성.hwp"입니다. 지난 포스팅부터 읽어오셨다면 아시겠지만 아래의 문서에는 모든 페이지마다 "이름", "성별", "생일", "취미" 라는 누름틀필드가 생성되어 있고 모든 필드에 값을 입력해놓은 상태입니다. 필드명 불러오기 : hwp.GetFieldList(1) 이 문서를 파이썬으로 연 후 필드의 이름 목록을 가져와보겠습니다. (필드에 삽입된 값이 아닙니다.) 필드 리스트를 얻는 코드는 "hwp.GetFieldList()" 입니다. print(hwp.GetFieldList()).. 2022. 11. 7.
2-4. 엑셀문서 값을 필드에 입력하기 지난 포스팅에서는 특정 문자열을 한/글 문서의 필드에 입력하는 과정까지 코드로 진행해보았습니다. 그런데 업무자동화 코드를 짜다 보면, 직접 문자열을 타이핑해서 입력하기보다는 엑셀파일이나 다른 한/글 파일에서 값을 읽어 다른 한/글 보고서에 입력하는 방식이 대부분입니다. 그래서 이번 포스팅에서는 간단한 엑셀파일을 읽어와서 한/글 문서에 삽입하는 과정을 보여드리겠습니다. 이번에는 기본기능을 소개하는 포스팅이 아니라, 광범위하게 실무에 사용 가능한 프로세스를 소개드리므로 다소 포스팅이 길게 느껴지실 수 있습니다. 찬찬히 코드를 읽어보시면서 따라해 보시길 추천드립니다. 우선 한/글 파일은 이전 포스팅에서 사용한 "누름틀필드.hwp"를 사용하겠습니다. 그리고 엑셀 파일은 아래와 같이 "취미.xlsx"를 작성하여 .. 2022. 11. 3.
2-3. 필드에 값 입력하기 앞서 저장한 "셀필드.hwp"를 파이썬으로 열고, 필드에 값을 입력해봅시다. 먼저 아래 다섯 라인을 실행해서 문서를 열어줍니다. import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") hwp.Open(r"C:\Users\smj02\Desktop\셀필드.hwp") 차례대로 아래 라인을 한 줄씩 실행해봅시다. 필드에 값을 입력하는 방법입니다. # 첫 번째 파라미터는 필드명, 두 번째 파라미터는 값 hwp.PutFieldTe.. 2022. 10. 31.
2-2. 필드 생성하기 이전 챕터까지 "누름틀"과 "필드"라는 용어를 일부러 혼용했습니다. 엄밀히는 둘이 조금 다른 개념인데, 우선 아래아한글의 "필드"는 두 가지입니다. 본문 내의 "누름틀 필드"와 표의 셀에 할당할 수 있는 "셀 필드"입니다. "누름틀 필드"는 이전 포스팅에서 알려드렸지만, "셀 필드"는 생성하는 방법이 다릅니다. 새로운 문서를 하나 생성해서 4x2의 표를 만들고 아래와 같이 내용을 채워봅시다. 이제 아래와 같이 "신명진" 값이 입력된 B1 셀에 캐럿을 놓고 Ctrl-N-K를 눌러 "표/셀 속성" 창을 열어주고, "셀" 탭의 "필드 이름" 칸에 "이름"이라고 입력해줍니다. B2, B3, B4 셀에도 동일한 과정으로 각각 "성별", "생일" 및 "취미"를 입력해줍니다. 입력이 완료되었으면 저장한 후 문서를 닫.. 2022. 10. 31.
2-1. 누름틀 생성하기 아래아한글 문서를 자동화할 때 가장 많이 쓰이는 기능을 꼽아보라면 저는 고민없이 바로 "필드"를 사용해서 문서를 완성하는 방법이라고 말씀드리겠습니다. 그만큼 "필드"는 한/글 문서 자동화에 있어 가장 중요한 기능입니다. 이번 챕터에서는 누름틀 및 필드를 사용하여 문서를 자동으로 완성하는 방법을 알려드리겠습니다. 일반적으로 아래아한글 자동화, 보고서 자동화라고 하면 어느 정도 서식이 완성되어 있는 상태에서, 부분적으로 새로운 정보가 들어가야 하는 구간이 있을 것입니다. 예를 들면 아래와 같은 간단한 문서가 있다고 가정해보겠습니다. 필드를 사용하려면 미리 해당문서에 "누름틀"이라는 것을 추가해주어야 합니다. 콜론(:) 우측의 "신명진", "남", "1983. 2. 26." 및 "코딩"을 삭제한 후에 차례대로.. 2022. 10. 31.
반응형