본문 바로가기
아래아한글 자동화/python+hwp 중급

[HDMI] 빈 문서1.hwpx를 분해해보면

by 일코 2022. 12. 7.

안녕하세요? 일코입니다.

HDMI(Hangul Document Manipulation and Information, 이름 참 잘 지었다!) 시리즈

예전에도 이와 관련한 포스팅을 한 번 올린 적은 있었습니다.

한/글 없이 hwpx 파일의 표를 pd.DataFrame으로 추출하는 방법 (tistory.com)

 

한/글 없이 hwpx 파일의 표를 pd.DataFrame으로 추출하는 방법

안녕하세요? 일상의 코딩, 일코입니다. hwpx 포맷이 만들어진지 벌써 10년도 훌쩍 넘었습니다. 한컴오피스에서는, 데이터 추출이 번거로운 기존의 hwp 포맷 대신 machine-readable한 hwpx 포맷을 사용해

martinii.fun

 

 

솔직히 말ㅆ므드리면

그 뒤로 틈틈이 파이썬의 xml 모듈 문서를 읽어보거나 튜토리얼을 따라해본 적은 있었지만,

막상 다시 hwpx를 조작해보려고 하면

그놈의 네임스페이스 때문에 뭔가 파싱할 때 추가로 꼼수가 필요한 느낌이어서 불편했습니다.

(부끄럽지만 위의 포스팅에서도 네임스페이스를 모조리 무시하고 문자열 메서드로 표의 값들을 추출했어요;)

지금은 갓스택오버플로의 도움을 받아서 문제가 대부분 해결된 상태이기 때문에

매끄럽게 진행할 수 있을 것 같습니다.

 

먼저, 위의 포스팅을 훑어보고 오시기 바랍니다.

가급적 위의 포스팅을 한 번 읽고 와주시면 좋겠습니다. 포스팅을 이해하는 데 큰 도움이 됩니다.

hwp나 hwpx 또는 xlsx 파일도, 껍데기는 압축파일입니다.

아래 과정을 한 번 따라해 보시기 바랍니다.

① 내용이 없는 빈 문서1.hwpx를 하나 생성하고

② 확장자를 zip으로 바꾼 후

③ 하위폴더를 하나 생성하고 압축을 풉니다.

④ 들어가봅니다.

 

hwpx는 아래와 같은 구조로 이루어져 있는 걸 확인할 수 있습니다.

 

이번에 우리가 탐색할 문서는 ./Contents/header.xml 파일입니다.

에디터로 불러와서 조금 내려보면 아래와 같은 부분이 보입니다.

저는 900번 라인 언저리인데, 자동 리포매팅(Ctrl-Alt-L)을 실행해놔서 여러분과 다를 수도 있습니다.

제가 그토록 찾았던 스타일들의 한글이름과 영문이름을 여기서 발견하네요.

 

마지막에 와서야 말씀드리지만,

이번 포스팅 시리즈의 목적지는

저 스타일이름을 엑셀파일에 저장하는 것까지로 할 예정입니다.

 

수작업 없이 파이썬 코드로 전부 구현할 예정이며,

가급적 설명은 꼭 필요한 만큼으로 최소화하고, 코드에 주석을 좀 달아놓겠습니다.

 

그럼 다음 포스팅에서는

hwp 파일을 hwpx로 변환하고 zip으로 이름을 바꾸는 과정까지 보여드리겠습니다.

 

감사합니다.

댓글