본문 바로가기

아래아한글 자동화256

[QnA] 맞춤법 자동교정시 표시해 두기 안녕하세요 일상의 코딩님!! 유튜브를 통해서 알게되고 블로그까지 찾아왔습니다. 블로그의 유익한 글들로 많은 도움을 받고 있는데요... 아무리 찾아봐도 도저히 제 능력 밖이라 ... 바쁘실텐데 여쭙고자 합니다. ㅠㅠ 아래한글에서 맞춤법 교정을 자동으로 하는 코드를 만들고 싶은데 단순히 맞춤법 검사기로 교정하는 것은 어절단위로 돌면서 Run으로 작동은 시키는데 맞춤법 교정을 한 부분을 글자나 음영색을 바꿔서 어떤 부분을 교정했는지 표시를 하고 싶은데요 교정이 되고 나니 빨간줄도 사라지고,,, 그위치를 찾는 것도... 방법이 없는거 같아서요 도움을 요청합니다. ㅠㅠ 어떻게 방법이 없을까요... ㅠㅠ 헤매고 있는 절 구해주세요 ㅠㅠㅠㅠㅠ 질문 주신 분께서는 나름 한/글 메서드를 잘 활용하고 계신 분 같아요. 어.. 2022. 10. 28.
[8/8] 여러 한/글 문서에서 이미지 추출(최종) 메인함수 if __name__ == '__main__': hwp = 한글프로그램_실행() 취합폴더 = Path(r"C:\Users\smj02\Desktop\취합문서") 한글문서리스트 = 취합폴더.glob("*.hwp") for 한글문서 in 한글문서리스트: 문서열기(한글문서) 제목리스트, 제목함수 = 제목뽑기() 제목폴더_만들기(제목리스트) 이미지저장(제목함수) 현재문서닫기() 한글프로그램_종료() 이 메인함수는 이 튜토리얼 시작 때 미리 보여드렸습니다. 여기까지 오는 동안 필요한 모든 함수를 하나씩 정의해봤으니, 이제는 위 메인함수의 프로세스를 어느 정도 파악을 하셨을 거라고 생각합니다. 그럼 앞에서 정의한 함수들을 포함한 전체 소스코드를 보여드리고 실행결과를 보여드리겠습니다. 전체 소스코드 from .. 2022. 10. 25.
[7/8] 특정 이름으로 이미지 저장하기 def ctrl로_이동하기(ctrl): loc_set = ctrl.GetAnchorPos(0) hwp.SetPosBySet(loc_set) def 이미지저장(제목함수): ctrl = hwp.HeadCtrl # 첫 번째 컨트롤부터 탐색 이미지번호 = 1 이전제목 = "" while ctrl != None: if ctrl.CtrlID == "gso": # "그림"이면 ctrl로_이동하기(ctrl) hwp.Run("CloseEx") # 표 안에 있는 경우, 표 밖으로 나옴 제목 = 제목함수(hwp.GetPos()[1]) if 이전제목 != 제목: 이미지번호 = 1 # 폴더별로 1번부터 시작하기 위함 이전제목 = 제목 ctrl로_이동하기(ctrl) hwp.FindCtrl() hwp.HAction.Run("Pic.. 2022. 10. 25.
[6/8] 제목리스트로 하위폴더 만들기 이번 포스팅은 짧게 설명드리고 마치겠습니다. from pathlib import Path def 제목폴더_만들기(title_list): for title in title_list: Path.mkdir(취합폴더/"취합사진"/title, parents=True, exist_ok=True) 취합폴더 = Path(r"C:\Users\smj02\Desktop\취합문서") 제목리스트, _ = 제목뽑기() 제목폴더_만들기(제목리스트) 위 코드를 복붙해서 실행해보면, 취합폴더 하위에 "취합사진"이라는 폴더가 생성되고, 그 아래에 제목리스트의 각 제목 이름으로 빈 하위폴더들을 생성했습니다. 폴더생성 작업은 pathlib.Path 클래스를 활용했습니다. Path().mkdir 메서드의 파라미터 중 parents=True는.. 2022. 10. 25.
[5/8] 문서에서 제목 추출하기 이전 포스팅까지는 이미지를 저장하는 프로세스를 구현해보았습니다. 이번 포스팅부터는 문단제목을 추출하는 작업을 해보겠습니다. 기본적으로 한/글 프로그램은 찾기/찾아바꾸기 기능이 잘 구현되어 있습니다. 매크로 추출을 해 보면, 다양한 옵션도 활용이 가능하고요. 그런데, 탐색한 문자열을 파이썬으로 추출해서 활용하려면 번거로운 추가작업이 필요합니다. 이를테면, 문단의 끝까지 추가선택한 후, 복사해서 클립보드로 옮기고 파이썬으로 클립보드의 문자열을 추출해야 한다든지요. 번거롭습니다. 그런데 한/글에서는 이런 일련의 과정을 간결하게 덜어주는 GetText라는 메서드가 존재합니다. GetText, 한/글 자동화 고급과정의 첫걸음① (tistory.com) GetText, 한/글 자동화 고급과정의 첫걸음① 안녕하세요?.. 2022. 10. 25.
[4/8] 캐럿을 개체 앞으로 이동하는 방법 이전 포스팅에서 hwp.FindCtrl()을 실행하면 캐럿과 인접한 개체(이미지)가 선택되는 것을 보여드렸습니다. 이 시점부터는 "개체"라는 용어 대신 "컨트롤(Ctrl)"이라는 용어를 사용하겠습니다. 한/글 내부적으로 통용되는 용어이니 익숙해지시길 바랍니다. 그런데, 캐럿을 컨트롤(표, 이미지, 차트 등) 앞으로 옮기려면 어떻게 해야 할까요? 모든 컨트롤은 연결되어 있기 때문에 우선 한/글 문서의 모든 컨트롤들은 "linked list"라는 자료형으로 모두 연결되어 있습니다. 그래서, 특정 컨트롤을 선택하려면 문서의 첫 번째 컨트롤인 hwp.HeadCtrl이나 마지막 컨트롤인 hwp.LastCtrl에서부터 시작해서 Next 또는 Prev 명령어로 순차적인 탐색을 해야 합니다. 현재 탐색중인 컨트롤의 타.. 2022. 10. 25.
[3/8] 이미지를 선택하는 방법 이전 포스팅에서는 이미지를 추출하는 함수를 실행하려면 우선 해당 이미지를 마우스로 선택해야 했습니다. 이 과정을 파이썬 코드로 대체해보겠습니다. 개체 선택 과정은 어찌 보면 간단합니다. 딱 두 단계입니다. 1. 캐럿을 개체 바로 앞이나 뒤로 이동 2. hwp.FindCtrl()을 실행하면 개체 선택됨 위의 영상처럼 hwp.FindCtrl()을 실행하면 이미지가 선택되기는 하는데, (문제는) 캐럿을 개체 앞으로 이동하는 코드가 솔직히 조금 복잡합니다. 캐럿을 개체 앞으로 이동하는 코드는 다음 포스팅에서 자세히 알려드리겠습니다. 2022. 10. 25.
[2/8] 선택한 그림을 파일로 저장하기 def 그림추출(): hwp.HAction.GetDefault("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet) hwp.HParameterSet.HShapeObjSaveAsPicture.Path = "c:/users/smj02/desktop/취합문서/1.jpg" # 저장하고자 하는 절대경로 hwp.HParameterSet.HShapeObjSaveAsPicture.Ext = "JPG" # 포맷은 대문자로 입력 hwp.HAction.Execute("ShapeObjSaveAsPicture", hwp.HParameterSet.HShapeObjSaveAsPicture.HSet) 문서에서 선택된 이미지를 저장하는 간단한 네 줄 짜리 함수.. 2022. 10. 25.
[1/8] 한글프로그램 실행/종료 및 문서 열고 닫는 함수 import win32com.client as win32 def 한글프로그램_실행(visible=True): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한/글 프로그램 실행 hwp.XHwpWindows.Item(0).Visible = visible # 기본값 = 백그라운드 해제 hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") # 보안모듈 실행 return hwp def 문서열기(한글파일): hwp.Open(한글파일) def 현재문서닫기(): hwp.Clear(option=1) # 1:문서 닫기(변경내용 버림) def 한글프로그램_종료(): hwp.Quit() 한/글 프로그램을.. 2022. 10. 25.