Professional Development

ChatGPT와 만든 파이썬 프로그램_Convert Hwp to Pdf

타츠루 2024. 8. 10. 19:50

convert hwp to pdf 프로그램

Hwp to PDF 프로그램 개발 목적, 과정, 처리한 오류

프로그램 개발 목적

이 프로그램의 목적은 특정 폴더를 모니터링하여 새로운 .hwp 또는 .hwpx 파일이 추가될 때, 해당 파일을 자동으로 PDF로 변환하는 것입니다. 이를 통해 사용자는 파일 변환 작업을 자동화하고, 업무 효율성을 높일 수 있습니다.

프로그램 개발 과정

  1. 폴더 감시 기능 구현:

    • 특정 폴더를 지속적으로 모니터링하여 새로운 파일이 생성될 때 이벤트를 감지하는 기능을 구현했습니다.
  2. 파일 변환 기능:

    • .hwp 파일은 직접 PDF로 변환.
    • .hwpx 파일은 .hwp 파일로 변환 후, PDF로 변환.
  3. 임시 파일 관리:

    • 변환 후 생성된 임시 .hwp 파일을 안전하게 삭제하는 기능을 추가했습니다.
  4. 자동 실행 설정:

    • 컴퓨터 시작 시 프로그램이 자동으로 실행되도록 설정할 수 있는 기능을 제공했습니다.

처리한 주요 오류 및 해결 방안

  1. 파일 인코딩 문제:

    • 문제: config.ini 파일을 읽을 때 인코딩 문제로 UnicodeDecodeError가 발생.
    • 해결: configparser를 사용할 때 codecs 모듈을 사용하여 UTF-8 인코딩으로 파일을 읽도록 수정.
  2. 파일 접근 오류 (PermissionError):

    • 문제: 한글 프로그램에서 파일을 완전히 닫지 않은 상태에서 임시 파일을 삭제하려고 할 때 PermissionError 발생.
    • 해결: 파일 삭제 전에 잠시 대기(time.sleep(1))하여 파일이 완전히 닫힐 수 있도록 처리.
  3. UnboundLocalError: cannot access local variable 'hwp' where it is not associated with a value:

    • 문제: hwp 변수가 초기화되지 않은 상태에서 hwp.Quit()을 호출하려 할 때 발생.
    • 해결: hwp 변수를 함수 시작 시 None으로 초기화하고, finally 블록에서 hwp 변수가 None이 아닌 경우에만 Quit()을 호출하도록 수정.
  4. .hwp 파일이 삭제되는 문제:

    • 문제: .hwpx 파일을 .hwp로 변환한 후, 원본 .hwp 파일이 삭제되는 문제 발생.
    • 해결: 임시 파일 경로와 원본 파일 경로를 명확히 구분하여, 임시 파일만 삭제하도록 코드 수정.
  5. EXE 파일 생성 및 배포:

    • 프로그램을 다른 사용자에게 배포할 수 있도록 PyInstaller를 사용하여 EXE 파일을 생성하는 방법을 적용.
    • 시작 프로그램 폴더에 EXE 파일을 추가하여, 컴퓨터 시작 시 프로그램이 자동 실행되도록 설정.

최종 프로그램 요약

이 프로그램은 설정된 폴더를 모니터링하여 .hwp 또는 .hwpx 파일이 추가될 때, 자동으로 PDF로 변환하는 기능을 수행합니다. 프로그램은 여러 가지 예외 상황을 처리할 수 있도록 안정적으로 설계되었으며, EXE 파일로 변환하여 배포할 수 있습니다.


프로그램 사용전 파이썬 설치 안내

1. 파이썬 설치

파이썬을 사용하기 위해 가장 먼저 해야 할 일은 파이썬을 설치하는 것입니다.

