728x90
반응형
import os
from pyhwpx import Hwp
# 작업 대상 파일 경로 설정
folder_path = "C:\\Users\\user\\Desktop\\VSCode(python)\\(CODE)Pyhwpx\\raw"
output_folder_path = "C:\\Users\\user\\Desktop\\VSCode(python)\\(CODE)Pyhwpx\\result" # 결과물이 저장될 경로
# 분할파일 저장할 폴더 생성 (폴더가 없을 경우에만 생성)
if not os.path.exists(output_folder_path):
os.mkdir(output_folder_path)
# 원본문서 열기
Hwp = Hwp()
# 작업 대상 파일 열기 (test.hwp 또는 test.hwpx)
file_to_open = None
if os.path.exists(os.path.join(folder_path, "test.hwp")):
file_to_open = os.path.join(folder_path, "test.hwp")
elif os.path.exists(os.path.join(folder_path, "test.hwpx")):
file_to_open = os.path.join(folder_path, "test.hwpx")
if file_to_open:
Hwp.open(file_to_open) # 작업 대상 파일 경로에서 파일 열기
else:
print("작업 대상 파일이 존재하지 않습니다.")
exit()
# 한페이지씩 잘라서 저장하기(HWP문서 쪽번호 순차배열필수, 조판부호에서 새쪽번호로 시작 모두 삭제, 그림형식 표는 글자처럼 취급으로 선처리)
Hwp.add_doc() # 새 문서 열림
Hwp.switch_to(0) # 원본 문서에서
for i in range(1, Hwp.PageCount + 1): # 1~100페이지까지
Hwp.goto_page(i) # i번째 페이지로 이동
Hwp.CopyPage() # 페이지 복사해서
Hwp.switch_to(1) # 새 문서에다가
Hwp.PastePage() # 끼워넣기 한 후
Hwp.MoveDocBegin() # 기존의 1페이지(빈 페이지)로 가서
Hwp.DeletePage() # 빈 페이지 삭제 후
Hwp.save_as(os.path.join(output_folder_path, f"{i}.hwp")) # 다른 이름으로 저장
Hwp.switch_to(0) # 다시 원본문서로 이동
# 한글 프로세스 종료
try:
Hwp.Quit() # pyhwpx에서 제공하는 종료 명령(존재할 경우)
except AttributeError:
print("pyhwpx 종료 명령 실패, 강제 종료 시도 중...")
print("끝.")
※ 상기 코드는 일코(ilco)님 도움을 받아 작성하였습니다.
728x90
반응형
'직장인' 카테고리의 다른 글
[회사원] 업무 코딩기록 - (PyHwpx)Hwp_Merge(1_파일명 순차변경) (0) | 2024.12.24 |
---|---|
[회사원] 업무 코딩기록 - (PyHwpx)Hwp_File Slicing(3EA) (0) | 2024.12.24 |
[회사원] 업무 코딩기록 - (shutil)파일 목록 이동(잘라내기) (0) | 2024.12.23 |
[회사원] 업무 코딩기록 - (Tabula,Openpyxl)Pdf to Excel(표) (0) | 2024.12.23 |
[회사원] 업무 코딩기록 - (Pyautogui)Mouseinfo (0) | 2024.12.23 |