묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
pyinstaller 로 exe 파일을 만들면 환경구축이 안되어있는 PC 에서 실행 불가
안녕하십니까티스토리에서 도움 많이 얻어갔었던 수강생입니다. 다름이 아니라 메일머지 기능을 자동화하기 위한 프로그램을 작성 중인데대략적인 샘플코드는 나와서 pyinstaller 를 통해 한글이 설치되어있는 환경에서동일하게 동작하는지 확인하였으나, 제대로 동작되지 않고 exception 이 발생해서해당 문제에 대해 도움을 받아볼 수 있을까 하여 질문드립니다. 혹시 관련된 코드와 exception 내용, pyinstaller 실행문을 공유드리면확인해주실 수 있으신지 문의드립니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
녹화된 스크립트매크로를 파이썬에서 활용하는 방법 내용이 안보입니다.
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 빈 화면이 보이는데 저만 그런걸까요?다른 챕터들은 다 잘 나오는데 이 챕터만 안보이네요. 확인 부탁드리겠습니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
api 버그를 활용한 서체 일괄체크에서 글자색 모두 바꾸기가 안되서 문의드립니다
안녕하세요. 한글 2024버전에서 API 버그가 픽스 됐는지 FaceNameHangul = "모두" 로 바꿔서 실행하면 콘솔창에서도 out값이 False로 출력되면서 작동이 안됩니다. 한글이 버전업 되면서 버그 픽스가 된걸까요? 실행화면 첨부합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한/글 API 가이드 링크
한/글 API 가이드 링크를 누르면 게시글 정보가 없다고 나옵니다. 링크주소가 바뀌었나봐요.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
엑셀 그래프와 테이블을 한글 각페이지에 삽입하기
안녕하세요 강의를 보면서 한글을 하나씩 건드려보며 재미있게 공부하고 있습니다 엑셀에 데이터 입력하기, 한글에 누름틀, 필드 등으로 데이터 입력하기 등 매우 흥미로운 주제이면서 나도 자동화에 쓸 수 있다는 희망이 보이는 강의입니다. 하지만 확실히 강의로 따라하는 것과 실제 예제에 응용은 쉽지 않다는게 느껴져 해결될 기대를 하며 질문을 남겨봅니다 파일 형태을 확인하실 수 있도록 파일링크를 첨부드립니다https://docs.google.com/spreadsheets/d/1JsP1BPtFzFXMTtUcjR3k0Qhhs6W7L-ZU/edit?usp=sharing&ouid=115890287739826344876&rtpof=true&sd=true 하고자 하는 자동화는 아래와 같습니다엑셀에 있는 그래프를 한글 각 페이지에 붙여넣기붙여 넣을 때는 각 페이지의 마지막 글자를 찾고 두칸 아래에 붙여넣기엑셀에 있는 테이블 형식의 데이터를 한글 각 페이지에 붙여넣기붙여 넣을 때는 각 페이지의 마지막 그림(1에서 붙인 그래프)를 찾고 두칸 아래에 붙여넣기테이블이 출력되면 각 행별로 가장 높은 숫자를 찾아 보고서 워딩을 작성해야 하는데 현재는 파이썬으로 요리조리(??) 작성하여 각 테이블을 순환하면서 높은 수치를 뽑아 워딩을 엑셀에 정리한 후 해당 엑셀을 메일머지로 각 페이지 마다 자동으로 작성되게는 했습니다. 여기서 더 나아가 그래프, 테이블까지 보고서에 자동으로 붙이면 자동화에 좀 더 가깝지 않을까 하여 질문남겨봅니다 엑셀의 테이블을 순환하면서 복사하고 한글에 붙인다는 개념만 잡아두었고 어떻게 접근해야될지 모르겠습니다. 좋은 의견 기다리겠습니다 감사합니다~!
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
누름틀의 메모를 조회하는 방법이 궁금합니다.
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 안녕하세요~ 막히는 부분이 있을 때마다 항상 많은 도움을 받고 있습니다.예전에 누름틀의 메모를 가져오는 방법에 문의하고 잘 활용하고 있는데누름틀의 개수가 많아지면 생각보다 조회하는 시간이 오래 걸려서 다시 질문을 합니다.누름틀 필드로 커서를 이동한 후 내용을 추출하는 방법 말고 다른 방법이 없을까요?? 누름틀의 필드이름을 알면 누름틀 안의 안내문, 메모 내용을 추출하는 방법이 궁금합니다.
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
독립형 프로그램으로 추출 후 오류 발생
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 안녕하세요, 오랜만입니다.저번에도 한번 여쭤본 적이 있는데, 해결 못하고 방치해두고 있다가 다시 시간이 나서 재도전중인 문제입니다. 제가 만든 코드는 pyhwpx를 이용해 페이지를 자동으로 매기는 프로그램입니다.코드 자체는 정상적으로 작동하는 것을 확인했습니다.문제는 제가 이걸 회사 사람들과 공유해서 쓰기 위해 별도의 독립형 프로그램으로 추출할 때 생깁니다.제 목표는 컴퓨터에 파이썬도, pyhwpx도 설치되어 있지 않은 그런 사람들의 컴퓨터에서 실행을 해도 정상 작동하는 것인데요. 그런데 그런 사람의 컴퓨터에서 실행을 하면 아래와 같은 오류가 뜨고오류를 구체적으로 확인해보려 해도 파이썬이 없는 컴퓨터라 확인할 수가 없네요.chatGPT한테 물어보니 다른 사람 컴퓨터에서 pyhwpx가 한글 파일을 찾지 못하는 문제라고 하는데제가 Hwp.exe의 경로를 찾아서 넣어주기까지 했는데도 같은 오류가 발생하네요.뭐가 문제인지 알 수 있을까요?꼭 좀 부탁드립니다 ㅠㅠ. 제가 작성한 코드는 다음과 같습니다.import tkinter as tk from tkinter import filedialog, messagebox from pyhwpx import Hwp import os # 한글 경로 탐색 함수 def find_hwp_path(): # 명시적인 경로 설정 possible_paths = [ r"C:\\Program Files (x86)\\Hnc\\Office 2022\\HOffice120\\Bin\\Hwp.exe", # Office 2022 기본 경로 r"C:\\Program Files\\Hnc\\Office 2020\\Hwp.exe", # Office 2020 r"C:\\Program Files (x86)\\Hancom\\Office 2018\\Hwp.exe", # Office 2018 r"C:\\Program Files (x86)\\HWP\\Bin\\Hwp.exe" # 과거 한글 ] # 경로 확인 for path in possible_paths: if os.path.exists(path): return path # 경로를 찾지 못하면 None 반환 return None # 한글 연동 함수 def set_page_numbers(file_paths, odd_files): try: hwp_path = find_hwp_path() if not hwp_path: messagebox.showerror("오류", "한글 경로를 찾을 수 없습니다.") return # 한글 프로그램 객체 생성 hwp = Hwp(hwp_path) hwp.XHwpWindows.Item(0).Visible = False # 한글 창 숨기기 j = 1 # 페이지 번호 초기값 for file_path in file_paths: hwp.Open(file_path) # 첫 페이지 이동 hwp.HAction.Run("MoveTopLevelBegin") # 홀수 페이지로 시작하지 않는 파일 처리 if file_path in odd_files: hwp.PageNumPos(j) else: if j % 2 == 0: # 기본적으로 홀수 페이지 시작 j += 1 hwp.PageNumPos(j) # 페이지 수 증가 (현재 문서 페이지 수만큼 더함) j += hwp.PageCount hwp.Clear(2) hwp.XHwpWindows.Item(0).Visible = True # 작업 후 한글 창 보이기 hwp.Clear(3) hwp.Quit() messagebox.showinfo("완료", "페이지 번호 작업이 완료되었습니다!") except Exception as e: import traceback error_message = traceback.format_exc() messagebox.showerror("오류", f"작업 중 오류가 발생했습니다:\n{error_message}") # 파일 이동 함수 def move_up(listbox): selected_items = listbox.curselection() if not selected_items: return for index in selected_items: if index > 0: # 첫 번째 항목이 아닌 경우에만 이동 가능 value = listbox.get(index) listbox.delete(index) listbox.insert(index - 1, value) listbox.selection_set(index - 1) def move_down(listbox): selected_items = listbox.curselection() if not selected_items: return for index in reversed(selected_items): if index < listbox.size() - 1: # 마지막 항목이 아닌 경우에만 이동 가능 value = listbox.get(index) listbox.delete(index) listbox.insert(index + 1, value) listbox.selection_set(index + 1) # 파일 추가 및 제거 함수 def add_file_to_list(listbox): files = filedialog.askopenfilenames( title="파일을 선택하세요", filetypes=[("HWP/HWPX 파일", "*.hwp;*.hwpx"), ("HWP 파일", "*.hwp"), ("HWPX 파일", "*.hwpx"), ("모든 파일", "*.*")] ) for file in files: listbox.insert(tk.END, file) def remove_selected_file(listbox): selected_items = listbox.curselection() for item in reversed(selected_items): listbox.delete(item) # 실행 함수 def execute_task(): all_files = list(listbox_all_files.get(0, tk.END)) odd_files = list(listbox_odd_files.get(0, tk.END)) if not all_files: messagebox.showerror("오류", "전체 파일 목록이 비어 있습니다.") return set_page_numbers(all_files, odd_files) # GUI 설정 root = tk.Tk() root.title("페이지 번호 매기기 프로그램") root.geometry("800x650") root.resizable(False, False) # 전체 파일 프레임 frame_all_files = tk.Frame(root, relief="solid", bd=1) frame_all_files.place(x=10, y=10, width=600, height=250) label_all_files = tk.Label(frame_all_files, text="전체 파일", font=("맑은 고딕", 12, "bold")) label_all_files.pack(anchor="nw", padx=5, pady=5) listbox_all_files = tk.Listbox(frame_all_files, selectmode="extended") listbox_all_files.pack(fill="both", expand=True, padx=5, pady=5) btn_frame_all_files = tk.Frame(root) btn_frame_all_files.place(x=620, y=10, width=160, height=250) btn_add_file = tk.Button(btn_frame_all_files, text="파일 추가", command=lambda: add_file_to_list(listbox_all_files)) btn_add_file.pack(fill="x", padx=5, pady=5) btn_remove_file = tk.Button(btn_frame_all_files, text="선택파일 삭제", command=lambda: remove_selected_file(listbox_all_files)) btn_remove_file.pack(fill="x", padx=5, pady=5) btn_move_up = tk.Button(btn_frame_all_files, text="위로 이동", command=lambda: move_up(listbox_all_files)) btn_move_up.pack(fill="x", padx=5, pady=5) btn_move_down = tk.Button(btn_frame_all_files, text="아래로 이동", command=lambda: move_down(listbox_all_files)) btn_move_down.pack(fill="x", padx=5, pady=5) # 홀수 페이지로 시작하지 않는 파일 프레임 frame_odd_files = tk.Frame(root, relief="solid", bd=1) frame_odd_files.place(x=10, y=280, width=600, height=250) label_odd_files = tk.Label(frame_odd_files, text="홀수 페이지로 시작하지 않는 파일", font=("맑은 고딕", 12, "bold")) label_odd_files.pack(anchor="nw", padx=5, pady=5) listbox_odd_files = tk.Listbox(frame_odd_files, selectmode="extended") listbox_odd_files.pack(fill="both", expand=True, padx=5, pady=5) btn_frame_odd_files = tk.Frame(root) btn_frame_odd_files.place(x=620, y=280, width=160, height=250) btn_add_odd_file = tk.Button(btn_frame_odd_files, text="파일 추가", command=lambda: add_file_to_list(listbox_odd_files)) btn_add_odd_file.pack(fill="x", padx=5, pady=5) btn_remove_odd_file = tk.Button(btn_frame_odd_files, text="선택파일 삭제", command=lambda: remove_selected_file(listbox_odd_files)) btn_remove_odd_file.pack(fill="x", padx=5, pady=5) btn_move_up_odd = tk.Button(btn_frame_odd_files, text="위로 이동", command=lambda: move_up(listbox_odd_files)) btn_move_up_odd.pack(fill="x", padx=5, pady=5) btn_move_down_odd = tk.Button(btn_frame_odd_files, text="아래로 이동", command=lambda: move_down(listbox_odd_files)) btn_move_down_odd.pack(fill="x", padx=5, pady=5) # 실행 버튼 btn_execute = tk.Button(root, text="실행", command=execute_task, font=("맑은 고딕", 14, "bold"), bg="#00484D", fg="white") btn_execute.place(x=10, y=550, width=770, height=40) root.mainloop() 그리고 제가 추출하는데 사용한 것은pyinstaller --onefile --noconsole --icon="C:\\Users\\user\\Desktop\\@공유\\JINA\\0__exe\\페이지 자동 맞춤 프로그램\\icon.ico" --hidden-import=pyhwpx --hidden-import=subprocess page_numbering_v2.py이거에요. 뭐가 문제일까요? 따뜻한 연말 되시기 바라며,감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
아래아한글 여러 파일 병합 코드의 기능 개선 문의
일코 강사님께서 일전에 "끼워넣기를 통해 아래아한글의 여러파일을 병합하는 코드"를 짜주셨는데요.해당 코드가 작동은 하지만, 일부 기능은 원하는 대로 되지 않는 부분이 있어서 개선방법을 문의 드립니다. 현재의 파이썬 코드는 아래와 같습니다.from pyhwpx import Hwp # 임포트 hwp = Hwp() # 한/글 실행 import os # 작업할 디렉토리를 명시적으로 설정 (예: "C:/Users/Username/Documents") target_dir = "D:\magicfolder" # 작업 디렉토리로 변경 os.chdir(target_dir) # 끼워넣기 file_list = [i for i in os.listdir() if i.endswith(".hwp")] hwp.open(file_list[0]) # 첫 번째(0) 파일 열기 for i in file_list[1:]: # 첫 번째(0) 파일은 제외하고 두 번째(1)파일부터 아래 들여쓰기한 코드 반복 hwp.MoveDocEnd() # 한/글의 문서 끝으로 이동해서 hwp.BreakPage() # <----------------------- 페이지나누기(Ctrl-Enter) hwp.insert_file(i) # 문서끼워넣기(기본값은 섹션, 글자, 문단, 스타일 모두 유지??) hwp.save_as("취합본.hwp") # 반복이 끝났으면 "취합본.hwp"로 다른이름으로저장 hwp.Quit() # 한/글 프로그램 종료 "D:\magicfolder"에 n개의 파일을 넣어두고 위 코드를 실행하면,첫 번째(0) 파일을 먼저 열고,문서 끼워 넣기(ctrl+o)를 이용해 두 번째(1), 세 번째(2), ... n번째(n-1) 파일을 차례로 끼워넣기 합니다. 문서 끼워 넣기(ctrl+o) 팝업에서 아래아한글에서 체크할 수 있는 옵션은 아래의 4개 입니다. 제가 의도하는 것은 문서 끼워 넣기(ctrl+o) 시매번 위 4개 항목(글자 모양 유지, 스타일 유지, 문단 모양 유지, 쪽 모양 유지)에 체크된 상태로 끼워넣는 것입니다.여기서, 원하는 것은 끼워 넣는 다양한 파일들이 구역설정이나 스타일이 다를 때 각각의 원본을 그래로 유지한 채 병합하는 것입니다. 현재 코드에 일코님께서 메모해 주시기로는hwp.insert_file(i) # 문서끼워넣기(기본값은 섹션, 글자, 문단, 스타일 모두 유지)라고 하셨으나,실제 코드를 실행한 결과는첫 번째(0) 파일의 편집 용지(F7) 상 구역설정 1가지만 취합본에 적용된 것이 확인됩니다. 이게 불편한 이유는,예를 들면 첫 번째(0) 파일, 두 번째(0) 파일, ..., n번째(n-1) 파일의 구역설정(상하좌우 용지여백 등)이 다를 때첫 번째(0) 파일의 구역설정 1가지에 맞추어서 취합되면, 작성내용이 다 틀어지기 때문입니다.hwp.insert_file( ) 이라는 기능을 아래아한글 API문서에서 찾기 시도했으나 발견하지 못했습니다.hwp.insert_file( )이라는 기능은 일코님이 제작하신 pyhwpx 패키지에만 포함된 기능일까요? 코드를 실행해 문서 끼워 넣기(ctrl+o) 시,글자 모양 유지, 스타일 유지, 문단 모양 유지, 쪽 모양 유지를 강제로 체크하도록 하는 방법이 있을까요? 도움 부탁드립니다. 감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
날짜 뒤에 요일 붙이기가 작동이 안되네요
안녕하세요. 날짜 뒤에 요일 붙이기 코드가 작동이 되지 않아서 문의 드립니다. 제가 손코딩 한게 뭔가 오류가 있나 싶어서 강의에 있는 코드를 복붙해서 실행해봐도 아무런 변화가 없네요.한글 파일은 자료다운에서 받은 실작업공정표를 사용했고 한글 2022, 한글 2024 두가지 버전 모두 아무런 변화가 없습니다ㅠㅠ import os import datetime as dt import win32com.client as win32 def init_hwp(): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FileCheckerModule") return hwp hwp = init_hwp() hwp.Open(os.path.join(os.getcwd(),r"C:\Users\cctom\Desktop\python\hwp2python\실작업공정표.hwpx")) # date().weekday() : 월화수목금토일 # 0 1 2 3 4 5 6 def get_value(): hwp.InitScan(Range=0xff) # 추출범위를 "선택영역"으로 지정 text = hwp.GetText()[1] # 선택범위 문자열값 추출 hwp.ReleaseScan() # 검색종료 return text # 추출값 리턴 def get_weekday(text): week_list = ["월", "화", "수", "목", "금", "토", "일"] month, day = [int(i) for i in text.split(".")[:2]] week_num = dt.date(2022, month, day).weekday() week_day = week_list[week_num] return f"({week_day})" def insert_text(text): act = hwp.CreateAction("InsertText") pset = act.CreateSet() pset.SetItem("Text", text) act.Execute(pset) if __name__ == '__main__': hwp.FindCtrl() # 표 선택 hwp.Run("ShapeObjTableSelCell") # 첫 번째 셀로 진입(셀선택상태) while True: # 무한반복 text = get_value() # 셀의 텍스트 추출 if text.endswith("."): # 셀 안의 텍스트가 "."으로 끝나면(날짜셀을 구분하는 임의의 방법) weekday = get_weekday(text) # 요일 파악 hwp.Run("Cancel") # 셀선택 취소 hwp.Run("MoveLineEnd") # 문자열 끝으로 이동 insert_text(weekday) # 요일 삽입 hwp.Run("TableCellBlock") # 다시 셀선택 if not hwp.HAction.Run("TableRightCell"): # 우측으로 이동하다 break # 끝에 도달하면 while문 종료
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
pyhwpx의 set_table_width함수가 파일에 따라 안될때가 있습니다..
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== hwp.set_table_width()이 함수가 특정 파일에선 안먹힙니다..ㅠㅠ해당 한글 파일의 설정을 변경하거나 조정해야 할 부분이 있을까요? 일반적인 파일은 다 잘됩니다!
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한글 2024에서는 한글 문서 열기가 안되는데 다른 방법을 써야 하나요?
한글2024 버전에선 이 코드로 한글 문서가 안열리는데 다른 방법을 써야 하나요?import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
엑셀문서 값을 필드에 입력하기 관련 문의
저는 한글 2014를 사용하고 있습니다. 엑셀문서 값을 필드에 입력하기를 실행했을때 강의에 올라온 영상처럼 엑셀에 있는 자료가 페이지별로 하나하나 생성 되는것이 아닌 마크만 입력되고 나머지는 입력이 되지 않습니다. 제가 타이핑한것이 잘못 됐나 싶어서 강의에 있는 소스를 붙여 넣기 해서 실행을 해봐도 마크만 입력되고 나머지 자료들은 입력이 되지 않는데 왜 그럴까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한 파일의 변경사항을 다수의 파일에 동일하게 반영하고 싶습니다.
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 기본 파일이 하나 있습니다.그리고, 예를 들면 앞부분이 동일한 파일을 여러개 같이 관리하고 있습니다. 이때 기본파일의 앞부분에 3조의 내용(법령 관련 지침이라 1,2,3,4,~조로 구성)이 변경되었을 때, 기본파일의 변경사항을 바꿀파일에 적용할 수 있을 지 문의 드립니다.파일 첨부가 안되어서 이미지로 첨부해봅니다.[기본파일 내용] [바꿀파일1][바꿀파일2]
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
여러줄의 블록설정한 text를 파이썬 변수에 할당하기
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 안녕하세요 일코님~블럭처리를 한 상태에서 실행하면 그 블럭의 텍스트를 반환해주는 함수를 쓰고있는데요.def extract_text_from_block(): hwp.InitScan(range=0xff) # 0xff <<선택된 범위 내에서 검색 _, text_blokced = hwp.GetText() # 텍스트만 추출 hwp.ReleaseScan() # 스캔을 해제. return text_blokced # 이경우, 해당 target이 text에 포함되어있으면 True, 아니면 False를 반환. 어떻게 하다보니깐 만들어서 쓰고있는데.. 문제는 이게 para 1개를 넘어가면 \r\n을 반환하고 아무것도 반환하지 않네요..단락 하나를 넘어가지 않게 블럭설정하면 잘 작동하는데요. 여러줄에는 먹히지가 않네요..(1) 일단 블록설정한 text를 변수에 할당할 때 이런식으로 함수를 쓰는게 효율적인 방법인지?(2) 만약 괜찮은 방법이라면, 여러줄을 블록설정한뒤에 변수에 할당하려면 어떻게 해야하는지?이렇게 두가지가 궁금합니다!감사합니다!!
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
한글 파일 팝업 안뜨게 하기 에서 계속 false 가 리턴 되네요
안녕하세요. 한글 2014에서 실습하고 있는 중입니다.레지스트리에 저장할 폴더가 없어서 밑에 질문 올리신 분의 글을 보고 레지스트리에 등록을 하고 PC를 재부팅했는데도 리턴값이 false로 나오고 있습니다. 뭐가 문제일까요?ㅠㅠ 제 레지스트리 화면입니다
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
스타일 개요 수준 추가
안녕하세요 저번에 남겨주신 질문에 하나 더 여쭙고자 합니다. 저번에 커서위치 스타일 추출 코드 알려주셨는데요 추출하고 개요 문단 수준을 변경해서 저장하는 방법도 있을까 해서 문의 드립니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
블록 내에서 표 갯수 확인하기, 표 찾기
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 안녕하세요 일코님메일드렸는데 많이 바쁘신듯 하네요~ ㅠ.ㅠ 열심히 구현하고 있는데, (1) 블록 설정된 내에서 표가 몇개 있는지 확인 하는것 (2) 표의 갯수를 확인하고 차례로 그 표를 찾아서 진입하는 방법 을 잘 모르겠습니다.(3) 이전에 블록 내에서 텍스트를 검색하는 방법을 알려주셨었는데, 그것을 잘 활용하고 있는데요.def 블록내_텍스트_포함_여부(text): try: hwp.InitScan(Range=0xff) # 0xff <<선택된 범위 내에서 검색 except: hwp.InitScan(range=0xff) _, range_text = hwp.GetText() # 텍스트만 추출 hwp.ReleaseScan() # releaseScan이란 함수는 스캔을 해제. hwp.HAction.Run("MoveParaEnd") return f"{text}" in range_text # 이경우, 해당 target이 text에 포함되어있으면 True, 아니면 False를 반환. python 터미널에서 행별로 코드를 실행할 때,Range=0xff 를 했을때 올바른 파라미터가 아니라고 오류가 뜰때가 많더라구요근데 또 이걸 py파일을 실행해서 했을떄는 되는거 같구요.그래서 그냥 try except 구문을 쓰고있는데,제가 뭔가를 잘못사용하고 있는 걸까요?감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
pyhwpx 공식문서?
질문 남겨주셔서 감사합니다.막히면 언제든 무엇이든 자주 질문 던져주세요.수학/과학이나 알고리즘과는 달리업무자동화 코딩은 고민해서 풀리는 경우가 정말 드뭅니다.다시 말씀드리지만, 질문을 자주자주 남겨주세요.저도 최대한 빠르게 회신 드리겠습니다.당부드릴 두 가지가 있습니다.① 가급적 구체적으로 설명해주세요.② 특정 챕터 관련 질문 남겨주실 때는, 어느 챕터인지 알려주세요ㅜ==================================== 안녕하세요 일코님혹시 pyhwpx 의 클래스, 메서드 등이 정리된 별도의 문서는 없을까요?만약 없다면 그런것들을 살펴보려면 어떻게 해야하는지 알고싶은데 다른 방법은 없을까요?감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
첨부파일(필드명없음.hwp)과 강의 본문 내용 상 불일치 확인 요청
"2-6. 필드속성 수정하기" 중현재 커서위치의 필드이름 수정하기 : SetCurFieldName 관련입니다. (아래 스크린샷 참고)강의 본문을 보면,첨부된 실습파일인 "필드명없음.hwp"이 누름틀은 네 개 들어가 있지만, 필드명이 정의되어 있지 않은 상태입니다. 라고 설명되어 있는데요. "필드명없음.hwp"를 다운로드 받아서 열어보면 강의 본문과 다릅니다.즉, 필드 4개에 필드명이 모두 정의된 상태입니다. 또한, 강의 본문에는, "필드명없음.hwp" 상 내용이이름 : 여기에 입력성별 : 여기에 입력생일 : 여기에 입력취미 : 여기에 입력이라고 기재되어 있지만, "필드명없음.hwp"를 열어보면이름 : 이름성별 : 성별생일 : 성별취미 : 성별로 확인됩니다. 잘못 첨부하신 거라면, 첨부파일과 강의 본문 간 일치되도록 정정해 주시면 혼동을 방지하는데 큰 도움이 될 거 같습니다. 혹여나 "예시문서는 아래와 같습니다." 라고 기재하시면서 실습이 완료된 파일을 첨부해 주신 의도라면,수강생의 입장에서는 해당 위치에 실습 진행 전 파일을 첨부해 주시는 게 더 이해에 더 매끄러울 거 같습니다. 아니면, 해당 첨부파일이 "실습이 완료된 이후의 상태"라는 언급을 해주시면 정확할 거 같습니다. 아울러,hwp.SetCurFieldName(Field="이름", Direction="이름입력", memo="이름메모")코드를 실행할 때는,"필드명 정의되어 있지 않은 누름틀에서 캐릿이 깜빡이는 상태에서 위 코드를 실행"하면 된다는 설명을 한 줄 더 넣어주시면 어떤 설명을 하고 계신 건지 더 정확히 이해할 수 있을 거 같습니다.※ 요 부분 실습해보고 말씀드리는 것입니다. 감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
표 찾아가기 도와주세요...ㅠㅠ
파이썬 pyhwpx 이용해서 개인 매크로를 만들고 있는데 ..막히는 부분이 있어 문의드립니다원하는 기능은 문서 내 모든 표를 저장하고 하나씩 순회하면서 매크로를 적용시키려합니다..근데 표 글자처럼 취급을 해제시키면 hwp.get_into_nth_table(Table_index)이 코드로는 그 인덱스번호 표의 첫번째 셀로 가지 않았습니다.. hwp.move_to_ctrl(Table_list[Table_index]) hwp.find_ctrl() hwp.ShapeObjTableSelCell()아니면 이렇게 컨트롤을 넣어서 해도 안으로 안갔습니다..hwp.select_ctrl(Table_list[Table_index])이 함수 사용하니까 선택은 되는데 셀 전체 선택이 또 안되더라구요.ㅠㅠ 그리구 표 하나씩 넘길때마다 조판부호 같은게 켯다꺼지네용;; 글자처럼 취급하지 않은 표를 조작할 방법 알려주시면 감사하겠습니다.