본문 바로가기

반응형

한글

[교육업무자동화7/10] 영수증자동화(개별저장 및 찾아바꾸기) 지난 포스팅은... [교육업무자동화6/10] 청구서자동화6(pyinstaller로 배포하기) 지난 포스팅은... [교육업무자동화5/10] 청구서자동화5(개선할 부분 찾아보기) #중급 지난 포스팅은... [교육업무자동화4/10] 청구서자동화4(청구서 마무리하기) 지난 포스팅은... [교육업무자동화3/1 www.martinii.fun 지난 포스팅까지 6개 과정으로 청구서 자동화까지 마쳤다. (다소 부족한 대로) tkinter의 GUI도 붙여보았고, exe파일로 컴파일도 해보았다. 꼼꼼히 따라해보았던 독자들께서는 한/글에서 기본으로 제공하는 API 메서드 외에도 추가적인 기능보완을 위해 파이썬 단에서 일종의 함수를 만들어 사용하거나, 파이썬의 기본문법이나 모듈을 활용하여 원하는 기능으로 보완할 수 있다는 것도.. 더보기
한/글 메서드별 인자 확인하는 방법(feat. ipython) FileName 과 filename 사이에서 고민하고 있는 "회사원코딩"의 수강생입니다. ^^; 다음 내용을 좀 더 상세히 알 수 있을까요? 어떻게 docstring을 통해 대소문자 점검을 할 수 있는지? 미리 어떤 인자가 파라미터로 사용할 수 있는지? 알수 있는 방법에 대해 조언 부탁드립니다. """ API문서를 한/글2010 이후로 10년간 업데이트하지 않았기 때문이기도 하고, 또다른 이유로 win32의 MakePy문제로 일부 메서드의 파라미터는 한/글 내부 스크립트와 대소문자에 차이가 생긴다. FileName이 파이썬에서는 filename으로 바뀐다든지 하는 식이다. 다행히 이런 경우는 "어느 파라미터가 존재하지 않는다"는 오류메시지가 나오고, docstring을 통해 대소문자 점검을 해 주면 된다.. 더보기
[교육업무자동화6/10] 청구서자동화6(pyinstaller로 배포하기) 지난 포스팅은... [교육업무자동화5/10] 청구서자동화5(개선할 부분 찾아보기) #중급 지난 포스팅은... [교육업무자동화4/10] 청구서자동화4(청구서 마무리하기) 지난 포스팅은... [교육업무자동화3/10] 청구서자동화3(파이썬으로 엑셀 열어서 값 얻기) 지난 포스팅은... [교육업무자동 www.martinii.fun 지난 시간에 몇 가지 오류가능성을 보완한 최종 코드는 아래와 같았다. """ 누름틀이 삽입된 1페이지짜리 한/글 파일을 엑셀파일 행 갯수만큼 복사하고, 각각의 누름틀 안에다 엑셀파일 각 칼럼의 값을 입력하는 프로그램. 실행파일과 한/글 파일, 엑셀파일 하나씩을 같은 폴더 안에 두면 GUI창이 뜨지 않는다. """ import os from tkinter import Tk from tk.. 더보기
[교육업무자동화5/10] 청구서자동화5(개선할 부분 찾아보기) #중급 지난 포스팅은... [교육업무자동화4/10] 청구서자동화4(청구서 마무리하기) 지난 포스팅은... [교육업무자동화3/10] 청구서자동화3(파이썬으로 엑셀 열어서 값 얻기) 지난 포스팅은... [교육업무자동화2/10] 청구서자동화2(필드에 텍스트 자동입력) 지난 포스팅은... [교육업 www.martinii.fun 이번 포스팅에서는 다른 사용자들과 공유할 수 있게 코드를 pyinstaller로 컴파일하기 전에 보다 일반적인 상황에서도 코드가 실행될 수 있게, 예외처리 및 보완을 해볼 예정이다. 각종 오류를 방지하기 위해 파이썬 문법이 다소 가미되며, 회사원 수준에서는 "어렵다"고 느낄 수 있다. 아래의 코딩 과정을 이해하는 것이 필수는 아니며, 완성된 코드가 이런 식으로 동작하는구나 하는 맥락만 짚고 넘어.. 더보기
[교육업무자동화4/10] 청구서자동화4(청구서 마무리하기) 지난 포스팅은... [교육업무자동화3/10] 청구서자동화3(파이썬으로 엑셀 열어서 값 얻기) 지난 포스팅은... [교육업무자동화2/10] 청구서자동화2(필드에 텍스트 자동입력) 지난 포스팅은... [교육업무자동화1/10] 청구서자동화1(누름틀 다루기) (전략) 우리 ㅇㅇㅇㅇㅇㅇ협회 교육운영팀은 www.martinii.fun 직전 포스팅에서는 100개의 text_list를 엑셀에서 불러와서 차례대로 한/글 문서에 넣는 과정을 알아보았다. 이번 포스팅에서는 두 가지를 설명할 예정이다. 1. HWP문서를 PDF로 저장하는 코드 2. 쪽복사, 쪽붙여넣기 기능(한/글2018부터 추가된 것으로 추정)을 이용해 100쪽짜리 청구서모음.hwp를 만드는 코드 그 전에, 튜토리얼 따라하기용으로 청구서 HWP파일과 데이터소.. 더보기
[교육업무자동화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 최신 업데이트로도 고쳐지지 않은 API버그 탭을 여러 개 열어놓은 한글창에서 hwp.XHwpDocuments.Item(0).Close(isDirty=False) 명령을 실행하면, 해당아이템(첫 번째 탭)이 닫히는 게 아니라 현재 활성화된 탭이 닫힌다. 이 버그 때문에, 특정 탭을 닫고 싶을 땐 hwp.XHwpDocuments.Item(1).SetActive_XHwpDocument() # 닫고 싶은 탭을 활성화한 후에 hwp.Close(isTab=False) # 닫아야 한다. 불편할 정도는 아니지만 계속 신경쓰인다;; 더보기
현재 용지속성을 조회만 하고 싶다면? 안녕하세요 한글문서관련 프로그램을 작성하는 개발자 입니다. 우연히 한컴 개발커뮤니티에서 “현재 용지정보 가져오기 PageSetup” 관련 답변을 달아 놓으신 걸 검색 했습니다. 다름이 아니라 알려 주신대로 하니 특정파일(AAA.hwp)를 열고 하면 ‘0값만 나옵니다. 아래 코드좀 봐주실 수 있으신가요? C#으로 되어 있습니다. AxHwpCtrl ax03 = new AxHwpCtrl(); ax03.CreateControl(); ax03.RegisterModule("FilePathCheckDLL", "FilePathCheckerModuleExample"); ax03.Clear(); ax03.Open(@"AAA.hwp"); HWPCONTROLLib.HwpAction hwpact = (HWPCONTROLLib... 더보기
[4/5, HwpEqn] 수식문자열로 수식 만드는 방법 지난 포스팅은... [3/5, HwpEqn] 컨트롤 탐색방법(feat. 파이썬) 지난 포스팅은... [2/5, HwpEqn] HWP문서 수식을 텍스트로 추출하는 방법 (1) 안녕하세요 ~ 저는 유튜브 회사원코딩 구독자입니다. 올려주신 영상들 잘 시청하고 있습니다. 문의드릴 사항으로는 한글 www.martinii.fun 지난 포스팅에서는 수식을 선택하기 위해 컨트롤을 탐색하는 방법과, 찾아낸 앵커포지션(좌표)에 캐럿을 갖다놓고, 수식을 선택하여 수식문자열을 추출하는 과정까지 진행해보았다. 이번 포스팅에서는 저장해둔 수식 문자열로 한/글 안에 수식을 생성하는 방법을 소개한다. 코드를 먼저 보여드리면, """dict를 가지고 수식 삽입하기""" for position, eqn_string in eqn_dict.. 더보기
2019년 파이콘 참석영상(코알못 직장인) 안녕하세요? 회사원코딩의 Martinii입니다. 아래 영상은 작년 파이콘코리아 세션에 큰맘먹고 15분 발표신청을 해봤는데 운좋게 단상에 서게 되었고, 주최측에서 녹화해주신 영상입니다. 워낙 바쁘고 스트레스를 많이 받던 시기이기도 했고, 제대로 준비를 해서 더 멋진 모습을 보여드리고 싶었는데, 머릿속에서 그렸던 대로 발표가 이뤄지지는 않아 섭섭함이 많이 남은 발표지만, 여러 번 보니 오글거림이 줄어들기는 하더군요ㅜ (이번 2020에도 염치없이 신청해볼까 했다가, 별다른 진전이 없어서 포기하게 되었습니다. 비슷한 주제라면 더 잘 할 수 있을 것 같은데...) 그리고 아래 영상은 2019파이콘 준비를 위해 실시했던 격월세미나(?) 에 또 한/글 자동화 관련해서 무작정 발표신청하고 찾아가서 10분 발표를 했는데.. 더보기
2. 파이썬으로 아래아한글을 열고, 글자를 입력해봅시다. 지난 포스팅에서 여러분의 업무망 컴퓨터에다 아나콘다 배포판과 파이참 커뮤니티 에디션을 설치했습니다. 이번에는 본격적인 자동화 튜토리얼에 앞서 파이썬으로 아래아한글을 여는 예제부터 진행해보겠습니다. 윈도우키를 누르면, "최근에 추가한 앱"에 Anaconda Prompt, Anaconda Powershell, Jupyter Notebook, Spyder 및 Pycharm Community Edition 등 다양한 프로그램들이 추가되어 있는 것을 보실 수 있습니다. 전부 실행해 보고 싶지만, 우선은 "Anaconda Prompt (anaconda3)" 아이콘을 실행해주시기 바랍니다. 일반적인 커맨드프롬프트와는 다르게 좌측에 (base)라는 문구가 들어가 있습니다. 나중에 다루게 되겠지만, 아나콘다에서 제공하는.. 더보기
한/글 파일로 사내 설문조사를 만들어 취합해보자.[1/2] 아래아한글이 익숙한 대한민국 공무 직원들에게는 구글설문이나 MS폼즈도 좋지만, 자료전송을 거쳐서 엑셀로 취합하고 다시 한글로 변환하고 이런 작업이 번거롭습니다. 시간 잘 가는 걸 좋아하시거나 기존 방법을 좋아하시는 분들은 하던 대로 하시고(취존) 아래아한글로 설문파일을 만들어서 취합을 원하시는 분들은 아래 코드와 한/글파일을 참고해 주시기 바랍니다. 설문조사를 위한 한/글 파일은 아래와 같이 생겼습니다. (예제라서 간단하게..) 그리고 코드는 아래와 같습니다. import os from collections import defaultdict import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject") hw.. 더보기

반응형