강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

learner님의 프로필 이미지
learner

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

한/글 문서를 불러오고, 저장하고, 닫기

hwp 페이지별 분할 저장하는 코드 관련 문의

작성

·

223

·

수정됨

0

일코님, 안녕하세요.
오랜만에 질문 올립니다.

여러 장이 있는 hwp파일의 첫 페이지부터 한 페이지 씩
1.hwp, 2.hwp, 3.hwp, ... 로 저장하는 코드를 작성해 보았는데요.

한 가지 문제점만 빼면 원하는 대로 작동합니다.

한 가지 문제점은, 코드 실행 후 저장된 1.hwp 파일 속에 1페이지가 아닌 전체 페이지가 들어가 있다는 점입니다.
그거 외에 다른 페이지는 문제 없이 작동되고 있습니다.

이거 왜 그럴까요?

코드를 반복해서 살펴봐도,
논리적으로는 저장되는 1.hwp 파일에는 원본파일의 첫 페이지만 들어가 있어야 할 거 같은데.. 그렇게 안되는 이유가 궁금합니다.

전체 코드는 아래와 같습니다.

import os
from pyhwpx import Hwp

hwp = Hwp()

target_dir = r"D:\magicfolder"
os.chdir(target_dir)

hwp.add_tab()
hwp.switch_to(0) # 탭0: 카피해 올 원본 파일용
hwp.open("D:\magicfolder\페이지분할대상.hwp")

hwp.switch_to(1) # 탭1: 한 페이지씩 붙여서 저장할 일종의 작업공간
hwp.open("D:\magicfolder\페이지분할대상.hwp")

hwp.switch_to(0)
for j in range(1, hwp.PageCount + 1):
    hwp.goto_page(j)
    hwp.CopyPage()

    hwp.switch_to(1)
    hwp.HAction.Run("SelectAll")
    hwp.HAction.Run("Delete")
    hwp.MoveDocBegin()
    hwp.PastePage()

    # 바로 위에서 hwp.PastePage()할 때 페이지가 넘어가서 붙으므로, 앞 페이지로 당겨 붙이기 위해서 맨 위 페이지로 커서 옮기고 Del 2번 해 준 것임.
    hwp.MoveDocBegin()
    hwp.HAction.Run("Delete")
    hwp.HAction.Run("Delete")

    hwp.save_as(target_dir + "\\" + str(j) + ".hwp")
    hwp.switch_to(0)
hwp.Close()

hwp.FileClose()

 

코드를 많이 짜봐야 늘텐데 정말 오랜만에 시도해 본 거 같습니다. ^^ㅋ

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
learner님의 프로필 이미지
learner

작성한 질문수

질문하기