본문 바로가기

RPA23

[예제] 특정 단어들에다 메모교정표 삽입하기 pyhwpx는 win32 기반의 한/글 오토메이션 API 명령어의 복잡성을 보완하고자 업무자동화에 사용되는 여러 가지 상위기능들을 메서드로 제공합니다. 아래와 같은 문서가 있을 때, 아래와 같은 교정단어 사전을 통해 교정하고자 하는 단어에 메모고침표를 달아주는 것이 목표입니다. # 교정대상 단어 예시자료(dict) word_dict = { "가감": "→더하고 빼기, 더하거나 빼기", "가건물": "→임시 건물", "가결의": "→임시 결의", "가공": "→영향을 미치다", } 결과물이 대략 다음과 같을 때, 기존 win32com과 한/글 오토메이션 API를 사용한 전통적인(?) 코드는 대략 아래와 같습니다. import os import win32com.client as win32 from tkint.. 2023. 12. 6.
스크립트매크로를 파이썬 함수로 고쳐주는 함수 #clipboard_to_pyfunc() 자동화 작업을 하다 보면, 한/글 API에 나와 있지 않은 기능을 스크립트매크로로 녹화해서 파이썬 함수로 변환하려고 하는데, 매크로 자체가 너무 길고 복잡할 때가 있어요. 예를 들어, 아래는 "찾아바꾸기"를 녹화한 스크립트매크로예요. function OnScriptMacro_중국어1성() { HAction.GetDefault("AllReplace", HParameterSet.HFindReplace.HSet); with (HParameterSet.HFindReplace) { MatchCase = 0; AllWordForms = 0; SeveralWords = 0; UseWildCards = 0; WholeWordOnly = 0; AutoSpell = 1; Direction = FindDir("Forward.. 2023. 11. 30.
[이벤트핸들러] 문서저장시 첫 번째 표를 엑셀로 자동저장하는 이벤트 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.
[원데이클래스 안내] 9.2(토) 동대구역 앞 보고서 작성 자동화 원데이 클래스 처음으로 공지포스팅을 올려봅니다. 9월2일 토요일 오후 2시 동대구역 인근에서 보고서 작성 관련 업무자동화 튜토리얼로 원데이클래스를 진행하게 되었습니다. 이번까지만 오프라인으로 진행하고, 앞으로는 줌 등으로 온라인 과정도 개설하겠습니다. 접수는 온오프믹스 플랫폼을 활용하오니, 관심 있으신 야근러 분들의 많은 참여 바랍니다^^ 입문자를 대상으로 커리큘럼을 짰지만, 참석하신 분들의 수준을 고려하여 유연하게 커리큘럼 수정 예정입니다. 2023. 8. 31.
[QnA] 글상자 내용을 밖으로 꺼내기 안녕하세요. 특정 디렉토리의 여러 hwp 파일 안에 있는 텍스트 상자의 텍스트를 Ctrl + A로 전체복사해서 골라 붙이기 한 후 저장하는 행위를 일괄적으로 수행하는 프로그램을 짜고 있는데(https://hyyoka-ling-nlp.tistory.com/7 위 게시글을 참고했습니다.) 계속 Error opening (-2147417851, '서버에서 예외 오류가 발생했습니다.', None, None) 혹은 Error opening (-2147023170, '원격 프로시저를 호출하지 못했습니다.', None, None) 혹은 Error opening (-2147023174, 'RPC 서버를 사용할 수 없습니다.', None, None) 과 같은 오류가 아무리 구글링해서 나오는 해결책을 써봐도 해결이 되지 .. 2023. 1. 27.
[QnA] (1/5) 특정단어 포함 문단 뒤에 표 깔기-인트로 안녕하세요. 한글 자동화 프로그램을 공부하고 있는데 궁금한 사항이 있어 질문합니다. 특정 글자가 들어가 있는 문단을 찾아서 그 곳에 글뒤로 속성으로 표를 삽입하고 싶습니다. 1. 자동으로 표 생성시 속성을 "본문과의배치"에서 "글뒤로" 선택하여 생성할 수 있나요? 이 속성없이 생성시 문단에 삽입되면서 글자가 밀려나는 현상이 발생합니다. 2. 찾은 문단의 위치값을 HWPUNIT 값으로 알 수 있나요? 표 생성시 위치값은 HWPUNIT으로 지정해야 하는데 현재 찾은 위치의 속성은 줄,칸으로 알려주네요. 이상입니다. 한/글 개발자 커뮤니티에 재미있는 질문이 있어 블로그에서 다뤄보겠습니다. 이를테면 이런 예제를 말씀하시는 것 같아요. 아래와 같은 문서가 있을 때 특정 단어가 들어가는 문단에 다음과 같이 백그라운.. 2022. 9. 19.
선택한 특정 구간만 새로운 파일로 저장하는 함수 만들기 안녕하세요. 마티니님 유튜브, 블로그 구독자 ㅇㅇㅇ입니다. 먼저 한글 자동화 공부에 많은 도움 주셔서 감사합니다. 공개해주신 동영상, 블로그를 모두 찾아 봤는데요 제가 원하는 기능 없어서 문의 드립니다. 아래한글 파일의 내용 중 특정 영역을 블록으로 선택하여 지정된 블록영역만 다른이름으로 저장하려는데요. 예를 들어서 SetPos로 블록 시작위치를 지정하고 특정 위치의 블록 끝 위치를 지정한 후 블록으로 지정된 영역만 새로운 파일로 저장했으면 합니다. 도움 주시면 감사하겠습니다. 구독과 질문 감사합니다. 질문 주신 분은 어느 정도 한/글 자동화에 익숙하신 분인 것 같아요. SetPos로 두 개의 포지션을 선택해서 사이구간을 다른이름으로 저장하는 방법을 물어보셨습니다. 우선, 선택한 블록을 다른이름으로 저장.. 2022. 3. 13.