본문 바로가기
반응형

회사원코딩46

그간 잘못된 정보를 알려드려 죄송합니다. 몇 가지 오류 정정 안녕하세요? 길다면 긴 기간 동안 아래아한글 자동화를 공부하면서 유튜브 영상으로, 블로그 포스팅으로 이것저것 남겨 왔는데, 현 시점에서 수정하고 싶은 부분이 몇 개 있습니다. (일종의 포스팅 정오표 같은 것...) 읽으셔도 크게 도움 되지 않겠지만, 한 번은 정리해야겠다 싶었는데 오늘에야 포스팅으로 남깁니다. 1. "누름틀에 예약어가 있다?" - 누름틀에는 예약어가 없다. 제 첫 유튜브 영상의 오류입니다. https://youtu.be/1pC_UXhiJH8 해당 영상에 고정댓글로 달아놓기는 했는데, 누름틀에는 예약어가 없습니다. 다만, 동일한 누름틀이 문서에서 여러 개 존재하는 경우, 의도한 대로 입력되지 않을 수 있습니다. (물론 한/글 API에는 동일명의 누름틀 중 몇 번째 누름틀에 텍스트를 채울지 .. 2022. 8. 31.
[QnA] Open메서드 실행시 오류:"매개변수의 개수가 잘못되었습니다." 해결법 안녕하세요. 제가 찾던 게 바로 이건데 딱 있어서 너무 놀랐습니다. 따라해보니까 이런 에러가 뜨는데 원인과 해결책을 알려주시면 감사하겠습니다. hwp.Open('c:/users/xxxxxxx/Documents/awards.hwp') Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2963, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "", line 1, in hwp.Open('c:/users/xxxxxxx/Documents/awards.hwp') File ".. 2022. 8. 2.
서식 유지한 채로 스타일을 모두 "바탕글"로 바꾸는 코딩 안녕하세요? 일상의코딩 신명진입니다. 회사 다니다 보면 가끔 이런 경우가 있었습니다. 수십페이지의 아래아한글 레거시 문서를 구조화하기 위해서 개요와 스타일을 새롭게 매기고 싶은데 기존에 스타일이 뒤죽박죽 매겨져 있는 상태인 거예요. 근데 스타일을 변경하면 문서가 깨지잖아요ㅜ 그래서 서식은 그대로 두고 스타일을 모두 "바탕글"로 변경한 후에 개요와 스타일을 다시 하나씩 매겨보고 싶었거든요. 지식인에도 저와 똑같은 고민을 했던 분이 계시더라고요. 무작정 모든 스타일을 삭제하거나 "바탕글"로 바꾸면 서식이 다 날아가버려서 문서를 다시 구조화하는 작업이 굉장히 복잡해지죠. 문맥과 수준을 기억한 채로 수정해야 하니까요. (도입부 설명이 조금 길었습니다.) 이런 경우는 문서가 짧으면 어떻게라도 수작업으로 비벼볼 수.. 2022. 4. 30.
hwp파일 열 때 한/글 자체 다이얼로그를 이용하면 qt도 tkinter도 필요없다!? 안녕하세요? 한/글에서 제공하는 API 중에는 대화상자를 열어주거나, 파일을 열거나, 대화상자를 띄워주는 메서드가 있습니다. 어쩔 수 없이 PyQt나 tkinter 등을 사용해야 하는 경우도 있지만 (여러 파일을 불러온다든지, 엑셀파일이나 다른 확장자를 불러와야 하는 경우 등) 기본적인 작업, 한/글 파일 하나를 불러와서 자동화작업을 하는 경우에는 거추장스럽게 GUI모듈을 임포트하지 말고 한/글에서 자체 제공하는 파일열기 다이얼로그를 사용하시면 코딩이 훨씬 간편해집니다. 사용법은 엄청나게 간단하거든요. 바로 hwp.Run("FileOpen") 입니다. 사용방법은 아래와 같습니다. Run 코드 한 줄이면 GUI가 뚝딱! 간편하지요? 한/글에서 제공하는 다양한 Run메서드가 궁금하시다면? hwp의 Run메서.. 2022. 4. 9.
선택한 특정 구간만 새로운 파일로 저장하는 함수 만들기 안녕하세요. 마티니님 유튜브, 블로그 구독자 ㅇㅇㅇ입니다. 먼저 한글 자동화 공부에 많은 도움 주셔서 감사합니다. 공개해주신 동영상, 블로그를 모두 찾아 봤는데요 제가 원하는 기능 없어서 문의 드립니다. 아래한글 파일의 내용 중 특정 영역을 블록으로 선택하여 지정된 블록영역만 다른이름으로 저장하려는데요. 예를 들어서 SetPos로 블록 시작위치를 지정하고 특정 위치의 블록 끝 위치를 지정한 후 블록으로 지정된 영역만 새로운 파일로 저장했으면 합니다. 도움 주시면 감사하겠습니다. 구독과 질문 감사합니다. 질문 주신 분은 어느 정도 한/글 자동화에 익숙하신 분인 것 같아요. SetPos로 두 개의 포지션을 선택해서 사이구간을 다른이름으로 저장하는 방법을 물어보셨습니다. 우선, 선택한 블록을 다른이름으로 저장.. 2022. 3. 13.
파이썬으로 한/글 프로그램이 현재 "쪽윤곽 보기" 상태인지 확인/설정하는 방법 한/글 문서를 다루시는 분들 중에는 아마 솔루션 관련해서 일하시는 분들인가 싶은데 문서 데이터가 아니라, "쪽윤곽 보기 상태"나, "오탈자의 붉은 줄 없애기" 같은 내용으로 종종 질문 주실 때가 있어요. 이런 내용들이 API문서에 장황하게 설명되어 있지는 않지만, 꼼꼼히 읽어보면 대부분 해결책이 나오기는 하거든요. 위 질문, "쪽윤곽 보기 상태 확인" 같은 경우도 API문서와 스크립트 녹화로 간단히 체크 가능해요. 한 번 확인해볼까요? 한/글을 열고 Ctrl-G-L을 여러 번 눌러보면, 아래는 쪽윤곽 보기 상태, 아래는 쪽윤곽 숨김 상태예요. 액션테이블 문서를 읽어보면 쪽윤곽을 토글하는 명령어는 ViewOptionPaper라고 하네요. hwp.HAction.Run("ViewOptionPaper") 그런데.. 2022. 2. 2.
[Q&A](2/3) 제목을 {문서첫줄}.hwp로 저장하는 가장 쿨한 방법 안녕하세요? 일상의 코딩, 일코입니다. 두 번째 시간입니다. 지난 시간에는 한/글을 열지 않고도 첫 줄을 불러오는 함수를 소개해드렸습니다. def 첫줄읽기(filepath): """한/글 문서 텍스트를 불러와서 엔터(\r\n)로 쪼갠 후 첫 번째 행 리턴""" with OleFileIO(filepath) as ole: # 한/글 파일 불러오기 text = ole.openstream('PrvText').read().decode('UTF-16').split("\r\n")[0] return text 이번에는 이 함수를 활용해서 파일들의 이름을 일괄 변경하는 프로그램을 만들어보겠습니다. 기존 파일목록은 아래와 같습니다. GUI를 열어서 파일목록을 선택한 후, 선택한 파일들의 PrvText 첫 번째 라인을 불러와.. 2022. 1. 14.
[Q&A](1/3) 제목을 {문서첫줄}.hwp로 저장하는 가장 쿨한 방법 안녕하세요? 일상의 코딩, 일코입니다. 질문을 읽어보니 대략 이런 상황인 것 같습니다. 1. 아래와 같은 내용의 파일이 있고, 2. 이걸 아래와 같이 만들고 싶으신 것 같습니다. 여기서 잠깐 이 생각을 해 봅시다. 여러분은 아래 두 가지 중 어떤 게 좋은 방식이라고 생각하시나요? (물론 호불호일 뿐, 정답은 없다고 생각합니다.) ① 따로따로 만들어 각각 실행하기!? 우선 다 잘라서 저장하는 프로그램을 하나 만들고, 파일명을 변경하는 프로그램을 별도로 만든다. 예를 들면 간단히 페이지 번호대로 1.hwp, 2.hwp, 3.hwp ... 저장하는 식으로. 그 후에 파일명을 변경하는 코드를 따로 만든다. (1.hwp부터 하나씩 열어서 "첫 번째 페이지입니다.hwp" 방식으로) ② 원클릭으로 끝까지 한 번에!?.. 2022. 1. 14.
한/글 매크로의 with (xxx) {yyy} 문법은 파이썬으로 어떻게 바꾸나요? 질문주신 내용은, 안녕하세요. 포스팅 해주신 내용이 제 업무에 엄청나게 도움이 될 내용이어서 정말로 감사드립니다. (주로 필요할때마다 한글매크로 만들어서 사용중입니다) 첫번째로 말씀해주신 방법(매크로 코드를 파이썬으로 옮겨서 중괄호, 세미콜론 등 지우고 hwp. 붙여주는 방법)으로 시도중인데요 다음 코드(한글 매크로 코드편집 내용)에서 ***로 표시한 부분을 파이썬에서 어떻게 바꿔야 할 지 모르겠어서 여쭤봅니다. 혹시나 시간 편하실때로 답변주시면 정말로 감사드리겠습니다. 아래 매크로 코드 내용은 '마침표를 찾아서 엔터(=문단끝) 두번 입력' 입니다. { HAction.GetDefault("FindDlg", HParameterSet.HFindReplace.HSet); with (HParameterSet.H.. 2022. 1. 3.
반응형