파이썬 설치 방법

  1. 파이썬 다운로드:

    • Python 공식 웹사이트에 접속하여 최신 버전을 다운로드합니다.
    • Windows 사용자의 경우, 설치 프로그램이 제공되며, 다운로드 후 실행할 수 있습니다.
  2. 파이썬 설치:

    • 설치 중에 "Add Python to PATH" 옵션을 선택하여 체크합니다. 이 옵션을 선택해야 명령 프롬프트에서 파이썬을 쉽게 사용할 수 있습니다.
    • "Install Now" 버튼을 클릭하여 기본 경로에 파이썬을 설치합니다.
  3. 설치 확인:

    • 설치가 완료된 후, 명령 프롬프트를 열고 python --version 또는 python -V 명령어를 입력하여 설치가 제대로 되었는지 확인합니다.

2. 필수 파이썬 패키지 설치

프로그램이 정상적으로 실행되기 위해 몇 가지 파이썬 패키지를 설치해야 합니다.

패키지 설치 방법

  1. 명령 프롬프트 열기:

    • Win + R 키를 눌러 실행 창을 열고, cmd를 입력한 후 엔터를 누릅니다.
  2. 필수 패키지 설치:

    • 명령 프롬프트에서 다음 명령어를 입력하여 필요한 패키지를 설치합니다.
      pip install watchdog pywin32 configparser

3. 프로그램 파일 준비

사용자는 프로그램 파일과 설정 파일을 준비해야 합니다.

  1. 프로그램 파일:

    • convert_hwp_to_pdf.py: 프로그램의 메인 파이썬 스크립트입니다.
    • config.ini: 프로그램의 설정 파일로, 감시할 폴더 경로를 지정합니다.
  2. 폴더 구조:

    • 이 두 파일을 같은 디렉토리에 놓습니다.
      /프로그램_폴더
       ├── convert_hwp_to_pdf.py
       └── config.ini

4. 설정 파일(config.ini) 수정

config.ini 파일을 열어 감시할 폴더 경로를 설정합니다.

예시 config.ini 내용

[SETTINGS]
watch_directory = C:\path\to\your\folder
  • watch_directory: 프로그램이 감시할 폴더의 경로를 지정합니다.

5. 프로그램 실행

이제 프로그램을 실행할 수 있습니다.

  1. 명령 프롬프트에서 실행:

    • 명령 프롬프트를 열고 프로그램 파일이 있는 디렉토리로 이동합니다.
    • python convert_hwp_to_pdf.py 명령어를 입력하여 프로그램을 실행합니다.
  2. 프로그램이 실행되면:

    • 설정된 폴더를 감시하기 시작하고, 새로운 .hwp 또는 .hwpx 파일이 추가될 때마다 PDF로 변환합니다.

6. 프로그램을 EXE 파일로 변환 (선택 사항)

파이썬을 설치하지 않고도 프로그램을 사용할 수 있도록 프로그램을 EXE 파일로 변환할 수 있습니다.

EXE 파일 변환 방법

  1. PyInstaller 설치:

    • 명령 프롬프트에서 pip install pyinstaller 명령어를 실행하여 설치합니다.
  2. EXE 파일 생성:

    • pyinstaller --onefile convert_hwp_to_pdf.py 명령어를 실행하여 EXE 파일을 생성합니다.
    • 생성된 EXE 파일은 dist 폴더에 위치합니다.
  3. EXE 파일 실행:

    • EXE 파일을 더블 클릭하여 프로그램을 실행합니다.

7. 프로그램 자동 실행 설정 (선택 사항)

프로그램을 컴퓨터 시작 시 자동으로 실행되도록 설정하려면, EXE 파일을 시작 프로그램 폴더에 복사합니다.

  1. 시작 프로그램 폴더 열기:

    • Win + R 키를 눌러 실행 창을 열고, shell:startup을 입력한 후 엔터를 누릅니다.
  2. EXE 파일 복사:

    • 생성된 EXE 파일을 시작 프로그램 폴더에 복사하여 컴퓨터가 시작될 때 자동으로 실행되도록 설정합니다.

생각중인 향후 프로그램 업데이트 내용

