한글32 문서의 표를 csv나 판다스 데이터프레임으로 추출하는 메서드 # table_to_csv # table_to_df 한/글의 표를 csv나 판다스 데이터프레임(df)로 저장할 때 곤혹스러운 경험을 하신 적이 있을 거예요. 왜냐면 한/글의 표를 클립보드에 복사하고 붙여넣기해보면 행 구분 없이 전부 줄바꿈(\r\n) 기호로만 구분된 문자열이 되거든요. '그럼 표의 모양(3행5열)을 기억해 뒀다가 적당히 잘라서 저장하면 되지 않나?' 이렇게 생각하실 수도 있지만, 아래와 같이 셀 안에 줄바꿈이 있는 경우는 더욱 난처해지죠. 그래서 pyhwpx에서는 table_to_csv, table_to_df 메서드를 제공하고 있습니다. 한 번 사용해볼까요?ㅎ 캐럿은 아무데나 두고 아래와 같이 실행하면 문서 첫 번째 표를 csv로 변환해요. (n번째 표는 idx=n이라고 파라미터를 추가하시면 돼요.) hwpx.table_to_df( fil.. 2023. 12. 1. 문서를 불러와서 저장하거나 다른이름으로 저장하는 방법 업무자동화를 하면서 빈 문서에서부터 편집을 하시는 분은 많지 않을 거라고 생각해요. 보통은 특정 포맷의 템플릿 파일을 만들어 두고, 단순 반복 작업에 자동화를 활용하죠. 대표적으로 문서의 특정 폼을 필드와 누름틀로 만들어 두고, 엑셀 또는 다른 한/글 문서들의 데이터를 가져와서 빈 칸을 채우는 식의 작업이 대부분일 것 같아요. (필드와 누름틀에 대한 사용법도 조만간 해드릴 거예요.) 이번 포스팅에서는 문서를 불러와서, 편집 후 저장하거나, 다른 이름으로 저장하는 방법을 알아볼게요. 우선 문서를 불러오는 명령어는 open, 문서를 저장하는 명령어는 save, 다른이름으로 저장하는 메서드는 save_as 예요. hwpx.open 메서드의 arg 파라미터 가끔 대량의 문서를 불러와서 일괄편집하고 저장하는 작업.. 2023. 11. 30. 두 개 이상의 문서를 동시에 열어서 편집하고 싶은 경우 한/글은 "창"과 "탭"을 통해 동시에 두 개 이상의 문서를 열어서 편집할 수 있습니다. 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 2 3 4 다음