순수 Python HWP/HWPX 파서 - JVM 없이 텍스트, 표, 각주, 메모 추출
Project description
HWP-HWPX Parser
순수 Python HWP/HWPX 파서 - JVM 없이 텍스트, 표, 각주, 미주, 메모 추출
특징
- JVM 불필요: 순수 Python 구현, Java 설치 없이 바로 사용
- 경량: 최소 의존성 (
olefile만 필요) - 빠른 시작:
pip install hwp-hwpx-parser로 즉시 사용 - 통합 API: HWP/HWPX 파일을 동일한 인터페이스로 처리
- 풍부한 추출: 텍스트, 표, 각주, 미주, 하이퍼링크, 메모 지원
설치
pip install hwp-hwpx-parser
빠른 시작
from hwp_hwpx_parser import Reader
# 컨텍스트 매니저 사용 (권장)
with Reader("document.hwp") as r:
print(r.text) # 본문 텍스트
print(r.tables) # 표 목록
print(r.get_memos()) # 메모 목록
# HWPX 파일도 동일하게 사용
with Reader("document.hwpx") as r:
print(r.text)
API 레퍼런스
Reader (통합 리더)
from hwp_hwpx_parser import Reader
with Reader("document.hwp") as r:
# 기본 속성
r.text # 본문 텍스트 (str)
r.tables # 표 목록 (List[TableData])
r.file_type # 파일 타입 (FileType.HWP5 또는 FileType.HWPX)
r.is_valid # 유효한 파일인지 (bool)
r.is_encrypted # 암호화 여부 (bool)
# 메서드
r.extract_text() # 텍스트 추출
r.extract_text_with_notes() # 텍스트 + 각주/미주/링크/메모 통합 추출
r.get_tables() # 표 목록
r.get_memos() # 메모 목록
r.get_tables_as_markdown() # 표를 마크다운 형식으로
r.get_tables_as_csv() # 표를 CSV 형식으로
개별 리더
from hwp_hwpx_parser import HWP5Reader, HWPXReader
# HWP 5.0 파일 전용
reader = HWP5Reader("document.hwp")
# HWPX 파일 전용
reader = HWPXReader("document.hwpx")
편의 함수
from hwp_hwpx_parser import read, extract_hwp5, extract_hwpx
# read() - Reader 인스턴스 반환
reader = read("document.hwp")
print(reader.text)
reader.close()
# extract_hwp5() - HWP 텍스트 바로 추출
text = extract_hwp5("document.hwp")
# extract_hwpx() - HWPX 텍스트 바로 추출
text = extract_hwpx("document.hwpx")
데이터 모델
from hwp_hwpx_parser import (
ExtractOptions, # 추출 옵션
TableData, # 표 데이터
TableStyle, # 표 스타일 (INLINE, MARKDOWN, CSV)
NoteData, # 각주/미주 데이터
HyperlinkData, # 하이퍼링크 데이터
MemoData, # 메모 데이터
ExtractResult, # 통합 추출 결과
)
# TableData 사용
table = reader.tables[0]
print(table.rows) # 2D 리스트: [[cell1, cell2], ...]
print(table.row_count) # 행 수
print(table.col_count) # 열 수
print(table.to_markdown()) # 마크다운 변환
print(table.to_csv()) # CSV 변환
# ExtractResult 사용
result = reader.extract_text_with_notes()
print(result.text) # 본문 (각주는 [^1], 미주는 [^e1]로 표시)
print(result.footnotes) # List[NoteData]
print(result.endnotes) # List[NoteData]
print(result.hyperlinks) # List[Tuple[str, str]]
print(result.memos) # List[MemoData]
추출 옵션
from hwp_hwpx_parser import ExtractOptions, TableStyle, ImageMarkerStyle
options = ExtractOptions(
table_style=TableStyle.MARKDOWN, # 표 출력 스타일
table_delimiter=",", # CSV 구분자
image_marker=ImageMarkerStyle.SIMPLE, # 이미지 마커 스타일
paragraph_separator="\n\n", # 문단 구분자
line_separator="\n", # 줄 구분자
include_empty_paragraphs=False, # 빈 문단 포함 여부
)
text = reader.extract_text(options)
지원 기능
| 기능 | HWP | HWPX |
|---|---|---|
| 텍스트 추출 | ✅ | ✅ |
| 표 추출 | ✅ | ✅ |
| 각주 추출 | ✅ | ✅ |
| 미주 추출 | ✅ | ✅ |
| 하이퍼링크 추출 | ✅ | ✅ |
| 메모 추출 | ✅ | ✅ |
| 암호화 파일 감지 | ✅ | ✅ |
문서 편집이 필요하다면
이 패키지는 읽기 전용입니다. 문서 편집(텍스트 수정, 표 조작 등)이 필요하면 hwp-hwpx-editor를 설치하세요:
pip install hwp-hwpx-editor
hwp-hwpx-editor는 이 패키지를 기반으로 Java 라이브러리를 활용한 편집 기능을 제공합니다.
요구사항
- Python: 3.8 이상
- 의존성:
olefile>=0.46(자동 설치) - Java: 불필요
라이선스
Apache License 2.0
관련 프로젝트
- hwp-hwpx-editor - HWP/HWPX 문서 편집 라이브러리
- hwplib - Java HWP 라이브러리 (hwp-hwpx-editor에서 사용)
- hwpxlib - Java HWPX 라이브러리 (hwp-hwpx-editor에서 사용)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hwp_hwpx_parser-0.1.2.tar.gz
(27.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hwp_hwpx_parser-0.1.2.tar.gz.
File metadata
- Download URL: hwp_hwpx_parser-0.1.2.tar.gz
- Upload date:
- Size: 27.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30dfcd74d6cfb0462b52105061a10cc84811979c35e30475f7c1a1aba85d0621
|
|
| MD5 |
b6372f43dae17fd53d07f57411cae2ce
|
|
| BLAKE2b-256 |
2c13365662a5999fcd96f9b32604404fbdcd2a1c8720fbdff929bcb8d19997d2
|
File details
Details for the file hwp_hwpx_parser-0.1.2-py3-none-any.whl.
File metadata
- Download URL: hwp_hwpx_parser-0.1.2-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbc96eafcaae3ea7ac3b9b05aa764970a4232cb4c0ccdc1d10db41f695684210
|
|
| MD5 |
6d0e5ac486dfd67c1f6d42e0c4975c94
|
|
| BLAKE2b-256 |
7227ce8a7e0d6fbb75f85a4f3326abb06b027dab0bca2ac4f4e31a558c658b2d
|