본문 바로가기

아래아한글 자동화/python+hwp 중급182

[QnA] 표 내의 일부 테두리를 점선으로 바꾸는 법 솔직히 저도 모든 파라미터셋을 외우는 게 아니어서, 이런 질문을 받으면 직접 실행해봅니다. 아래와 같은 과정으로요. 같이 한 번 해 봅시다. 1. 파이썬으로 한/글을 연다. 2. 스크립트매크로를 녹화해본다. 3. 파이썬 코드로 변환한 후 실행해본다. 4. 되면 끝. 안되면? 5. 액션과 파라미터셋을 검색해서 답을 찾는다. (오래 걸림ㅜ) 1. 파이썬으로 한/글 열기 import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True 2. 스크립트 매크로 녹화를 누른 후 테두리를 점선으로 바꿔본다. 표를 하나 생성해보고, 원하는 셀선택한 시점 이.. 2022. 5. 13.
상위버전의 HWP 문서 열 때 팝업 안 뜨게 하는 방법 상위버전의 HWP 문서 열 때 팝업 안 뜨게 하는 방법 hwp.Open 메서드는 세 개의 인자를 받습니다. path : 파일 경로 Format : 파일 포맷(생략가능) arg : 세부옵션(생략가능) 이번 포스팅에서는 세부옵션(arg) 인자에 대해 설명드리겠습니다. 세부옵션(arg)에 들어갈 수 있는 파라미터는 다음과 같습니다. 자세히 보면 중간에 이런 옵션이 있네요. arg 인자를 활용하면 암호를 묻거나, 상위버전 문서 경고창 등의 팝업을 간편하게 처리할 수 있겠습니다. arg인자의 사용방법을 예시로 보여드리겠습니다. 1. 암호가 걸린 hwp파일을 그냥 여는 경우(암호입력 팝업이 뜸) hwp.Open("c:\\users\\smj02\\desktop\\qwerasdfzxcv.hwp") 2. 암호가 걸린 H.. 2022. 5. 9.
파이썬으로 아래아한글 실행하는 방법 1. python.org에서 파이썬을 다운받아 설치한다. 2. 커맨드프롬프트에서 "pip install pywin32"를 실행해서 win32com 모듈을 설치한다. 3. 파이썬을 실행하고 아래 코드를 실행한다. import win32com.client as win32 # 모듈 임포트 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한/글 실행하기 hwp.XHwpWindows.Item(0).Visible = True # 백그라운드 숨김 해제 4. (작업을 마친 후에) 한/글을 닫고 파이썬 종료. hwp.Clear(1) # 문서 닫기(1:저장하지 않은 내용 버림) hwp.Quit() # 한/글 프로그램 종료 끝. 다음 포스팅은 파이썬으로 한/글 파일.. 2022. 5. 9.
파이썬으로 한/글 파일에 텍스트를 입력하는 방법 파이썬으로 한/글을 실행하는 방법을 모른다면? 파이썬으로 아래아한글 실행하는 방법 1. python.org에서 파이썬을 다운받아 설치한다. 2. 커맨드프롬프트에서 "pip install pywin32"를 실행해서 win32com 모듈을 설치한다. 3. 파이썬을 실행하고 아래 코드를 실행한다. import win32com.client as.. martinii.fun 1. InsertText 액션을 이용하여 텍스트 입력 파이썬으로 한/글을 열었을 때 텍스트를 입력하는 가장 기본적인 방법은 아래와 같이 InsertText 액션을 정의하고 실행하는 것입니다. hwp.HAction.GetDefault("InsertText", hwp.HParameterSet.HInsertText.HSet) hwp.HParamete.. 2022. 5. 9.
서식 유지한 채로 스타일을 모두 "바탕글"로 바꾸는 코딩 안녕하세요? 일상의코딩 신명진입니다. 회사 다니다 보면 가끔 이런 경우가 있었습니다. 수십페이지의 아래아한글 레거시 문서를 구조화하기 위해서 개요와 스타일을 새롭게 매기고 싶은데 기존에 스타일이 뒤죽박죽 매겨져 있는 상태인 거예요. 근데 스타일을 변경하면 문서가 깨지잖아요ㅜ 그래서 서식은 그대로 두고 스타일을 모두 "바탕글"로 변경한 후에 개요와 스타일을 다시 하나씩 매겨보고 싶었거든요. 지식인에도 저와 똑같은 고민을 했던 분이 계시더라고요. 무작정 모든 스타일을 삭제하거나 "바탕글"로 바꾸면 서식이 다 날아가버려서 문서를 다시 구조화하는 작업이 굉장히 복잡해지죠. 문맥과 수준을 기억한 채로 수정해야 하니까요. (도입부 설명이 조금 길었습니다.) 이런 경우는 문서가 짧으면 어떻게라도 수작업으로 비벼볼 수.. 2022. 4. 30.
한글 불러올 때 CLSIDToClassMap 오류 해결하는 가장 간단한 방법 안녕하세요? 요즘은 블로그 포스팅으로 자동화 튜토리얼을 올리고, 유튜브 커뮤니티에 공유하고 있는데요. 저 오류 때문에 "한글 제어를 못 하겠다"는 댓글이 올라와서 안타까웠습니다. 사실 제 컴퓨터에서도 잊을 만 하면 뜨는 빈번한 오류이고, 조치방법은 10초도 안 걸리니까요ㅜㅜㅜ 제가 10초만에 처리할 수 있는 방법을 찬찬히 알려드리겠습니다. 제가 쓰는 방법을 한 문장으로 요약하면, "gen_py 폴더를 찾아서 삭제한다" 입니다. ① gen_py 폴더는 보통 어디 위치하냐면, 제 컴퓨터에는 C:/Users/사용자이름/AppData/Local/Temp 안에 위치하고 있네요. 위 폴더 경로는 사용자마다 다를 수 있습니다. ② 이 임시폴더를 인정사정 없이 삭제해버립니다. ③ 그리고 파이참을 재시작합니다. 파이참을.. 2022. 4. 18.
문서 내 모든 이미지를 추출하는 프로그램 feat. 한글메시지박스 지난 포스팅에서.. 한글 메시지박스 기능을 활용하면 준수한 (그리고 어색하지 않은) GUI를 구현해주었습니다. tkinter나 PySide 같은 모듈을 사용하지 않고도요. 2022.04.09 - [업무자동화/파이썬-아래아한글 자동화 기초] - hwp파일 열 때 한/글 자체 다이얼로그를 이용하면 qt도 tkinter도 필요없다!? hwp파일 열 때 한/글 자체 다이얼로그를 이용하면 qt도 tkinter도 필요없다!? 안녕하세요? 한/글에서 제공하는 API 중에는 대화상자를 열어주거나, 파일을 열거나, 대화상자를 띄워주는 메서드가 있습니다. 어쩔 수 없이 PyQt나 tkinter 등을 사용해야 하는 경우도 있지만 (여러 martinii.fun 아래의 예제는 한/글 자체 다이얼로그를 적극적으로 활용한 프로그램.. 2022. 4. 14.
hwp파일 열 때 한/글 자체 다이얼로그를 이용하면 qt도 tkinter도 필요없다!? 안녕하세요? 한/글에서 제공하는 API 중에는 대화상자를 열어주거나, 파일을 열거나, 대화상자를 띄워주는 메서드가 있습니다. 어쩔 수 없이 PyQt나 tkinter 등을 사용해야 하는 경우도 있지만 (여러 파일을 불러온다든지, 엑셀파일이나 다른 확장자를 불러와야 하는 경우 등) 기본적인 작업, 한/글 파일 하나를 불러와서 자동화작업을 하는 경우에는 거추장스럽게 GUI모듈을 임포트하지 말고 한/글에서 자체 제공하는 파일열기 다이얼로그를 사용하시면 코딩이 훨씬 간편해집니다. 사용법은 엄청나게 간단하거든요. 바로 hwp.Run("FileOpen") 입니다. 사용방법은 아래와 같습니다. Run 코드 한 줄이면 GUI가 뚝딱! 간편하지요? 한/글에서 제공하는 다양한 Run메서드가 궁금하시다면? hwp의 Run메서.. 2022. 4. 9.
한/글 문서에 포함된 그림들 화질저하 없이 이미지파일로 저장하는 프로그램 만들어보기 안녕하세요? 일상의코딩입니다. 잘들 지내시는지요? 저는 최근 정말정말 운좋게 다양한 일들을 경험하고 있습니다. 이야기보따리는 다음에 풀 기회가 있으면 꺼내놓겠습니다. 이번 시간에는 한/글에서 제공하는 다양한 방식의 메서드 중 가장 간편한 한줄명령어(Run)와 파이썬을 이용해서 응용프로그램을 하나 만들어보겠습니다. 이름하여, "한/글 문서에 포함된 그림들 화질저하 없이 이미지파일로 저장하는 프로그램"입니다. 실제로 한/글 문서에 삽입한 이미지를 화질저하 없이 그대로 이미지파일로 저장하려면, 아래와 같은 작업을 거쳐야 합니다. 1. 이미지를 선택한다. 2. 이미지를 "원래 크기"로 변경한다. 3. 우클릭(또는 다양한 방법)으로 저장한다. 왜냐면, 한/글2020 전의 버전 어딘가까지는 문서 내 삽입된 해상도의.. 2022. 3. 31.