본문 바로가기

한글48

두 개 이상의 문서를 동시에 열어서 편집하고 싶은 경우 한/글은 "창"과 "탭"을 통해 동시에 두 개 이상의 문서를 열어서 편집할 수 있습니다. pyhwpx에서 탭을 추가하는 메서드는 add_tab()이며, 창을 추가하는 메서드는 add_doc()입니다. 편집문서를 전환하려면 switch_to(idx) 메서드를 사용합니다. 다만 유의하실 점이 하나 있는데요. 마우스 클릭이나 Alt-Tab 등으로 직접 한/글 창의 포커스를 변경하면 hwpx인스턴스도 (switch_to 메서드와 상관없이) 동일하게 포커스된 문서를 가리키게 됩니다. 특히 빈 문서가 아니라 기존의 문서를 열어서 편집하시는 작업이라면, 작업 도중 인덱스 몇 번이 어느 문서를 가리키고 있는지 헷갈릴 수 있는데요. 인스턴스 자체를 여러 개 생성하여 작업하실 수도 있습니다! 개인적으로 이 방법이 조작이 .. 2023. 11. 30.
[python+hwp] 생각보다 hwp 업무자동화가 어렵다면... 한컴오피스 업무자동화 튜토리얼을 블로그와 유튜브에 몇 년간 작성해 오면서 받았던 모든 피드백 중에 "감사하다"는 의견을 제외하면 "너무 어렵다"는 말씀이 가장 많습니다. 저도 이게 큰 고민거리인데요.. 제 설명이 미흡한 탓이라는 생각이 드니까 반성도 많이 하게 되고요. 제 기준에서 '의외로 쉽고, 이해하면 간단하기도 하다.'는 막연한 느낌은 아마 제가 입문자들의 레벨을 벌써 잊어버렸기 때문일 것입니다. 아마도 제가 "한/글 업무자동화"를 쉽다고 생각하는 첫 번째 이유는, 당장 방법이 생각나지 않거나, 막히더라도 어떤 과정으로 해답을 찾아가야 하는지 알기 때문인 것 같습니다. 그래서 이번 포스팅에서는 일반적으로 활용할 수 있는 한/글 업무자동화 코드작성 과정을 의식의 흐름대로 한 번 쭉 써내려가 보려고 합.. 2023. 2. 1.
[QnA] "PDF가 모아찍기로 출력돼요" #PDF 출력시 파이썬으로 모아찍기 일괄해제 파이썬으로 특정 폴더에 있는 한글(hwp)파일들을 PDF로 전환하려고하는데.. 한글에서 마지막 저장 시 두쪽 모아찍기로 인쇄하고 저장을 하면 해당 설정을 기억해서 파이썬으로 불러들여서 PDF로 저장하면 한페이지에 두장 모아 찍기로 PDF가 저장이 됩니다. 저장된 파일의 최종 인쇄설정을 무시하고 종이 한장에 1페이지 인쇄 설정한 상태로 전환하여 PDF로 저장하고 싶은데.. 쉽지 않네요 파이썬으로 여러 개의 HWP 파일을 PDF로 변환하는 건 사실 굉장히 간단한 작업입니다. 코드도 짧죠. 예를 들어, 위와 같이 hwp파일이 여러 개 있고, 동일한 파일명에 확장자만 바꿔서 PDF파일을 생성하려면? 아래와 같이 코드를 짜볼 수 있겠죠. import os import win32com.client as win32 .. 2022. 9. 21.
[QnA] (4/5) 특정 단어를 포함한 문단 검색하기 안녕하세요. 한글 자동화 프로그램을 공부하고 있는데 궁금한 사항이 있어 질문합니다. 특정 글자가 들어가 있는 문단을 찾아서 그 곳에 글뒤로 속성으로 표를 삽입하고 싶습니다. 1. 자동으로 표 생성시 속성을 "본문과의배치"에서 "글뒤로" 선택하여 생성할 수 있나요? 이 속성없이 생성시 문단에 삽입되면서 글자가 밀려나는 현상이 발생합니다. 2. 찾은 문단의 위치값을 HWPUNIT 값으로 알 수 있나요? 표 생성시 위치값은 HWPUNIT으로 지정해야 하는데 현재 찾은 위치의 속성은 줄,칸으로 알려주네요. 이상입니다. 지난 포스팅에서는 지난 포스팅에서는 용지의 너비와 문단의 높이를 구하는 함수를 구현해보았습니다. 2022.09.19 - [업무자동화/파이썬-아래아한글 자동화 응용] - [QnA] (3/5) 문단의.. 2022. 9. 19.
[QnA] (1/5) 특정단어 포함 문단 뒤에 표 깔기-인트로 안녕하세요. 한글 자동화 프로그램을 공부하고 있는데 궁금한 사항이 있어 질문합니다. 특정 글자가 들어가 있는 문단을 찾아서 그 곳에 글뒤로 속성으로 표를 삽입하고 싶습니다. 1. 자동으로 표 생성시 속성을 "본문과의배치"에서 "글뒤로" 선택하여 생성할 수 있나요? 이 속성없이 생성시 문단에 삽입되면서 글자가 밀려나는 현상이 발생합니다. 2. 찾은 문단의 위치값을 HWPUNIT 값으로 알 수 있나요? 표 생성시 위치값은 HWPUNIT으로 지정해야 하는데 현재 찾은 위치의 속성은 줄,칸으로 알려주네요. 이상입니다. 한/글 개발자 커뮤니티에 재미있는 질문이 있어 블로그에서 다뤄보겠습니다. 이를테면 이런 예제를 말씀하시는 것 같아요. 아래와 같은 문서가 있을 때 특정 단어가 들어가는 문단에 다음과 같이 백그라운.. 2022. 9. 19.
SetPos 대신 SetPosBySet을 쓰면 훨씬 유용한 경우 : GetAnchorPos와 연계할 때 컨트롤코드를 써서 아래아한글 보고서 자동화를 할 때 십중팔구 사용하는 메서드가 있습니다. 해당 컨트롤의 위치를 찾아내는 GetAnchorPos, 그리고 찾아낸 위치로 찾아가는 SetPos가 대표적이죠. 이전 예제에서 사용한 GetAnchorPos 메서드 예제 일부를 먼저 살펴보겠습니다. def 문자열삽입(문자열): hwp.HAction.GetDefault("InsertText", hwp.HParameterSet.HInsertText.HSet) hwp.HParameterSet.HInsertText.Text = 문자열 hwp.HAction.Execute("InsertText", hwp.HParameterSet.HInsertText.HSet) caption_list = [ "구름 낀 하늘", "푸른 하늘", .. 2022. 9. 15.
아래아한글 문서의 위치(좌표)체계 아래아한글 문서의 위치체계 아래아한글 문서에는 명확하게 위치체계가 존재하고, 비어있는 공간이 아닌 이상 좌표(?)가 매겨져 있습니다. 마치 3차원 좌표계(x, y, z)처럼 말이죠. 이 글에서 사용하는 "좌표"라는 용어는 제가 편의상 임의로 붙였으며, API의 공식 명칭은 아님을 밝힙니다. 기존에 작성했던 대부분의 포스팅에서는 "누름틀"이나 "필드"를 이용해서 작업을 자동화했기 때문에 굳이 좌표를 계산하거나 추출해야 할 필요가 없었습니다. 그런데 아래 예제 같은 경우에는 좌표개념을 사용하면 작업이 훨씬 수월해집니다. 2022.09.06 - [업무자동화/파이썬-아래아한글 자동화 기초] - [QnA] 한글에서 특정 글꼴 찾아 태그 붙이기 [QnA] 한글에서 특정 글꼴 찾아 태그 붙이기 안녕하세요. 우연히 유.. 2022. 9. 8.
그간 잘못된 정보를 알려드려 죄송합니다. 몇 가지 오류 정정 안녕하세요? 길다면 긴 기간 동안 아래아한글 자동화를 공부하면서 유튜브 영상으로, 블로그 포스팅으로 이것저것 남겨 왔는데, 현 시점에서 수정하고 싶은 부분이 몇 개 있습니다. (일종의 포스팅 정오표 같은 것...) 읽으셔도 크게 도움 되지 않겠지만, 한 번은 정리해야겠다 싶었는데 오늘에야 포스팅으로 남깁니다. 1. "누름틀에 예약어가 있다?" - 누름틀에는 예약어가 없다. 제 첫 유튜브 영상의 오류입니다. https://youtu.be/1pC_UXhiJH8 해당 영상에 고정댓글로 달아놓기는 했는데, 누름틀에는 예약어가 없습니다. 다만, 동일한 누름틀이 문서에서 여러 개 존재하는 경우, 의도한 대로 입력되지 않을 수 있습니다. (물론 한/글 API에는 동일명의 누름틀 중 몇 번째 누름틀에 텍스트를 채울지 .. 2022. 8. 31.
특정 페이지로 찾아가는 함수 만들기 아래아한글 API 중 GoTo라는 간편한 메서드가 있습니다. 쪽, 구역, 줄, 스타일, 조판부호 및 책갈피 등 다섯 개의 특성을 통해 인덱스를 입력하면 해당 라인으로 이동할 수 있는 간편한 대화상자를 제공하는데요. 사용방법은 대략 아래와 같습니다. hwp.HAction.GetDefault("Goto", hwp.HParameterSet.HGotoE.HSet) # 메서드 초기화 hwp.HParameterSet.HGotoE.SetSelectionIndex = 1 # "쪽"으로 찾아가기 설정 hwp.HParameterSet.HGotoE.HSet.SetItem("DialogResult", 3) # 3쪽으로 이동 hwp.HAction.Execute("Goto", hwp.HParameterSet.HGotoE.HSet.. 2022. 8. 7.