본문 바로가기

분류 전체보기470

pyhwpx 간편설치 및 실행 방법 2024년 11월 현재, pyhwpx에 대한 문서화가 아직 완료되지 않은 상태입니다.다만, pyhwpx Cookbook이라는 (튜토리얼 형태의) 전자책을 집필중이며, 위키독스에 공개되어 있습니다.주소는, https://wikidocs.net/book/8956/ 입니다. pyhwpx는 고급 업무자동화 기능의 구현보다는,기본적이고 많이 쓰이지만 다소 사용법이 까다로운 API들을보다 직관적이고 간단히 실행할 수 있도록 만들어진 모듈입니다.(아직은 개발 초기라서)직관적이지 않거나, 일명 파이써닉하지 않은 부분이 있습니다.. 조금씩 개선하고 보완하겠습니다.현재 제 PC에 설치되어 있는 파이썬은 3.11, 아래아한글은 2022 버전입니다.대부분의 포스팅은 주피터노트북으로 진행하겠습니다. 그럼 설치부터 시작해봅시다... 2023. 11. 28.
파이썬 모듈 pyhwpx를 소개합니다. 안녕하세요? 일코입니다. 업무자동화 강의를 준비하다 문득 이런 생각이 들었습니다. 저는 업무자동화와 코딩을 공부한지 올해로 8년 정도 되어서, 다소 복잡한 코드도 이 즈음 되니까 친숙한 느낌이 들고 이젠 좀 적응이 되는 것 같은데.. 이제 막 코딩에 입문한 분들이 아래아한글 자동화를 경험하면 공식문서도 시원찮고, 문법이나 구조도 복잡하고.. 진입장벽이 너무 높겠더라고요. 호기심에 시작하더라도, 배우다 지쳐 그만두실 것 같았습니다. 저 혼자 쓰는 거라면 이미 익숙해져버린 방법을 계속 쓰면 되는데, 새롭게 배우려는 분들에게는 뭔가 더 직관적인 라이브러리가 있으면 좋겠다 싶은 마음이 들어서 파이썬 모듈을 하나 제작하게 되었습니다. 이름하여 pyhwpx! hwpy나 hwppy로 짓고 싶었는데, hwpy는 이미 .. 2023. 11. 28.
[이벤트핸들러] 문서저장시 첫 번째 표를 엑셀로 자동저장하는 이벤트 hwp automation에서는 꽤 다양한 이벤트핸들러를 제공하고 있는데요. 대략의 목록은 아래와 같습니다. OnQuit OnCreateXHwpWindow OnCloseXHwpWindow OnNewDocument OnDocumentBeforeClose OnDocumentBeforeOpen OnDocumentAfterOpen OnDocumentBeforeSave OnDocumentAfterSave OnDocumentAfterClose OnDocumentChange OnDocumentBeforePrint OnDocumentAfterPrint OnDocumentClickedHyperlink OnDocumentModifiedHyperlink OnBeforeQuit 대략의 사용법을 예시코드로 보여드려보면, """.. 2023. 11. 28.
기본메서드 매핑 완료 2023. 11. 16. 01:48 올해 수능시험을 보는 수많은 젊은이들, 이따 있을 시험을 위해 어마어마한 시간을 준비했을텐데.. 밤잠을 못 이루고 있을 것 같다. 난 졸려 죽겠다ㅜ 방금 드디어 공식문서의 액션리스트 중 현재 실행되는 모든 액션을 snake_case로 매핑 완료했다. 이젠 메서드에만 있고, API문서에는 없는 메서드들이 남았다. (매핑은 완료했고, 문서화가 남았다.) docstring 작성도 평생 이렇게 꼼꼼하게 해 본 적이 없었다. 몸은 힘들지만, 그래. 솔직히 즐겁기도 하다. 장고로 직접 블로그를 만들어 운영했던 2017년이 문득 기억난다. 웹에 대해 아무 것도 모르고 (지금도 잘 모르지만) 무작정 장고가 좋아서 이것저것 따라해보다가 썸머노트와 프리즘js, 여러 가지 라이브러리를 추.. 2023. 11. 16.
hwpx 모듈 개발 중에 버그 하나를 해결하면서.. 2023. 11. 15. 개발일기 hwpx 모듈 개발에 착수한지 일주일쯤 되었는데, 예상하지 못한 몇 가지 문제를 우연히 발견하게 되었다. Hwp라는 클래스를 만들면서, 생성자(__init__) 안에서 win32로 한/글 오토메이션 오브젝트를 생성하고 인스턴스가 실행하는 모든 메서드는 내부의 hwp 오브젝트와 연결되게끔 매핑을 해두었는데, 오토메이션 프로퍼티 중 HeadCtrl과 LastCtrl 두 개가 말썽이었다. Hwp인스턴스.HeadCtrl이 클래스 내부에 생성되어 있는 hwp오브젝트.HeadCtrl과 같지 않다는 것을 발견했다. 새 문서를 Hwp로 열었는데, 표를 몇 개 추가한 후 여전히 인스턴스.LastCtrl이 "단 정의"라는 충격적인 결과를 보는 와중에도, hwp.LastCtrl.Next.U.. 2023. 11. 15.
아래아한글 업무자동화를 위한 파이썬 모듈, pyhwpx 업무자동화 관련한 교육을 몇 회 진행해보면서 강하게 느낀 부분 중 하나는, 일반 사용자 대부분이 "긴 코드"에 대해 불편함을 느낀다는 건데요. 정부부처, 공공기관이나 기관 연수원에서는 장기간의 교육은 잘 만들어지지 않고, 7~8시간 안에 파이썬 기초부터 업무자동화 중급까지 진행해야 하는 상황, 업무자동화에 유용하게 써먹었던 이런저런 함수들을 모아서 간단한 클래스로 구현해놓고, pypi에 업로드해 두려고 합니다. 문서화나 동영상 촬영도 틈틈이 해 보고 싶고요. 우선 사용법은 아래와 같습니다. 1. 터미널에서 pip install pyhwpx로 모듈을 설치한다. 2. 파이썬에서 from pyhwpx import Hwp로 클래스를 임포트한다. 3. hwp = Hwp()로 한/글을 연다. 4. 한/글에서 제공하.. 2023. 11. 7.
zsh에서 프로젝트 가상환경 자동활성화 feat. zsh-autoenv 터미널을 최근 bash에서 다시 zsh로 변경해보았습니다. 리눅스 터미널을 강력하게 사용하는 편은 아닌데, 강의 때 wsl을 활용하면서 너무 프롬프트 경로가 길어서 제가 입력하는 명령어가 자꾸 줄이 바뀌는 게 학생들 보기에 불편할 것 같았습니다. 마침 예전에 사용하던 oh-my-zsh 중에 powerlevel10k가 예뻤던 게 기억나서 오늘 테마 세팅까지 후다닥 마쳤습니다. 다만, 몇 가지 걸리는 게 있었는데 bash에서는 --rcfile 옵션을 줘서 간단히 가상환경을 설정할 수 있었는데 zsh에서는 이상하게 --rcs가 잘 먹지 않아서 스택오버플로, 스택익스체인지 등의 답변을 참고하면서 가상환경 자동 활성화를 시도해보다 결국 askdjango 이진석 님께서 추천해주신 autoenv를 사용하게 됐습니다... 2023. 10. 18.
투두리스트에서 특정 업무를 수정해보자. #Update # 끝! reflex.dev가 업데이트됨에 따라, 더 간편하고 쉬운 방법으로 구축할 수 있게 되었습니다.최신버전의 튜토리얼은 아래 위키독스 링크를 방문해 주시기 바랍니다.https://wikidocs.net/book/16592 [파이썬] html이 뭔지도 모르지만 홈페이지는 만들어보고 싶어!Reflex(구 Pynecone)은 파이썬으로만 웹 애플리케이션을 개발할 수 있는 오픈소스 풀스택 웹 프레임워크입니다. 이 프레임워크는 파이썬 개발자가 웹개발에 대한 경험이 전혀…wikidocs.net 지난 시간까지 CRUD 중 CRD를 완료했다.이번 포스팅에서는 Update를 구현해볼 차례이다.우리가 비록 리플렉스 문법은 다소 생소할지언정,파이썬의 간단한 문법인, 리스트 메서드나 enumerate만 가지고도투두리스트의 기본로.. 2023. 10. 12.
투두리스트에서 완료한 업무를 제거해보자. # Delete[2/2] reflex.dev가 업데이트됨에 따라,더 간편하고 쉬운 방법으로 구축할 수 있게 되었습니다.최신버전의 튜토리얼은 아래 위키독스 링크를 방문해 주시기 바랍니다.https://wikidocs.net/book/16592지난 포스팅에서는 특정 할일의 정확한 삭제(pop)를 위해 State에서 enumerate를 통해 enum_list: list[tuple[int, str]] 라는 변수를 추가로 만들었다.(이 안에 index번호가 있는 덕분에, 정확하게 순서(인덱스)를 명시하여 특정 요소를 삭제할 수 있게 됐다.)그래서 이번 포스팅에서는페이지함수인 index를 완성해보기로 한다.기존에 만든, "할 일 추가"만 가능한 페이지 함수 index는 아래와 같다.def index(): return rx.contai.. 2023. 10. 12.