안녕하세요

오늘은 여러개의 한글파일을 하나의 파일로 합쳐보는 프로그램을 작성해보도록 하겠습니다.

한글에 자체적으로 '문서 끼워 넣기'란 기능이 있습니다.

그러나 합칠 파일이 100개, 1000개가 넘어간다면 일일이 합치 여간 힘든일이 아니죠...

그럴 때 요긴하게 사용할 수 있는 프로그램이 되겠습니다.

먼저 합칠 한글파일은 아래와 같습니다.

이 것을 하나의 파일로 합쳐보겠습니다.


시작하기 앞서 관련 라이브러리를 불러와주고요

# -*- coding: cp949 -*-
import win32com.client as win32

import os
import fnmatch

 

한글 개체를 생성해주고요

hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")

 

한글파일이 들어있는 폴더를 지정을 해줍니다.
dir1="E:₩₩접수₩₩"
filename=fnmatch.filter(os.listdir(dir1),'*.hwp')

print(filename)

 

그리고 모든 파일을 열면서
i=0
for file in filename:

 

첫번째 파일은 그냥 열어주고요
  if i==0:
    hwp.Open(dir1+file, "HWP", "forceopen:true")

 

그리고 문서의 맨 마지막으로 이동해줍니다. 왜냐면 뒤에 문서를 붙여줄거니까요..
    hwp.MovePos(3, 0, 0)

 

두번째 문서부터는 아래처럼 문서를 끼워넣어 줍니다.
  else:
    hwp.HAction.GetDefault("InsertFile", hwp.HParameterSet.HInsertFile.HSet);
    option=hwp.HParameterSet.HInsertFile

 

끼워넣을 문서를 지정을 해줍니다.
    option.filename = dir1+file
    option.KeepSection = 1;
    option.KeepCharshape = 1;
    option.KeepParashape = 1;
    option.KeepStyle = 1;
    hwp.HAction.Execute("InsertFile", hwp.HParameterSet.HInsertFile.HSet);

 

똑같이 현재 문서의 마지막으로 이동합니다.
    hwp.MovePos(3, 0, 0)

 

계속 반복해줍니다.

  i=i+1

파일을 바탕화면에 저장합니다.
hwp.HAction.GetDefault("FileSaveAs_S", hwp.HParameterSet.HFileOpenSave.HSet);
option=hwp.HParameterSet.HFileOpenSave
option.Attributes = 0;
option.filename = "C:/Users/BJ/Desktop/111.hwp";
option.Format = "HWP";
hwp.HAction.Execute("FileSaveAs_S", hwp.HParameterSet.HFileOpenSave.HSet);

 

한글을 종료하고요
hwp.Quit()

 

결과파일인 111.hwp  파일을 열면

 

하나의 파일로 잘 합쳐져 있는 것을 보실 수 있습니다!!

 


# -*- coding: cp949 -*-
import win32com.client as win32
import os
import fnmatch

hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")

dir1="E:₩₩접수₩₩"
filename=fnmatch.filter(os.listdir(dir1),'*.hwp')
print(filename)

i=0
for file in filename:
    if i==0:
        hwp.Open(dir1+file, "HWP", "forceopen:true")
        hwp.MovePos(3, 0, 0)
    else:
        hwp.HAction.GetDefault("InsertFile", hwp.HParameterSet.HInsertFile.HSet);
        option=hwp.HParameterSet.HInsertFile
        option.filename = dir1+file
        option.KeepSection = 1;
        option.KeepCharshape = 1;
        option.KeepParashape = 1;
        option.KeepStyle = 1;
        hwp.HAction.Execute("InsertFile", hwp.HParameterSet.HInsertFile.HSet);
        hwp.MovePos(3, 0, 0)
    i=i+1


hwp.HAction.GetDefault("FileSaveAs_S", hwp.HParameterSet.HFileOpenSave.HSet);
option=hwp.HParameterSet.HFileOpenSave
option.Attributes = 0;
option.filename = "C:/Users/BJ/Desktop/111.hwp";
option.Format = "HWP";
hwp.HAction.Execute("FileSaveAs_S", hwp.HParameterSet.HFileOpenSave.HSet);

hwp.Quit()

 

+ Recent posts