Hwp to PDF 프로그램 개발 목적, 과정, 처리한 오류
프로그램 개발 목적
이 프로그램의 목적은 특정 폴더를 모니터링하여 새로운 .hwp
또는 .hwpx
파일이 추가될 때, 해당 파일을 자동으로 PDF로 변환하는 것입니다. 이를 통해 사용자는 파일 변환 작업을 자동화하고, 업무 효율성을 높일 수 있습니다.
프로그램 개발 과정
폴더 감시 기능 구현:
- 특정 폴더를 지속적으로 모니터링하여 새로운 파일이 생성될 때 이벤트를 감지하는 기능을 구현했습니다.
파일 변환 기능:
.hwp
파일은 직접 PDF로 변환..hwpx
파일은.hwp
파일로 변환 후, PDF로 변환.
임시 파일 관리:
- 변환 후 생성된 임시
.hwp
파일을 안전하게 삭제하는 기능을 추가했습니다.
- 변환 후 생성된 임시
자동 실행 설정:
- 컴퓨터 시작 시 프로그램이 자동으로 실행되도록 설정할 수 있는 기능을 제공했습니다.
처리한 주요 오류 및 해결 방안
파일 인코딩 문제:
- 문제:
config.ini
파일을 읽을 때 인코딩 문제로UnicodeDecodeError
가 발생. - 해결:
configparser
를 사용할 때codecs
모듈을 사용하여 UTF-8 인코딩으로 파일을 읽도록 수정.
- 문제:
파일 접근 오류 (PermissionError):
- 문제: 한글 프로그램에서 파일을 완전히 닫지 않은 상태에서 임시 파일을 삭제하려고 할 때
PermissionError
발생. - 해결: 파일 삭제 전에 잠시 대기(
time.sleep(1)
)하여 파일이 완전히 닫힐 수 있도록 처리.
- 문제: 한글 프로그램에서 파일을 완전히 닫지 않은 상태에서 임시 파일을 삭제하려고 할 때
UnboundLocalError: cannot access local variable 'hwp' where it is not associated with a value:
- 문제:
hwp
변수가 초기화되지 않은 상태에서hwp.Quit()
을 호출하려 할 때 발생. - 해결:
hwp
변수를 함수 시작 시None
으로 초기화하고,finally
블록에서hwp
변수가None
이 아닌 경우에만Quit()
을 호출하도록 수정.
- 문제:
.hwp 파일이 삭제되는 문제:
- 문제:
.hwpx
파일을.hwp
로 변환한 후, 원본.hwp
파일이 삭제되는 문제 발생. - 해결: 임시 파일 경로와 원본 파일 경로를 명확히 구분하여, 임시 파일만 삭제하도록 코드 수정.
- 문제:
EXE 파일 생성 및 배포:
- 프로그램을 다른 사용자에게 배포할 수 있도록
PyInstaller
를 사용하여 EXE 파일을 생성하는 방법을 적용. - 시작 프로그램 폴더에 EXE 파일을 추가하여, 컴퓨터 시작 시 프로그램이 자동 실행되도록 설정.
- 프로그램을 다른 사용자에게 배포할 수 있도록
최종 프로그램 요약
이 프로그램은 설정된 폴더를 모니터링하여 .hwp
또는 .hwpx
파일이 추가될 때, 자동으로 PDF로 변환하는 기능을 수행합니다. 프로그램은 여러 가지 예외 상황을 처리할 수 있도록 안정적으로 설계되었으며, EXE 파일로 변환하여 배포할 수 있습니다.
프로그램 사용전 파이썬 설치 안내
1. 파이썬 설치
파이썬을 사용하기 위해 가장 먼저 해야 할 일은 파이썬을 설치하는 것입니다.
파이썬 설치 방법
파이썬 다운로드:
- Python 공식 웹사이트에 접속하여 최신 버전을 다운로드합니다.
- Windows 사용자의 경우, 설치 프로그램이 제공되며, 다운로드 후 실행할 수 있습니다.
파이썬 설치:
- 설치 중에 "Add Python to PATH" 옵션을 선택하여 체크합니다. 이 옵션을 선택해야 명령 프롬프트에서 파이썬을 쉽게 사용할 수 있습니다.
- "Install Now" 버튼을 클릭하여 기본 경로에 파이썬을 설치합니다.
설치 확인:
- 설치가 완료된 후, 명령 프롬프트를 열고
python --version
또는python -V
명령어를 입력하여 설치가 제대로 되었는지 확인합니다.
- 설치가 완료된 후, 명령 프롬프트를 열고
2. 필수 파이썬 패키지 설치
프로그램이 정상적으로 실행되기 위해 몇 가지 파이썬 패키지를 설치해야 합니다.
패키지 설치 방법
명령 프롬프트 열기:
Win + R
키를 눌러 실행 창을 열고,cmd
를 입력한 후 엔터를 누릅니다.
필수 패키지 설치:
- 명령 프롬프트에서 다음 명령어를 입력하여 필요한 패키지를 설치합니다.
pip install watchdog pywin32 configparser
- 명령 프롬프트에서 다음 명령어를 입력하여 필요한 패키지를 설치합니다.
3. 프로그램 파일 준비
사용자는 프로그램 파일과 설정 파일을 준비해야 합니다.
프로그램 파일:
convert_hwp_to_pdf.py
: 프로그램의 메인 파이썬 스크립트입니다.config.ini
: 프로그램의 설정 파일로, 감시할 폴더 경로를 지정합니다.
폴더 구조:
- 이 두 파일을 같은 디렉토리에 놓습니다.
/프로그램_폴더 ├── 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. 프로그램 실행
이제 프로그램을 실행할 수 있습니다.
명령 프롬프트에서 실행:
- 명령 프롬프트를 열고 프로그램 파일이 있는 디렉토리로 이동합니다.
python convert_hwp_to_pdf.py
명령어를 입력하여 프로그램을 실행합니다.
프로그램이 실행되면:
- 설정된 폴더를 감시하기 시작하고, 새로운
.hwp
또는.hwpx
파일이 추가될 때마다 PDF로 변환합니다.
- 설정된 폴더를 감시하기 시작하고, 새로운
6. 프로그램을 EXE 파일로 변환 (선택 사항)
파이썬을 설치하지 않고도 프로그램을 사용할 수 있도록 프로그램을 EXE 파일로 변환할 수 있습니다.
EXE 파일 변환 방법
PyInstaller 설치:
- 명령 프롬프트에서
pip install pyinstaller
명령어를 실행하여 설치합니다.
- 명령 프롬프트에서
EXE 파일 생성:
pyinstaller --onefile convert_hwp_to_pdf.py
명령어를 실행하여 EXE 파일을 생성합니다.- 생성된 EXE 파일은
dist
폴더에 위치합니다.
EXE 파일 실행:
- EXE 파일을 더블 클릭하여 프로그램을 실행합니다.
7. 프로그램 자동 실행 설정 (선택 사항)
프로그램을 컴퓨터 시작 시 자동으로 실행되도록 설정하려면, EXE 파일을 시작 프로그램 폴더에 복사합니다.
시작 프로그램 폴더 열기:
Win + R
키를 눌러 실행 창을 열고,shell:startup
을 입력한 후 엔터를 누릅니다.
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과 함께 만든 것입니다. 이 문서는 프로그램의 개발 과정과 설치 및 사용법을 한눈에 볼 수 있도록 정리했으며, 이 단계를 따라하면 파이썬을 처음 사용하는 분도 쉽게 프로그램을 설치하고 사용할 수 있을 것입니다. 추가적인 도움이 필요하시면 언제든지 문의해 주세요!
'Professional Development' 카테고리의 다른 글
비폭력대화 연수 노트: 두려워하는 결정권자에게 제안하기 (0) | 2024.08.19 |
---|---|
영미문학읽기 준비를 위한 영어교사 모임 (0) | 2023.11.22 |
Learning curve를 삶에 적용하기 (1) | 2023.11.18 |