1. GUI (그래픽 사용자 인터페이스) 추가

  • 제안: 프로그램에 간단한 GUI를 추가하여 사용자가 감시할 폴더를 쉽게 선택하고 설정을 변경할 수 있도록 할 수 있습니다.
  • 구현 방법: tkinter를 사용하여 간단한 설정 창을 만들 수 있으며, 여기서 폴더 경로를 선택하거나 변환 설정을 조정할 수 있습니다.

2. 변환된 파일 저장 위치 지정

  • 제안: 사용자가 변환된 PDF 파일을 특정 폴더에 저장하도록 선택할 수 있는 기능을 추가할 수 있습니다. 예를 들어, 원본 파일과 동일한 폴더가 아닌, 지정된 폴더로 PDF 파일을 저장하도록 할 수 있습니다.
  • 구현 방법: config.ini 파일에서 변환된 파일의 저장 위치를 설정하도록 추가 옵션을 제공할 수 있습니다.

3. 변환 완료 알림 기능 추가

  • 제안: 파일 변환이 완료되었을 때 사용자에게 알림을 제공하는 기능을 추가할

    수 있습니다. 예를 들어, 변환이 성공적으로 완료되었을 때 작은 팝업 창으로 알려주거나, 변환된 파일 목록을 표시할 수 있습니다.

  • 구현 방법: tkinter의 메시지 박스 또는 시스템 트레이 알림을 사용할 수 있습니다.

4. 변환 로그 관리

  • 제안: 변환 작업이 이루어진 파일들의 로그를 관리하고, 변환 실패나 성공 여부를 기록하여 사용자가 나중에 확인할 수 있도록 할 수 있습니다.
  • 구현 방법: 현재 로그 파일에 기록되는 내용을 날짜별로 관리하거나, 변환된 파일 목록을 별도의 로그 파일로 저장할 수 있습니다.

5. 다중 폴더 감시 기능

  • 제안: 여러 개의 폴더를 동시에 감시하여 각각의 폴더에서 파일이 추가될 때 자동으로 변환 작업이 이루어지도록 할 수 있습니다.
  • 구현 방법: 설정 파일에서 감시할 폴더를 리스트 형식으로 지정하고, 각 폴더를 독립적으로 감시하는 기능을 추가할 수 있습니다.

6. PDF 품질 설정 옵션

  • 제안: PDF로 변환할 때 품질 설정 옵션을 추가하여, 고품질 또는 저품질 PDF 파일을 생성할 수 있도록 할 수 있습니다.
  • 구현 방법: 한글 프로그램에서 제공하는 PDF 저장 옵션을 활용하여, 설정에 따라 다른 품질의 PDF 파일을 생성할 수 있습니다.

7. 자동 업데이트 기능

  • 제안: 프로그램에 버전 관리를 추가하고, 새로운 기능이나 버그 수정이 있을 때 자동으로 업데이트되도록 할 수 있습니다.
  • 구현 방법: 간단한 버전 체크와 업데이트 기능을 스크립트에 추가하거나, GitHub 같은 플랫폼을 통해 업데이트를 관리할 수 있습니다.

8. 변환 지원 파일 형식 확장

  • 제안: 현재 .hwp.hwpx 파일을 지원하지만, 다른 형식의 문서 파일도 PDF로 변환할 수 있도록 지원 범위를 확장할 수 있습니다. 예를 들어, .docx.txt 파일도 추가할 수 있습니다.
  • 구현 방법: 추가 파일 형식을 변환할 수 있는 라이브러리를 연동하여 지원 범위를 넓힐 수 있습니다.

이 프로그램은 파이썬을 설치해보고, Hello, World 정도만 실행해 본 적이 있는 40대 영어 교사가 챗GPT 4.0과 함께 만든 것입니다. 이 문서는 프로그램의 개발 과정과 설치 및 사용법을 한눈에 볼 수 있도록 정리했으며, 이 단계를 따라하면 파이썬을 처음 사용하는 분도 쉽게 프로그램을 설치하고 사용할 수 있을 것입니다. 추가적인 도움이 필요하시면 언제든지 문의해 주세요!

반응형