Releases: itmir913/WordFinderApp
ver.2026.04.26-0315
🔍 학교생활기록부 일괄 점검 프로그램
본 프로그램은 교사가 학교생활기록부를 효율적으로 점검할 수 있도록 돕는 도구입니다. PDF와 Excel(.xlsx) 파일을 지원하며, 발견된 단어를 자동으로 강조하고 북마크를 생성합니다.
🚀 사용자 가이드 (선생님용)
📌 Step 1. 검색 기준 설정
- 검색할 단어들이 나열된 CSV 파일을 준비합니다. (첫 번째 열에 검색할 단어들이 입력되어 있어야 합니다.)
- 프로그램 상단의 [CSV 파일 불러오기] 버튼을 누르거나, 화면에 CSV 파일을 드래그 앤 드롭하여 등록하세요.
📌 Step 2. 검색 대상 파일 추가
- [📁 검색 대상 파일] 탭에서 점검할 학생부 PDF 또는 Excel 파일을 추가합니다.
- [➕ 파일 추가] 버튼을 이용하거나, 리스트 영역으로 파일을 드래그 앤 드롭하여 여러 개를 한 번에 추가할 수 있습니다.
📥 나이스(NEIS)에서 파일 준비하기
- Excel: 나이스(NEIS) ▷ 학급담임 ▷ 학생부 ▷ 학교생활기록부 ▷ 학생부 항목별 조회 ▷ [저장] 버튼 ▷ XLS data
- PDF: 인쇄 ▷ 프린터 선택 ▷ PDF로 저장. 텍스트를 검색할 수 있는 원본 파일만 가능합니다. (※ 이미지 형태의 스캔본 불가능)
📌 Step 3. 처리 시작 및 확인
- 파일이 모두 준비되면 우측 하단의
▶ 처리 시작버튼을 클릭합니다. - 진행 상황과 상세 결과(성공/실패 등)는 [📜 시스템 로그] 탭에서 실시간으로 확인할 수 있습니다.
- 처리 중에는
⛔ 중지버튼을 눌러 작업을 강제로 중단할 수 있습니다.
💡 팁: 리스트에 추가된 파일을 삭제하려면 해당 파일 우측의
✖버튼을 누르거나, **[🗑 전체 비우기]**를 통해 목록을 초기화할 수 있습니다.
📌 Step 4. 결과 파일 활용법
- 점검이 완료되면 원본 파일과 같은 폴더에 **
output_**이 붙은 결과 파일이 생성됩니다. - PDF: 단어에 노란색 하이라이트가 칠해지며, 왼쪽 북마크(목차) 메뉴를 통해 발견 위치로 즉시 이동할 수 있습니다.
- Excel: 가장 오른쪽에 '발견여부'와 '발견된 단어' 컬럼이 추가되며, 해당 행 전체가 노란색으로 강조됩니다.
ℹ️ 프로그램 정보
- 제작자: 운양고등학교 이종환T
- GitHub: 릴리즈 페이지 방문하기
🛠️ 개발 및 기술 정보
📌 기술 스택
- UI:
PyQt6(Frameless 커스텀 디자인) - PDF 처리:
PyMuPDF (fitz)(Quad 방식 하이라이트 및 정밀 검색 플래그 적용) - Excel 처리:
pandas+openpyxl(가상 헤더 처리 및 조건부 서식)
⚖️ 라이선스 (License)
본 프로그램은 배포 버전에 따라 적용되는 라이선스가 다릅니다.
1. 버전별 라이선스 이력
- 초기 릴리즈 ~ ver.2026.04.01-1450: LGPLv3
- ver.2026.04.26-0315 ~ 현재: PolyForm Noncommercial License 1.0.0
2. 현재 적용 라이선스
본 프로그램의 최신 버전은 PolyForm Noncommercial License 1.0.0을 따릅니다.
- 허용: 개인적인 용도, 학교 등 교육기관에서의 비영리적 목적의 사용 및 배포
- 금지: 본 프로그램이나 소스코드를 활용한 모든 종류의 상업적 영리 활동(판매, 유료 서비스 제공, 기업 내 이익 창출 등)은 엄격히 금지
3. 참고 (기존 버전 사용자)
버전 코드 'ver.2026.04.01-1450'까지의 프로그램을 사용 중이신 경우, 해당 버전은 배포 당시 명시된 LGPLv3 라이선스 조건을 따릅니다. 이후 릴리즈된 모든 신규 버전은 PolyForm Noncommercial 라이선스가 적용됩니다.
📦 실행 파일 빌드 방법 (PyInstaller)
아래 명령어를 사용하면 Python 스크립트를 실행 파일로 패키징할 수 있습니다.
pip install -r requirements.txt
pip install pyinstaller
pyinstaller --onedir --windowed --clean --name "WordFinderApp" --add-data "default.csv;." main.py또는, spec 파일을 활용하여 빌드할 수도 있습니다.
pyinstaller --clean WordFinderApp.specCopyright 2026. All rights reserved.
ver.2026.04.01-1450
🔍 학교생활기록부 일괄 점검 프로그램
본 프로그램은 교사가 학교생활기록부를 효율적으로 점검할 수 있도록 돕는 도구입니다. PDF와 Excel(.xlsx) 파일을 지원하며, 발견된 단어를 자동으로 강조하고 북마크를 생성합니다. 모든 처리는 로컬에서만 이루어지며 데이터가 외부로 전송되지 않습니다.
🚀 사용자 가이드 (선생님용)
📌 Step 1. 검색 기준 설정
- 검색할 단어들이 나열된 CSV 파일을 준비합니다. (첫 번째 열에 검색할 단어들이 입력되어 있어야 합니다.)
- 프로그램 상단의 [CSV 파일 불러오기] 버튼을 누르거나, 화면에 CSV 파일을 드래그 앤 드롭하여 등록하세요.
📌 Step 2. 검색 대상 파일 추가
- [📁 검색 대상 파일] 탭에서 점검할 학생부 PDF 또는 Excel 파일을 추가합니다.
- [➕ 파일 추가] 버튼을 이용하거나, 리스트 영역으로 파일을 드래그 앤 드롭하여 여러 개를 한 번에 추가할 수 있습니다.
📥 나이스(NEIS)에서 파일 준비하기
- Excel: 나이스(NEIS) ▷ 학급담임 ▷ 학생부 ▷ 학교생활기록부 ▷ 학생부 항목별 조회 ▷ [저장] 버튼 ▷ XLS data
- PDF: 인쇄 ▷ 프린터 선택 ▷ PDF로 저장. 텍스트를 검색할 수 있는 원본 파일만 가능합니다. (※ 이미지 형태의 스캔본 불가능)
📌 Step 3. 처리 시작 및 확인
- 파일이 모두 준비되면 우측 하단의
▶ 처리 시작버튼을 클릭합니다. - 진행 상황과 상세 결과(성공/실패 등)는 [📜 시스템 로그] 탭에서 실시간으로 확인할 수 있습니다.
- 처리 중에는
⛔ 중지버튼을 눌러 작업을 강제로 중단할 수 있습니다.
💡 팁: 리스트에 추가된 파일을 삭제하려면 해당 파일 우측의
✖버튼을 누르거나, **[🗑 전체 비우기]**를 통해 목록을 초기화할 수 있습니다.
📌 Step 4. 결과 파일 활용법
- 점검이 완료되면 원본 파일과 같은 폴더에 **
output_**이 붙은 결과 파일이 생성됩니다. - PDF: 단어에 노란색 하이라이트가 칠해지며, 왼쪽 북마크(목차) 메뉴를 통해 발견 위치로 즉시 이동할 수 있습니다.
- Excel: 가장 오른쪽에 '발견여부'와 '발견된 단어' 컬럼이 추가되며, 해당 행 전체가 노란색으로 강조됩니다.
⚖️ 라이선스 (License)
본 프로그램은 GNU LESSER GENERAL PUBLIC LICENSE Version 3 (LGPLv3) 하에 배포됩니다.
- 사용 및 배포: 누구나 자유롭게 프로그램을 사용하고 복제하여 배포할 수 있습니다.
- 수정 및 소스 공개: 이 프로그램을 수정하여 배포할 경우, 수정된 소스코드는 LGPLv3에 따라 공개해야 합니다.
- 단, 이 프로그램을 라이브러리 형태로 링크하여 사용하는 별도의 프로그램은 소스코드를 공개할 의무가 없습니다.
- 보증의 부재: 본 프로그램은 유용성을 희망하며 배포되지만, 어떠한 형태의 보증도 제공하지 않습니다.
ver.2026.03.19-1133
🔍 학교생활기록부 일괄 점검 프로그램
본 프로그램은 교사가 학교생활기록부를 효율적으로 점검할 수 있도록 돕는 도구입니다. PDF와 Excel(.xlsx) 파일을 지원하며, 발견된 단어를 자동으로 강조하고 북마크를 생성합니다.
🚀 사용자 가이드 (선생님용)
📌 Step 1. 검색 기준 설정
- 검색할 단어들이 나열된 CSV 파일을 준비합니다. (첫 번째 열에 검색할 단어들이 입력되어 있어야 합니다.)
- 프로그램 상단의 [CSV 파일 불러오기] 버튼을 누르거나, 화면에 CSV 파일을 드래그 앤 드롭하여 등록하세요.
📌 Step 2. 검색 대상 파일 추가
- [📁 검색 대상 파일] 탭에서 점검할 학생부 PDF 또는 Excel 파일을 추가합니다.
- [➕ 파일 추가] 버튼을 이용하거나, 리스트 영역으로 파일을 드래그 앤 드롭하여 여러 개를 한 번에 추가할 수 있습니다.
📥 나이스(NEIS)에서 파일 준비하기
- Excel: 나이스(NEIS) ▷ 학급담임 ▷ 학생부 ▷ 학교생활기록부 ▷ 학생부 항목별 조회 ▷ [저장] 버튼 ▷ XLS data
- PDF: 인쇄 ▷ 프린터 선택 ▷ PDF로 저장. 텍스트를 검색할 수 있는 원본 파일만 가능합니다. (※ 이미지 형태의 스캔본 불가능)
📌 Step 3. 처리 시작 및 확인
- 파일이 모두 준비되면 우측 하단의
▶ 처리 시작버튼을 클릭합니다. - 진행 상황과 상세 결과(성공/실패 등)는 [📜 시스템 로그] 탭에서 실시간으로 확인할 수 있습니다.
- 처리 중에는
⛔ 중지버튼을 눌러 작업을 강제로 중단할 수 있습니다.
💡 팁: 리스트에 추가된 파일을 삭제하려면 해당 파일 우측의
✖버튼을 누르거나, **[🗑 전체 비우기]**를 통해 목록을 초기화할 수 있습니다.
📌 Step 4. 결과 파일 활용법
- 점검이 완료되면 원본 파일과 같은 폴더에 **
output_**이 붙은 결과 파일이 생성됩니다. - PDF: 단어에 노란색 하이라이트가 칠해지며, 왼쪽 북마크(목차) 메뉴를 통해 발견 위치로 즉시 이동할 수 있습니다.
- Excel: 가장 오른쪽에 '발견여부'와 '발견된 단어' 컬럼이 추가되며, 해당 행 전체가 노란색으로 강조됩니다.
⚖️ 라이선스 (License)
본 프로그램은 GNU LESSER GENERAL PUBLIC LICENSE Version 3 (LGPLv3) 하에 배포됩니다.
- 사용 및 배포: 누구나 자유롭게 프로그램을 사용하고 복제하여 배포할 수 있습니다.
- 수정 및 소스 공개: 이 프로그램을 수정하여 배포할 경우, 수정된 소스코드는 LGPLv3에 따라 공개해야 합니다.
- 단, 이 프로그램을 라이브러리 형태로 링크하여 사용하는 별도의 프로그램은 소스코드를 공개할 의무가 없습니다.
- 보증의 부재: 본 프로그램은 유용성을 희망하며 배포되지만, 어떠한 형태의 보증도 제공하지 않습니다.
Ver.2026.03.18
🔍 학교생활기록부 일괄 점검 프로그램 v1.1
본 프로그램은 교사가 학교생활기록부에서 특정 단어를 효율적으로 점검할 수 있도록 돕는 도구입니다. PDF와 Excel 파일을 지원하며, 발견된 단어를 자동으로 강조하고 북마크를 생성합니다.
🚀 사용자 가이드 (선생님용)
1. 프로그램 실행 및 준비
- 검색 단어(CSV) 등록: * 점검할 단어들이 나열된 CSV 파일을 준비합니다. (한 줄에 단어 하나씩 작성)
- 프로그램 상단 '기준 CSV' 영역에 파일을 드래그 앤 드롭하거나 버튼을 통해 등록합니다.
2. 점검 대상 파일 추가
- 점검할 학생부 PDF나 엑셀 파일들을 프로그램 중앙의 테이블 영역으로 끌어다 놓습니다. 여러 파일을 한꺼번에 등록할 수 있습니다.
3. 점검 시작 및 결과 확인
▶ 처리 시작버튼을 클릭하면 점검이 시작됩니다.- 성공(초록색): 원본 파일과 같은 폴더에 **
output_**이 붙은 결과 파일이 생성됩니다. - 실패(빨간색): 오른쪽 '시스템 로그' 탭에서 상세 오류 내용을 확인할 수 있습니다.
4. 결과 파일 활용법
- PDF: 단어에 노란색 하이라이트가 칠해지며, 왼쪽 북마크(목차) 메뉴를 통해 발견 위치로 즉시 이동할 수 있습니다.
- Excel: 가장 오른쪽에 **'발견여부'**와 '발견된 단어' 컬럼이 추가되며, 해당 행 전체가 노란색으로 강조됩니다.
🛠️ 개발 및 기술 정보
📌 기술 스택
- UI:
PyQt6(Frameless 커스텀 디자인) - PDF 처리:
PyMuPDF (fitz)(Quad 방식 하이라이트 및 정밀 검색 플래그 적용) - Excel 처리:
pandas+openpyxl(가상 헤더 처리 및 조건부 서식)
⚖️ 라이선스 (License)
본 프로그램은 GNU LESSER GENERAL PUBLIC LICENSE Version 3 (LGPLv3) 하에 배포됩니다.
- 사용 및 배포: 누구나 자유롭게 프로그램을 사용하고 복제하여 배포할 수 있습니다.
- 수정 및 소스 공개: - 이 프로그램을 수정하여 배포할 경우, 수정된 소스코드는 LGPLv3에 따라 공개해야 합니다.
- 단, 이 프로그램을 라이브러리 형태로 링크하여 사용하는 별도의 프로그램은 소스코드를 공개할 의무가 없습니다.
- 보증의 부재: 본 프로그램은 유용성을 희망하며 배포되지만, 어떠한 형태의 보증도 제공하지 않습니다.
📦 실행 파일 빌드 방법 (PyInstaller)
아래 명령어를 사용하면 Python 스크립트를 실행 파일로 패키징할 수 있습니다.
pip install pyinstaller
pyinstaller --onedir --windowed --clean --name "WordFinderApp" main.pyCopyright 2026. All rights reserved.
Ver.2024.10.13.
PDFWordFinder
PDFWordFinder는 CSV 파일에 있는 단어 목록을 PDF 파일에서 검색하여 각 단어가 포함된 페이지 번호를 알려주는 Python 프로그램이다.
주요 기능
- CSV 파일에서 검색할 단어 목록을 불러옴
- PDF 파일에서 단어를 검색하고 해당 페이지 번호를 출력함
- 손쉬운 그래픽 인터페이스
- 검색한 단어를 형광펜으로 강조(하이라이트)
버전 비교
- PyMuPDF(추천): 큰 파일 크기, 검색된 단어에 노랑색 형광펜을 칠한 PDF 파일까지 생성함
- PyPDF2: 작은 파일 크기, 단어 검사 결과가 담긴 TXT 파일만 생성함
GUI 사용 방법
- 프로그램 실행 후 CSV 파일과 PDF 파일 선택
- 검색이 완료되면 결과 확인
CSV 파일 형식
CSV 파일은 words이라는 열을 포함해야 하며, 검색할 단어 목록이 들어 있어야 합니다.
예시:
words
example1
example2
What's Changed
- After Process Automatically Open PDF files by @itmir913 in #5
- Simplified listing of found words by @itmir913 in #7
Full Changelog: ver.2024-10-11...ver.2024-10-13
Ver.2024.10.11.
PDFWordFinder
PDFWordFinder는 CSV 파일에 있는 단어 목록을 PDF 파일에서 검색하여 각 단어가 포함된 페이지 번호를 알려주는 Python 프로그램이다.
주요 기능
- CSV 파일에서 검색할 단어 목록을 불러옴
- PDF 파일에서 단어를 검색하고 해당 페이지 번호를 출력함
- 손쉬운 그래픽 인터페이스
- 검색한 단어를 형광펜으로 강조(하이라이트)
버전 비교
- PyMuPDF: 큰 파일 크기, 검색된 단어에 노랑색 형광펜을 칠한 PDF 파일까지 생성함
- PyPDF2: 작은 파일 크기, 단어 검사 결과가 담긴 TXT 파일만 생성함
GUI 사용 방법
- 프로그램 실행 후 CSV 파일과 PDF 파일 선택
- 검색이 완료되면 결과 확인
CSV 파일 형식
CSV 파일은 words이라는 열을 포함해야 하며, 검색할 단어 목록이 들어 있어야 합니다.
예시:
words
example1
example2
What's Changed
- Rename python files by @itmir913 in #1
- Change into PDFWordFinder by @itmir913 in #2
- Itmir913 patch 1 by @itmir913 in #3
Full Changelog: ver.2024-10-10...ver.2024-10-11
Ver.2024.10.10.
PDFWordFinder
PDFWordFinder는 CSV 파일에 있는 단어 목록을 PDF 파일에서 검색하여 각 단어가 포함된 페이지 번호를 알려주는 Python 프로그램이다.
주요 기능
- CSV 파일에서 검색할 단어 목록을 불러옴
- PDF 파일에서 단어를 검색하고 해당 페이지 번호를 출력함
- 손쉬운 그래픽 인터페이스
- 검색한 단어를 형광펜으로 강조(하이라이트)
버전 비교
- PyMuPDF: 큰 파일 크기, 검색된 단어에 노랑색 형광펜을 칠한 PDF 파일까지 생성함
- PyPDF2: 작은 파일 크기, 단어 검사 결과가 담긴 TXT 파일만 생성함
GUI 사용 방법
- 프로그램 실행 후 CSV 파일과 PDF 파일 선택
- 검색이 완료되면 결과 확인
CSV 파일 형식
CSV 파일은 words이라는 열을 포함해야 하며, 검색할 단어 목록이 들어 있어야 합니다.
예시:
words
example1
example2


