본문 바로가기

한/글71

[인프런 QnA] 용지설정 관련 질문입니다! 감사히 잘 활용하는 중에 질문이 있어서 글을 남깁니다 제가 용지 설정(F7)의 좌우 여백을 15mm로 설정하고자 문서를 찾기 시작했습니다. 제가 찾은 것은 다음과 같습니다. ActionTable : PageSetup - 편집용지 ParameterSet ID = SecDef ParameterSet Table 의 SecDef를 확인하니 Item이 PageDef로 SubType을 지정하도록 합니다. 따라서 PageDef를 찾은 결과 LeftMargin과 RightMargin을 찾을 수 있었습니다. SecDef를 넣어도 PageDef를 넣어도 에러가 발생합니다. 혹시 SecDef의 SubType를 PageDef로 지정하는 방법이 따로 존재하는 것인지 질문드립니다. 여기서 제가 사용한 코드는 다음과 같습니다. a.. 2024. 1. 5.
쉬운 용지설정 : get_pagedef_as_dict와 set_pagedef 기존 오토메이션 API에서 용지설정은 복잡하진 않지만 꽤 코드가 길었다. 굳이 예전 코드를 보여드릴 필요는 없을 것. 그래서 pyhwpx에 get_pagedef_as_dict 와 set_pagedef 메서드를 추가하였는데, 사용법은 아래와 같다. ① hwp.get_pagedef_as_dict() 현재 페이지의 용지설정값을 사전 형태로 가져온다. 조회 뿐만 아니라, 이 데이터와 set_pagedef 메서드를 통해 새 페이지에 용지설정을 적용하는 것도 가능하다. ② hwp.set_pagedef(page_info) 위에서 얻은 페이지정보의 값 일부 또는 전부를 변경한 후, set_pagedef 안에 넣고 실행하면, 변경된 용지설정이 적용된다. 단, set_pagedef의 기본값은 현재 페이지에만 적용되며, 문.. 2024. 1. 4.
다른 hwp파일을 삽입하는 insert_file 메서드 사용법 현재 열려 있는 문서 안에 특정 문서의 내용을 삽입하는 메서드에는 hwp.insert와 hwp.insert_file 등이 있다. 1. hwp.insert는 순수하게 문자열 정보만 가져오고 싶을 때(hwp.open처럼) 2. hwp.insert_file은 스타일, 쪽 서식, 글자 및 문단모양까지 함께 가져오고 싶을 때 사용한다. 한/글 버전에 따라 작동방식이 다를 수 있다. 현재 시연 버전은 한글2018 최신 업데이트 버전이다. 바탕화면에 아래와 같은 bucket_list.hwp 라는 문서가 있을 때 이 문서를 각각의 메서드로 삽입해보자. 1. hwp.insert로 삽입해보면 이렇게 서식이 깨지는 등의 문제가 생길 수 있다. 2. hwp.insert_file로 삽입하면 페이지서식과 스타일, 글자 및 문단모.. 2024. 1. 3.
표 만들기 create_table 아래 코드로 캐럿 위치에 표를 추가할 수 있다. from pyhwpx import Hwp hwp = Hwp() hwp.create_table(5, 5, True) # 순서대로 행, 열의 갯수와 "글자처럼 취급" 여부 위 코드의 시연화면은 아래와 같다. 코드 실행 직후 캐럿은 표 안의 첫 번째 셀에 위치하게 된다. 바로 insert_text와 TableRightCell 또는 TableRightCellAppend 등을 사용해서 내용을 입력할 수 있다. 표 하나가 커서 페이지를 넘어가야 하는 경우는 "글자처럼 취급" 파라미터를 False로 주는 것이 좋다. create_table 메서드와는 별개로, dict나 list, json 또는 판다스의 DataFrame 자료형으로 데이터가 구축되어 있는 경우가 많으므로.. 2024. 1. 3.
hwp.open으로 url주소 열기 pyhwpx.Hwp() 클래스의 open 메서드는 웹상의 hwp 문서 다운로드 링크를 직접 입력할 수 있습니다. (url 주소 입력시 해당 파일을 현재경로에 다운로드한 후 열게 됩니다.) 만약 다운로드URL 문자열 안에 "ㅇㅇㅇㅇ.hwp"라는 파일명이 포함되어 있지 않은 경우에는 "./temp.hwp"로 임시저장하게 됩니다. 2024. 1. 1.
[예제] 특정 단어들에다 메모교정표 삽입하기 pyhwpx는 win32 기반의 한/글 오토메이션 API 명령어의 복잡성을 보완하고자 업무자동화에 사용되는 여러 가지 상위기능들을 메서드로 제공합니다. 아래와 같은 문서가 있을 때, 아래와 같은 교정단어 사전을 통해 교정하고자 하는 단어에 메모고침표를 달아주는 것이 목표입니다. # 교정대상 단어 예시자료(dict) word_dict = { "가감": "→더하고 빼기, 더하거나 빼기", "가건물": "→임시 건물", "가결의": "→임시 결의", "가공": "→영향을 미치다", } 결과물이 대략 다음과 같을 때, 기존 win32com과 한/글 오토메이션 API를 사용한 전통적인(?) 코드는 대략 아래와 같습니다. import os import win32com.client as win32 from tkint.. 2023. 12. 6.
문서의 표를 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.