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" # 결과물이 저장될 경로
# 바탕화면으로 이동
os.chdir(os.path.join(os.environ["USERPROFILE"], "desktop"))
# 분할파일 저장할 폴더 생성 (폴더가 없을 경우에만 생성)
if not os.path.exists(output_folder_path):
os.mkdir(output_folder_path)
# 원본문서 열기
Hwp = Hwp()
cur_view_state = Hwp.ViewProperties.Item("OptionFlag")
if cur_view_state not in (2, 6):
prop = Hwp.ViewProperties
prop.SetItem("OptionFlag", 6)
Hwp.ViewProperties = prop
# 작업 대상 파일 열기 (hwp와 hwpx 모두 지원)
hwp_file_path_hwp = os.path.join(folder_path, "test.hwp")
hwp_file_path_hwpx = os.path.join(folder_path, "test.hwpx")
# 파일이 존재하는지 확인하고 열기
if os.path.exists(hwp_file_path_hwpx):
Hwp.open(hwp_file_path_hwpx)
elif os.path.exists(hwp_file_path_hwp):
Hwp.open(hwp_file_path_hwp)
else:
print("작업할 파일이 존재하지 않습니다.")
exit()
# 3페이지씩 잘라서 저장하기(HWP문서 쪽번호 순차배열필수, 조판부호에서 새쪽번호로 시작 모두 삭제, 그림형식 표는 글자처럼 취급으로 선처리)
i = 1
while True:
prop = Hwp.ViewProperties
prop.SetItem("OptionFlag", cur_view_state)
Hwp.ViewProperties = prop
try:
Hwp.MoveDocBegin() # 문서 처음으로 이동 후,
Hwp.goto_page(3) # 3페이지로 가서(페이지수 변경 시 숫자 수정)
Hwp.MovePageEnd() # 3페이지 끝에서부터
Hwp.MoveSelDocBegin() # 문서 시작까지 선택(Sel)
Hwp.save_block_as(os.path.join(output_folder_path, f"{i}.hwp")) # 선택영역 블록저장(1.hwp, 2.hwp, 3.hwp, ....)
Hwp.DeleteBack() # 선택영역 삭제
Hwp.Delete() # 빈 줄 삭제
i += 1 # 다음 파일 준비
except: # 오류 나면(hwp.goto_page는 범위를 벗어난 정수를 입력하면 오류 발생)
break # while문 종료
# 한글 프로세스 종료
try:
Hwp.Quit() # pyhwpx에서 제공하는 종료 명령(존재할 경우)
except AttributeError:
print("pyhwpx 종료 명령 실패, 강제 종료 시도 중...")
print("끝.")
※ 상기 코드는 일코(ilco)님 도움을 받아 작성하였습니다.
728x90
반응형
'직장인' 카테고리의 다른 글
[회사원] 업무 코딩기록 - (PyHwpx)Hwp_Merge(2-1_병합(서식동일)) (0) | 2024.12.24 |
---|---|
[회사원] 업무 코딩기록 - (PyHwpx)Hwp_Merge(1_파일명 순차변경) (0) | 2024.12.24 |
[회사원] 업무 코딩기록 - (PyHwpx)Hwp_File Slicing(1EA) (0) | 2024.12.24 |
[회사원] 업무 코딩기록 - (shutil)파일 목록 이동(잘라내기) (0) | 2024.12.23 |
[회사원] 업무 코딩기록 - (Tabula,Openpyxl)Pdf to Excel(표) (0) | 2024.12.23 |