본문 바로가기

반응형

한글2020

한/글 메서드별 인자 확인하는 방법(feat. ipython) FileName 과 filename 사이에서 고민하고 있는 "회사원코딩"의 수강생입니다. ^^; 다음 내용을 좀 더 상세히 알 수 있을까요? 어떻게 docstring을 통해 대소문자 점검을 할 수 있는지? 미리 어떤 인자가 파라미터로 사용할 수 있는지? 알수 있는 방법에 대해 조언 부탁드립니다. """ API문서를 한/글2010 이후로 10년간 업데이트하지 않았기 때문이기도 하고, 또다른 이유로 win32의 MakePy문제로 일부 메서드의 파라미터는 한/글 내부 스크립트와 대소문자에 차이가 생긴다. FileName이 파이썬에서는 filename으로 바뀐다든지 하는 식이다. 다행히 이런 경우는 "어느 파라미터가 존재하지 않는다"는 오류메시지가 나오고, docstring을 통해 대소문자 점검을 해 주면 된다.. 더보기
[교육업무자동화3/10] 청구서자동화3(파이썬으로 엑셀 열어서 값 얻기) 지난 포스팅은... [교육업무자동화2/10] 청구서자동화2(필드에 텍스트 자동입력) 지난 포스팅은... [교육업무자동화1/10] 청구서자동화1(누름틀 다루기) (전략) 우리 ㅇㅇㅇㅇㅇㅇ협회 교육운영팀은 20XX년부터 고용노동부 국가인적자원개발 컨소시엄 사업으로 전환하여 비회원 www.martinii.fun 지난 시간에는 파이썬으로 한/글 파일을 열고 누름틀 목록을 가져오거나, 누름틀에 값을 입력하는 방법을 알아보았다. 그 과정에서 파이썬의 기본자료형인 list와, 기초문법 중 하나인 for문, 그리고 enumerate 등을 사용해서 field_list와 text_list를 1:1로 매칭하여 대입하는 방법을 사용해보았다. 지난 과정이 이해되었다면, 이번 포스팅은 굉장히 단순하게 느껴질 것이다. 왜냐면, 엑.. 더보기
커뮤니티질문 : GetText()에서 표, 글상자에서 텍스트 읽어오기? HwpCtrl.InitScan(0, 2); alert(HwpCtrl.GetText()); HwpCtrl.ReleaseScan(); 위 코드 내용은 한컴설명서에 있는 내용 입니다. 그런데 저렇게 하면 표, 글상자에 있는 내용은 읽어 오기 못 합니다. 특정 문단에 있는 내용을 읽어 싶은데 일반 글자는 읽어 오는데 표, 글상자에 있는 내용은 읽어오지 못 합니다. 고수님들 조언을 부탁 합니다. https://www.hancom.com/board/devcommView.do?board_seq=48&artcl_seq=10844&pageInfo.page=&search_text= www.hancom.com API매뉴얼에 씌어있는 파라미터(대부분 숫자)들은, 신기하게도 조합이 가능하며 (파이썬의 경우) 조합하는 방법은 일.. 더보기
hwp.GetFieldList() # 필드를 다룰 때 꼭 알아야 하는 메서드 응용편에서 튜토리얼을 진행하는 중에 기본 메서드를 자세하게 다루다 보면 의식의 흐름이 툭툭 끊길 수 있어, 이런 식으로 메서드 설명을 기본편에 하나씩 써놓고 참고링크를 달아놓으려고 한다. 1. hwp.GetFieldList() 란? hwp.GetFieldList()는 한/글 컨트롤 오브젝트(HwpCtrl Object)의 메서드 중 하나로 문서에 존재하는 필드(혹은 누름틀)의 목록을 구하는 메서드이다. 개인적으로 한/글 API가 참 친절하다고 느껴지는 부분은 매개변수 파트인데, 필드목록을 구하는 이 간단한 메서드에도 두 개 인자(number, option)에 각각 3개씩의 매개변수가 들어가 있어 누름틀을 상세하게 다룰 수 있다. 2. Number 인자 Number 인자(대소문자 구분)에 들어갈 수 있는 매.. 더보기
[교육업무자동화2/10] 청구서자동화2(필드에 텍스트 자동입력) 지난 포스팅은... [교육업무자동화1/10] 청구서자동화1(누름틀 다루기) (전략) 우리 ㅇㅇㅇㅇㅇㅇ협회 교육운영팀은 20XX년부터 고용노동부 국가인적자원개발 컨소시엄 사업으로 전환하여 비회원사까지 대상으로 교육을 개최할 수 있게 되어 매우 큰 자긍심을 가 www.martinii.fun 이번 포스팅의 내용은 지난 포스팅에서 언급한 것처럼, 교육생 정보가 담긴 엑셀파일 등에서 각 행의 값들을 해당하는 누름틀(필드)에 차례로 삽입하는 과정을 자세히 설명하고자 한다. 1. 파이썬을 통해 한/글을 실행해보자. 이 부분은 솔직하게 먼저 한 가지 말씀드리고 넘어가야겠다. 필자는 기존에 열려 있는 한글창을 파이썬으로 연결하는 방법을 모른다. pywinauto를 통해 기존에 열린 창의 GUI를 제어하는 방법은 있지만,.. 더보기
[한/글자동화 예제] 글자크기를 임의로 바꾸는 간단한 방법 앞 포스팅에서는 글자 속성을 적용하는 여러가지 방법에 대해 알아보았다. 2020/12/14 - [파이썬-아래아한글 자동화 기초] - [한/글자동화 예제]현재 선택영역에 글자속성 적용하기 [한/글자동화 예제]현재 선택영역에 글자속성 적용하기 반말체를 쓰니까, 포스팅 작성속도가 월등히 올라가길래 그렇게 할 예정. 우선, 특정 영역에 찾아가거나 선택하는 방법은 다양하다. "찾기Ctrl-F"를 사용하거나, "탐색GetText" 메서드를 사용하거나, www.martinii.fun 재미있는 것은, 글자 크기도 속성이므로, 동일한 방법으로 현재 글자크기 정보를 얻거나, 크기를 조정할 수도 있다. 가장 아날로그한 방법부터 알아보자. 1. Shift-Alt-E를 사용하는 방법 hwp.Run("CharShapeHeight.. 더보기
자동화를 활용했으면 하는 세대는 20대 초중반인데.. 회사원을 대상으로 자동화 튜토리얼을 진행하고 있다. 재미있는 점은, 업무자동화, 보고서 자동화 같은 매크로 활용 작업을 배웠으면 하는 (혹은 필요할 거라고 생각되는) 세대는.. 지극히 개인적으로는 20대 중반 젊은세대, 혹은 막 신입사원 티를 벗은 주임이나, 대리급 직원 혹은 업무지원직, 서무경리, 회계지원 이런 분들인데.. 내 유튜브 채널 통계는 의외의 숫자를 보여준다. 물론 구독자가 소수라서 편향이 있겠지만 부족한 대로 두 가지 정도가 눈에 띈다. 1. 남성100% !? 2. 시청자 평균 40대!? 둘 다 항상 의외라고 생각했는데 가끔은 썸네일이나 타이틀을 젊은이 타겟으로 바꿔봐야 하나 싶다가도... 이런 통계를 어떻게 활용할 수 있나 하는 생각도 든다. 예를 들면 40대 회사원(대부분은 아빠)을 대.. 더보기
대부분의 업무자동화는 코드가 너무 복잡하던데(?) 대충 5년 가량 파이썬과 VBA로 엑셀 자동화, 아래아한글 자동화를 종종 다뤄본 입장에서 깨달았던, 가장 공유하고 싶은 인사이트는 바로... 업무자동화가 코딩 입문이나 기초과정보다는 훨씬 어렵다는 것이다. (물론 엄청나게 간단하면서 효율적인 스크립트도 참 많기는 하다.) 혼자 몇 년 찬천히 삽질할 때는 잘 못 느꼈는데, 몇 번 다른 사람에게 가르쳐주려다 보니까 새삼 깨닫는다. 오랜 삽질도 자산이었다. 순식간에 지나가는 쌔한 느낌을 간과하면 항상 버그가 나타났다. 결국 잠깐 업무자동화 코드 짜려고 파이참 켰다가 한 시간 있다 보면 디버깅과 테스트, 온갖 익셉션을 다루고 있다. 오죽하면 요즘은 (말도 안 된다고 생각했던) TDD라는 개념도 배워보고 있다. 혹시 도움이 될까봐서.. 결국 하다 보면 어느 지점에.. 더보기
[3/4] 정관문서 서식잡기(장이름 중앙정렬, 위아래 빈라인 삽입) 지난 포스팅은... [2/4] 정관문서 서식잡기(장이름, 조제목만 굵게) 부탁 드렸던 방법은 제가 회사의 정관을 많이 손 보아야 하는 직업이라. 수년전 한글내에서 매크로로 겨우 조항 제목 문자 굵게 만들고, 2번 질문====================== 제 1조(상호) 제 2조(목적)을 다 www.martinii.fun 3번 질문============== 정관 제 1 장 총칙 제 1조 제 2조.. 제 3조... 제 2 장 주식과 주권 제 4조.... 제 5조.. 제 3 장 임원 제 6조 등과 같을 때. 장의 위치를 페이지 가운데로 위치하고 싶고, 또한 각 장 줄의 위와 아래에 빈 줄을 삽입해 넣고 싶습니다. 즉, 빈줄 정관 빈줄 제 1 장 총칙 빈줄 제 1조 제 2조.. 제 3조... 빈줄 제 2 장.. 더보기
[2/4] 정관문서 서식잡기(장이름, 조제목만 굵게) 지난 포스팅은... [1/4] 정관문서 서식잡기(조번호 앞 공백 추가) 1번 질문:=========================== 제[공백][공백]1조 제[공백][공백]2조 . . 제[공백]13조 제[공백]14조 등과 같이 앞에 3자리를 기준으로 빈 공백을 놓아 두고 싶습니다.... 그러면 ”조“자의 위치가 나 www.martinii.fun 부탁 드렸던 방법은 제가 회사의 정관을 많이 손 보아야 하는 직업이라. 수년전 한글내에서 매크로로 겨우 조항 제목 문자 굵게 만들고, 2번 질문====================== 제 1조(상호) 제 2조(목적)을 다음과 같이 굵게(BOLD) 하고 싶습니다. 제 1조(상호) 굵게 제 2조(목적) 굵게 이와 같이 굵게 칠하고 싶습니다. - (후략) 한 구독자 분으.. 더보기
[1/4] 정관문서 서식잡기(조번호 앞 공백 추가) 지난 포스팅은... [0/4] 정관문서 서식잡기 준비(조번호 재정렬) 안녕하세요? 강의에서 예문으로 "통칙"이 있는데 제가 하고 싶은 것은 제1조, 제2조 제3조등이 쭉....수십개 있습니다. 그 중 예로 제3조와 제 4조 사이에 한 두개의 조항이 추가되면 이후 끝까지 www.martinii.fun 1번 질문:=========================== 제[공백][공백]1조 제[공백][공백]2조 . . 제[공백]13조 제[공백]14조 등과 같이 앞에 3자리를 기준으로 빈 공백을 놓아 두고 싶습니다.... 그러면 ”조“자의 위치가 나란히 위치 할 수 있어서 그럽니다. (후략) 한 구독자 분으로부터 문의메일을 받고 자문을 드렸던 내용을 포스팅으로 올리고 있습니다. 일명 "정관서식 자동교정(?)" 시리즈.. 더보기
[0/4] 정관문서 서식잡기 준비(조번호 재정렬) 안녕하세요? 강의에서 예문으로 "통칙"이 있는데 제가 하고 싶은 것은 제1조, 제2조 제3조등이 쭉....수십개 있습니다. 그 중 예로 제3조와 제 4조 사이에 한 두개의 조항이 추가되면 이후 끝까지 조번호가 바뀌는 작업을 일일이 손으로 했습니다. 한글에서 스크립트 작성을 해 봐도 이것이 자동으로 할 수 없기에. 파이썬을 사용하면, 가능할지. 선생님의 강의를 보고는 통칙 예제가 있어 감히 조언 받고자 문의 드립니다. 이 글 보실런가 모르겠지만...꼭 보시고...도움 주시면 정말 고맙겠습니다. 제 메일은 xxx123@xavier.com 입니다. 감사합니다. 한 구독자 분으로부터 문의메일을 받고 자문을 드렸던 내용을 포스팅으로 올리고 있습니다. 일명 "정관 바로잡기" 시리즈입니다. 총 5개의 포스팅으로 연재.. 더보기
현재 위치 글자모양에 "진하게"가 적용되어 있는지 확인하는 방법 자동화 하다 보면 이런 상황을 종종 만납니다. 특정 위치, 혹은 특정 문구를 가진 구간을 선택해서 "진하게"를 적용해야 하는데, 일괄적으로 모든 검색구간에 hwp.Run("CharShapeBold")를 실행해버리면 기존에 진하게 되어 있던 구간들은 모두 "진하게"가 풀려버리잖아? 이런 경우 해결하는 방법입니다. 우선 코드실행 화면은 아래와 같습니다. 조항번호 재정렬 및 조항명 진하게 하는 코드 실행화면 현재 캐럿이 위치해 있는 글자 혹은 선택영역의 속성적용여부를 알아내는 코드는 아래와 같습니다. Act = hwp.CreateAction("CharShape") # "글자모양" 액션 생성 Set = Act.CreateSet() # 해당 세트 생성 Act.GetDefault(Set) # 세트 초기화(Set의 .. 더보기
5. 특정단어 포함한 문장 전체의 서식 바꾸기, 가능할까? 안녕하세요? 회사원코딩의 Martinii입니다. 이번 포스팅에서는 아래아한글의 "찾기/찾아바꾸기"를 파이썬 코드로 재현해보려고 합니다. 나아가 특정 단어를 포함한 문장 전체를 선택해서 서식을 바꾸는 작업까지 코딩해볼게요. 한/글에서 기본적으로 찾기는 Ctrl-F, 찾아바꾸기는 Ctrl-H죠. 예문은 아래 사이트에서 5문단 정도 따왔습니다. 한글 Lorem Ipsum (간세네) 로렘 입숨(lorem ipsum; 줄여서 립숨, lipsum)은 출판이나 그래픽 디자인 분야에서 폰트, 타이포그래피, 레이아웃 같은 그래픽 요소나 시각적 연출을 보여줄 때 사용하는 표준 채우기 텍스트로, 최종 � guny.kr 이 문서에서 가장 먼저 출현하는 "대통령"을 찾는다든지, 문서 내 모든 "대통령"이라는 텍스트에 [진하게 .. 더보기
4. 문서여백을 파이썬으로 바꿀 수 있을까? 안녕하세요? 한/글 자동화 응용편에 보시면, 한/글에서 녹화한 스크립트 매크로와 API매뉴얼의 기본적인 액션 생성 방법 두 가지 문법을 보여드렸습니다. [파이썬-아래아한글] API매뉴얼과 스크립트매크로가 다르다? 안녕하세요? 회사원코딩의 신명진입니다. 이번 포스팅은, 스크립트매크로와 API매뉴얼 코드의 차이에 대해서 한 번 보여드리려고 합니다. 어떤 간단한 예제를 들어볼까 하다가, 쪽번호 감추기를 www.martinii.fun 문법에는 다소 차이가 있는 느낌이지만, 기본적인 실행방법은 동일했어요. 1. 액션을 생성한다. 2. 파라미터셋을 만든다. 필요한 경우 초기화하거나 설정값을 변경한다. 3. 액션을 실행한다. 이번 포스팅에서는 같은 순서로 페이지 여백을 조정하는 방법을 같이 따라해보겠습니다. 우선 스.. 더보기
3. 자동화 하실 거면 꼭 정품등록하시고 개발자커뮤니티 들어가보세요! 안녕하세요? 회사원코딩의 Martinii입니다. 유튜브에서 채널도 만들어보고, 블로그로도 이런저런 자동화 관련 튜토리얼을 보여드리고 있는데요. 영상에서도 종종 보여드렸지만, 이번 포스팅에서는 한컴오피스 공식홈페이지의 개발자커뮤니티를 소개하려고 합니다. 아래는 hancom.com의 메인화면이에요. 여기 고객지원 개발자센터에 보시면 개발자 커뮤니티가 있어요. 여기로 말할 것 같으면... 2016년부터 무려 한컴 개발진이 직접 강림하셔가지고, 본인이 아는 자동화 코딩 꿀팁과 문제해결법을 손수 작성해주셨던 커뮤니티입니다. 예를 들면... 근데 2020년 현재까지도 커뮤니티라기보단 Q&A 게시판 느낌입니다. 그게 좀 아쉽긴 합니다. (개인적으로는, 정품등록을 하지 않고도 사용할 수 있다면 커뮤니티가 훨씬 활성화되.. 더보기
[파이썬-한/글] 표 안에서 현재 셀주소 알아내기 & 이동하기 안녕하세요? 회사원코딩의 마티니입니다. 요즘 이 블로그에다 파이썬-한/글 자동화에 사용하는 메서드를 하나씩 적어보고 있습니다. 예전 포스팅에서도 말씀드렸지만, 저도 새로운 자동화 스크립트를 짤 때는 매번 API문서나 스크립트매크로를 참고합니다. 이게 잘 외워지지는 않더라고요. 2020/07/28 - [아래아한글자동화(기타+)] - [파이썬-아래아한글] 제가 아래아한글 작업을 자동화하는 요령은.. [파이썬-아래아한글] 제가 아래아한글 작업을 자동화하는 요령은.. 안녕하세요? 회사원코딩의 신명진입니다. 아래아한글 홈페이지 - 고객지원 - 개발자료실에 가면 아래아한글을 코딩으로 자동화할 수 있는 다양한 언어 예제와 API 매뉴얼이 있습니다. VB, MFC, C#, J www.martinii.fun API 문서.. 더보기
[파이썬-한/글] 보안모듈 설치방법(귀찮은 보안팝업 제거) 안녕하세요? 유튜브에서도 초반에 설명드렸던 주제인데 블로그에도 한 번 옮겨적어봅니다. 아래아한글을 파이썬이나 자바스크립트 등 외부프로그램으로 제어하면서 파일을 열고 기록하거나, 수정 후 저장하는 등의 작업은 자칫하면 보안사고로 이어질 수 있기 때문에 일련의 승인 절차를 거쳐야 합니다. 아래 팝업이 뜰 때 허용(또는 모두 허용)을 직접 클릭하거나, 미리 보안승인모듈을 설치하여 자동화 하는 것입니다. 파일을 열고 저장할 때마다 저 팝업을 처리하는 것은 번거로운 작업이니 보안승인모듈을 같이 설치해봅시다. 쭉 따라하는 느낌으로 가볍게 진행하시려면 아래 영상을 참고하셔도 좋습니다. 아래아한글 자동화를 위한 보안승인모듈 설치 및 실행방법 간단히 설명을 읽으면서 작업하시려면 아래 순서대로 따라해 주시기 바랍니다. 1.. 더보기
[파이썬-한/글] 현재 커서의 페이지를 알고 싶다? 안녕하세요? 자동화작업을 할 때, 표 안에 이미지나 장문의 텍스트를 삽입하다 보면 다음페이지로 넘어가버릴 수 있죠. ("글자처럼 취급"한 상태면, 개체전체가 다음페이지로 넘어갈 거고, 그렇지 않으면 셀이 다음 페이지로 넘어가 있겠죠?) 이걸 방지하기 위해서 현재 표의 위치, 현재 캐럿의 위치를 알아보고 싶은 경우들이 있습니다. 어마어마한 분량의 작업을 자동화하면서 모니터를 계속 쳐다볼 수는 없는 노릇이잖아요? 아래는 캐럿(커서)의 현재 페이지를 출력하는 코드입니다. import win32com.client as win32 # 모듈 임포트 hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject") # 한/글 열기 hwp.XHwpWindows.Item(0).Vis.. 더보기
[파이썬-아래아한글] API매뉴얼과 스크립트매크로가 다르다? 안녕하세요? 회사원코딩의 신명진입니다. 이번 포스팅은, 스크립트매크로와 API매뉴얼 코드의 차이에 대해서 한 번 보여드리려고 합니다. 어떤 간단한 예제를 들어볼까 하다가, 쪽번호 감추기를 골라보았습니다. 아래는 스크립트매크로 녹화(Shift-Alt-H)를 이용한 "쪽번호 감추기" 기능입니다. function OnScriptMacro_script5() { HAction.GetDefault("PageHiding", HParameterSet.HPageHiding.HSet); with (HParameterSet.HPageHiding) { Fields = Hiding("PageNumPos"); } HAction.Execute("PageHiding", HParameterSet.HPageHiding.HSet); } .. 더보기
유튜브에 "회사원코딩"을 검색해보세요. 저는 회사원코딩이라는 유튜브 채널을 운영하고 있습니다. 공공기관 막내 생활을 5년 넘게 해 오면서, 단순한 아래아한글 반복작업 때문에 야근을 많이 했습니다. 그 때 이것저것 시도해보면서 얻은 지식과 노하우를 바탕으로 아래아한글-파이썬 자동화 예제를 동영상으로 만들어서 올리던 중에 이제는 아이디어가 슬슬 동이 나고 있어서... 영상을 올리지 않고 있습니다. (자동화라고 해봤자 10여개 명령어만 알면 정말 "다 할 수 있다"고 해도 과언이 아니거든요..) 10분 영상 기획해서 컷편집 작업하는 것도 시간을 많이 쓰게 되더라고요ㅜ 그리고...영상을 안 올리니까 구독자도 천 명 언저리에서 안 오르고 있습니다. 그만 올릴까 했는데 아직도 문의메일은 종종 받습니다. 대부분의 방법은 제 영상 곳곳에 다 설명해놓긴 했는.. 더보기

반응형