rhwp_ole_render.patch — rhwp 코어(rhwp-python 0.8.0 의 vendored external/rhwp, core 0.7.16)에
적용한 OLE 객체 렌더링 수정. 빌드 결과가 ../vendor/rhwp_python-0.8.0-cp310-abi3-manylinux_2_38_x86_64.whl.
- ChemDraw 등 WMF 프리뷰 OLE(화학구조식·수식): 빈 placeholder → 실제 렌더.
\x02OlePres000의 WMF(CF_METAFILEPICT) 를 기존convert_wmf_to_svg로 라우팅. - StaticDib OLE 비트맵(보도자료 배너/로고 등):
CONTENTS스트림의 BMP/PNG/JPEG 를 native image 로 렌더 (대소문자 무시 매칭 + 네이티브 좌표/네임스페이스 수정). - 초대형 HWPX(식품첨가물 기준규격 ~33MB, 의약품각조 ~44MB section.xml):
MAX_XML_SIZE32MB→256MB 로 상향 (압축비 ~8–12x 정상 문서, GB급 폭탄은 여전히 차단).
미수정(알려진 한계): EMF 프리뷰 OLE 일부 — rhwp EMF 컨버터의 레코드 서브셋 한계.
pip download --no-binary :all: rhwp-python==0.8.0 # sdist
tar xzf rhwp_python-0.8.0.tar.gz && cd rhwp_python-0.8.0
patch -p1 < ../rhwp_ole_render.patch # external/rhwp 에 적용
maturin build --release # → target/wheels/*.whl
빌드엔 Rust 툴체인 + 시스템 freetype/fontconfig(개발 심볼릭) 필요. 상세 환경 메모는 프로젝트 노트 참조.