글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_hwpml... · 파일 형식...

122
글 문서 파일 구조 (Hwp Document File Formats) 2010.06.28 글 문서 파일 구조 3.0 / HWPML Hwp Document File Formats 3.0 / HWPML revision 1.2:20141105

Upload: others

Post on 11-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

글 문서 파일 구조(Hwp Document File Formats)

2010.06.28

글 문서 파일 구조 3.0 / HWPMLHwp Document File Formats 3.0 / HWPMLrevision 1.2:20141105

Page 2: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는
Page 3: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

차 례

저작권 ······················································································································ 1

본 문서에 대하여... ································································································· 2

I. 글 3.x 문서 파일 구조 ···················································································· 3

1. 개요 ···························································································································· 5

2. 자료형 설명 ················································································································ 6

3. 전체 구조 ··················································································································· 7

3.1. 파일 인식 정보 ································································································································ 7

3.2. 문서 정보 ········································································································································· 8

3.3. 문서 요약 ········································································································································· 9

3.4. 정보 블록 ········································································································································· 9

3.5. 글꼴 이름 ········································································································································· 9

3.6. 스타일 ············································································································································ 10

3.7. 문단 리스트 ··································································································································· 10

3.8. 추가 정보 블록 ······························································································································ 11

3.9. 추가 정보 블록 #2 ························································································································ 11

4. 문단 자료 구조 ········································································································· 13

4.1. 문단 정보 ······································································································································· 13

4.2. 줄 정보 ·········································································································································· 14

4.3. 글자 모양 정보 ······························································································································ 14

4.4. 글자들 ············································································································································ 14

5. 문단 모양 자료 구조 ································································································ 15

6. 글자 모양 자료 구조 ································································································ 16

Page 4: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

7. 정보 블록 자료 구조(파일 앞 부분) ········································································ 17

7.1. 책갈피 ············································································································································ 17

7.2. 상호참조 ········································································································································ 17

8. 추가 정보 블록 자료 구조 (파일의 끝 부분) ·························································· 18

8.1. 파일에 포함된 그림 정보 ·············································································································· 18

8.2. OLE 정보 ······································································································································· 18

8.3. 하이퍼텍스트(HyperLink) 정보 ······································································································ 18

8.4. 프리젠테이션 설정 정보 ················································································································ 19

8.5. 예약 정보 ······································································································································· 19

8.6. 배경이미지 정보 ···························································································································· 20

8.7. 테이블 확장 (셀 필드 이름) 정보 ································································································· 20

8.8. 누름틀 필드 이름 정보 ·················································································································· 21

9. 추가 정보 블록 #2 자료 구조 ················································································· 22

9.1. 미리보기 이미지 정보 ··················································································································· 22

9.2. 미리보기 텍스트 정보 ··················································································································· 22

10. 특수 문자 자료 구조 ······························································································ 23

10.1. 필드 코드 (5) ······························································································································· 25

10.1.1. 계산식 (글 96에 추가) ······································································································ 26

10.1.2. 문서요약 (글 96에 추가) ·································································································· 26

10.1.3. 개인정보 (글 96에 추가) ·································································································· 26

10.1.4. 만든 날짜 (글 96에 추가) ································································································· 26

10.1.5. 누름틀 ··································································································································· 27

10.2. 책갈피 (6) ···································································································································· 28

10.3. 날짜 형식 (7) ······························································································································· 28

10.4. 날짜 코드 (8) ······························································································································· 28

10.5. 탭 (9) ··········································································································································· 29

10.6. 표/텍스트박스/수식/버튼/하이퍼텍스트 (10) ··············································································· 29

10.7. 그림 (11) ····································································································································· 31

10.8. 선 (14) ········································································································································· 32

10.9. 숨은설명 (15) ······························································································································ 33

10.10. 머리말/꼬리말 (16) ···················································································································· 33

Page 5: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

10.11. 각주/미주 (17) ··························································································································· 33

10.12. 번호 코드 넣기 (18) ·················································································································· 34

10.13. 새 번호로 시작 (번호 바꾸기) (19) ··························································································· 34

10.14. 쪽번호달기 (20) ························································································································· 34

10.15. 홀수쪽시작/감추기 (21) ············································································································· 34

10.16. 메일머지 표시 (22) ···················································································································· 35

10.17. 글자겹침 (23) ····························································································································· 35

10.18. 하이픈 (24) ································································································································ 35

10.19. 제목/표/그림차례 표시 (25) ······································································································· 35

10.20. 찾아보기 표시 (26) ···················································································································· 35

10.21. 개요 모양/번호 (28) ·················································································································· 36

10.22. 상호참조 (29) ····························································································································· 36

10.23. 묶음빈칸 (30) ····························································································································· 37

10.24. 고정폭빈칸 (31) ························································································································· 37

11. 그리기 개체 자료 구조 ·························································································· 38

11.1. 기본 구조 ····································································································································· 38

11.2. 저장되는 개체의 순서 ················································································································· 39

11.3. 개체 정보 ····································································································································· 39

11.3.1. 공통 헤더 ······························································································································ 39

11.3.2. 선 세부 정보 ························································································································ 41

11.3.3. 호 세부 정보 ························································································································ 42

11.3.4. 변형된 호 (회전을 위해 확장된 호) ····················································································· 42

11.3.5. 다각형 세부 정보 ················································································································· 42

11.3.6. 글상자 세부 정보 ················································································································· 42

11.3.7. 곡선 세부 정보 ····················································································································· 43

11.3.8. 변형된 타원 세부 정보 ········································································································· 43

11.3.9. 확장된 다각형 세부 정보 ····································································································· 43

11.3.10. 닫혀진 다각형 세부 정보 ··································································································· 43

12. OLE 개체 자료 구조 ······························································································ 44

12.1. 기본 구조 ····································································································································· 44

12.2. 스토리지 파일의 구조 ················································································································· 44

12.3. 차트 정보 ····································································································································· 45

Page 6: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

II. HWPML 구조 ··································································································· 47

1. 개요 ·························································································································· 49

2. 형식 설명 ················································································································· 49

2.1. 기본 속성 값 형식 설명 ················································································································ 49

2.2. 기본 속성 값 ································································································································· 49

3. 루트 엘리먼트 ·········································································································· 55

4. 헤더 엘리먼트 ·········································································································· 56

4.1. 문서 요약 정보 엘리먼트 ·············································································································· 56

4.2. 문서 설정 정보 엘리먼트 ·············································································································· 58

4.3. 문서 글꼴/스타일 정보 ·················································································································· 59

4.3.1. 문서 내 그림/OLE 정보 ········································································································· 59

4.3.2. 글꼴 정보 ································································································································ 60

4.3.3. 테두리/배경/채우기 정보 ········································································································ 61

4.3.4. 글자 모양 정보 ······················································································································· 64

4.3.5. 탭 정보 ··································································································································· 68

4.3.6. 글머리표 정보 ························································································································· 70

4.3.7. 문단 모양 정보 ······················································································································· 71

4.3.8. 스타일 정보 ···························································································································· 73

4.3.9. 메모 정보 ································································································································ 74

5. 본문 엘리먼트 ·········································································································· 75

5.1. 글자 엘리먼트 ································································································································ 76

5.2. 구역 정의 엘리먼트 ······················································································································· 78

5.2.1. 시작 번호 정보 ······················································································································· 79

5.2.2. 감추기 정보 ···························································································································· 79

5.2.3. 용지 설정 정보 ······················································································································· 80

5.2.4. 각주/미주 모양 정보 ··············································································································· 80

5.2.5. 쪽 테두리/배경 정보 ··············································································································· 82

5.2.6. 바탕쪽 정보 ···························································································································· 83

5.2.7. 확장 바탕쪽 정보 ··················································································································· 84

Page 7: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

5.3. 단 정의 정보 ································································································································· 84

5.4. 표 ··················································································································································· 85

5.5. 그림 ··············································································································································· 90

5.6. 그리기 개체 ··································································································································· 94

5.6.1. 선 ············································································································································ 94

5.6.2. 사각형 ····································································································································· 95

5.6.3. 타원 ········································································································································ 95

5.6.4. 호 ············································································································································ 96

5.6.5. 다각형 ····································································································································· 96

5.6.6. 곡선 ········································································································································ 96

5.6.7. 연결선 ····································································································································· 97

5.7. Unknown Object ·························································································································· 97

5.8. 양식 객체 ······································································································································· 98

5.8.1. 라디오 버튼 ···························································································································· 99

5.8.2. 체크 버튼 ································································································································ 99

5.8.3. 콤보 박스 ································································································································ 99

5.8.4. 에디트 ····································································································································· 99

5.8.5. 리스트 박스 ·························································································································· 100

5.8.6. 스크롤바 ································································································································ 100

5.9. 묶음 객체 ····································································································································· 101

5.10. OLE 객체 ··································································································································· 101

5.11. �글 97 수식 ····························································································································· 101

5.12. 글맵시 ········································································································································ 102

5.13. 필드 시작 ··································································································································· 103

5.14. 필드 끝 ······································································································································ 103

5.15. 책갈피 ········································································································································ 104

5.16. 머리말, 꼬리말 ··························································································································· 104

5.17. 각주, 미주 ·································································································································· 104

5.18. 자동 번호, 새 번호 ···················································································································· 104

5.19. 홀/짝수 조정 ······························································································································ 104

5.20. 감추기 ········································································································································ 105

5.21. 쪽번호 위치 ······························································································································· 105

5.22. 찾아보기 표식 ···························································································································· 106

Page 8: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

5.23. 글자 겹침 ··································································································································· 106

5.24. 덧말 ··········································································································································· 107

5.25. 숨은 설명 ··································································································································· 107

6. 부가 정보 엘리먼트 ································································································ 108

변경 사항 이력 ···································································································· 111

Page 9: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

1

저작권(주)한글과컴퓨터(이하 ‘한컴’)는 문서 형식의 개방성과 표준화에 대하여 적극 찬성합니다. 한컴은 �글 97의 문서 형식을 무상으로 지원한 바 있으며, �글 2002~2010 문서의 XML 형식은 HwpML에 대해서도 문서 형식을 공개한 바 있습니다. 개방형 문서 표준화 및 코드 관련 위원회에도 적극적으로 참여하여 파일 형식의 표준화와 개방성을 위해 노력해 왔습니다. 또한, 한컴오피스에서 기록물 장기보존 표준 포맷인 PDF/A-1의 지원과 ISO 국제 문서 형식인 ODF와 OOXML 파일 형식의 불러오기와 저장하기를 적극적으로 지원하였습니다.

본 문서를 열람하고자 하는 자라면 누구에게나 제공되는 것이며, 본 문서를 열람하는 것 외에 복사, 배포, 게재 및 본 문서에 기재되어 있는 내용을 사용하고자 하는 자는 한글과컴퓨터의 본 저작권을 충분히 인식하고 동의하여야 합니다.

본 문서를 누구나 열람, 복사, 배포, 게재 및 사용을 자유롭게 할 수 있습니다. 다만, 배포는 원 내용이 일체 수정되지 않은 원본 또는 복사본으로 제한됩니다. 원본 및 복사본은 한컴에서 제공하는 스펙의 최신 버전을 포함하고 있어야 합니다.

한컴은 한컴오피스 �글 문서 파일(.hwp) 공개 문서에 따라 얻은 결과물을 기초로 또 다른 독점적, 배타적 권리를 취득하고 이를 (주)한글과컴퓨터를 상대로 행사하고자 하는 자를 상대로는 적극적으로 권리행사를 할 수도 있습니다.

그리고, 본 문서 및 본 문서에 기재된 내용을 참고하여 개발한 결과물에 대한 모든 저작권은 결과물을 개발한 개인 또는 단체에 있을 것입니다. 그러나 반드시 개발 결과물에 “본 제품은 한글과컴퓨터의 �글 문서 파일(.hwp) 공개 문서를 참고하여 개발하였습니다.”라고 제품 내 유저인터페이스, 매뉴얼, 도움말 및 소스에 모두 기재하여야하며 제품이 이러한 구성물이 없을 시에는 존재하는 구성물에만 기재합니다. 한컴은 본 문서 및 본 문서에 기재된 내용을 참고하여 개발한 결과물에 대해서 어떠한 정확성, 진실성도 보증하지 아니합니다.

Page 10: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식

2

본 문서에 대하여...본 문서는 �글 워드 프로세서의 파일 저장 형식 중, �글 2002 이후 제품에서 사용되는 �글 문서 파일 형식 5.0 및 �글 3.x 문서 파일 형식, HWPML에 관하여 설명한다.

본 문서는 먼저 �글 문서 파일 형식 5.0에 관하여 설명한 후, �글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다.

Page 11: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

I. 글 3.x 문서 파일 구조 (Hwp Document File Format 3.x)

Page 12: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

4

Page 13: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

5

1. 개요글의 문서 파일은 사용자가 따로 지정하지 않는 한 HWP를 기본 확장자로 가진다. 문서 파일에 저장되는 내용은, 실제 사용자가 입력한 문서의 내용과 문자 장식 정보뿐만 아니라 문서를 편집할 당시의 글꼴에 대한 정보, 조판에 영향을 주는 설정 사항(용지 종류, 여백 정보 등)도 포함된다.

글 문서 파일 형식 3.x에는 이전 버전과는 달리, 단과 페이지의 구분에 대한 정보가 저장된다. 그러나 이 정보는 글 97에서 저장된 문서가 아닌 경우 존재하지 않을 수 있으므로 부가적인 ‘힌트’의 의미로 사용되어야 하며, 이에 전적으로 의존해서는 안 된다. 완전하고 안전한 페이지 구분은 문서 파일을 읽은 쪽에서 페이지 정리(pagination)를 통해 재구성해야 한다.

글의 문서 파일은 전체 파일 내용을 순차적으로 한번 읽는 것만으로 해석이 가능하다. 따라서 파일에 대한 비순차적인 접근(random access)은 굳이 필요하지 않다.

글은 문서 파일의 압축 기능을 지원한다. 압축된 문서 파일도 기본적인 정보를 저장하는 앞부분은 압축되지 않으며, 실제 압축되는 부분은 사용자가 입력한 데이터 부분이다.

글은 문서 파일의 압축에 FSF(Free Software Foundation)의 gzip을 사용했다. gzip은 범용 압축 프로그램으로서, FSF의 다른 소프트웨어와 마찬가지로, FSF에서 정한 GNU General Public License를 지키면 실행 프로그램과 소스 리스트를 사용 및 변형할 수 있다. 자세한 것은 gzip에 포함되어 있는 문서 파일을 참조하기 바란다.

글에서는 압축되는 부분 전체가 하나의 스트림(stream)으로 압축되므로, 압축된 파일을 읽는 가장 손쉬운 방법은 일단 임시 파일로 압축을 푼 다음 그 파일을 대상으로 압축되지 않은 파일과 동일한 처리 과정을 거치면 된다.

글 문서 파일 형식 3.x은 글 윈도우즈/도스 3.0 버전의 구조를 기본으로 확장되었다. 글 3.0 이후에 변경된 내용은 미리 준비된 예약 영역을 이용했기 때문에, 글 97에서 저장된 문서 파일은 추가된 정보의 일부 손실을 제외하면 글 3.0 이후 버전에서 별도의 변환 과정 없이 읽을 수 있다.

Page 14: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

6

2. 자료형 설명앞으로 계속되는 설명에서 글의 문서 파일에 저장되는 정보는 아래 표에 설명하는 자료형을 이용해 표현한다.

자료형에서 한 바이트는 8비트로 표현되며, 두 바이트 이상의 길이를 가지는 자료형은 최하위 바이트가 가장 먼저 저장되고, 최상위 바이트가 가장 나중에 저장되는 리틀 인디언(little indian) 형태이다.

파일에 저장되는 자료가 배열(array)일 때는 ‘자료형 array[개수]’와 같이 표현한다. 예를 들어 10개의 원소를 갖는 word 배열이면 ‘word array[10]’과 같이 표현한다.

자료형 길이 부호 설명byte 1 부호 없는 한 바이트 (0 - 255)sbyte 1 √ 부호 있는 한 바이트 (-128 - 127)word 2 16비트 컴파일러에서 ‘unsigned int’에 해당sword 2 √ 16비트 컴파일러에서 ‘int’에 해당dword 4 16비트 컴파일러에서 ‘unsigned long’에 해당sdword 4 √ 16비트 컴파일러에서 ‘long’에 해당hchar 2 글의 내부 코드로 표현된 문자echar 1 영문만을 표현하기 위한 문자형 (0-127)kchar 1 상용조합형 한글까지 표현할 수 있는 문자형 (0-255)hunit 2 1/1800인치로 표현된 글 내부 단위 (0 - 65535)shunit 2 √ 1/1800인치로 표현된 글 내부 단위 (-32768 - 32767)hunit32 4 32비트로 표현된 hunitshunit32 4 √ 32비트로 표현된 shunit

표 1 설명에 사용된 자료형

hchar는 글의 내부 코드로 표현된 문자 한 글자를 표현하는 자료형이다. 글의 내부 코드는 한글, 영문, 한자를 비롯해 모든 문자가 2바이트의 일정한 길이를 가진다. 글의 내부 코드에 대한 자세한 사항은 글 설명서를 참조하기 바란다.

echar와 kchar는 표준 C의 자료형인 char와 같은 의미로 생각하면 되는데, 차이점은 echar는 영문 아스키 코드(0-127)만을 표현하고, kchar는 상용조합형 한글도 표현할 수 있다는 점이다. 예를 들어 문서 파일에 저장되는 글꼴 이름을 설명하는 곳에서 ‘kchar array[40]’로 나타나 있는데, 이것은 상용조합형 한글이 포함될 수 있는 최대 길이 40바이트의 문자열이라는 뜻이다.

hunit과 shunit는 문자의 크기, 그림의 크기, 용지 여백 등, 문서를 구성하는 요소들의 크기를 표현하기 위한 자료형이다. 문서 출력 장치의 해상도는 가변적이기 때문에, 크기 정보를 점(도트)의 수로 표현할 수는 없고 일정한 단위를 기준으로 해야 하는데, 글에서는 1/1800인치를 기본 단위로 사용한다. 예를 들어 가로 2인치 세로 1인치짜리 그림의 크기를 hunit 형으로 표현하면 각각 3600, 1800이 된다.

Page 15: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

7

3. 전체 구조글의 문서 파일은 개괄적으로 다음 표와 같은 구조를 가진다.

설명 길이 (바이트) 압축파일 인식 정보 30

문서 정보 128문서 요약 1008

정보 블록 (#0) 가변글꼴 이름 가변 √

스타일 가변 √문단 리스트 가변 √

추가 정보 블록 (#1) 가변 √추가 정보 블록 (#2) 가변

표 2 글 문서 파일의 전체 구조

압축된 문서 파일의 경우 ‘글꼴 이름’부터 ‘추가 정보 블록’까지의 자료가 하나의 압축된 스트림(stream)으로 저장되므로, 문서 파일을 읽는 쪽에서는 ‘문서 정보’ 항목의 ‘압축’ 플래그를 살펴보고 압축된 파일이면 압축을 풀어서 처리해야 한다. 이후의 설명에서는 압축이 풀린 상태의 파일을 기준으로 한다.

3.1. 파일 인식 정보글의 문서 파일이라는 것을 나타내기 위해 파일의 가장 첫 부분 30바이트는 인식 정보가 저장된다. 이 정보는 다음과 같은 내용을 가진다.

§ 문자열: "HWP Document File V3.00 \x1a\1\2\3\4\5"

§ 덤프: 48 57 50 20 44 6F 63 75 6D 65 6E 74 20 46 69

6C 65 20 56 33 2E 30 30 20 1A 01 02 03 04 05

Page 16: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

8

3.2. 문서 정보

오프셋 자료형 의미 설명0 word 커서 줄 문서를 저장할 당시 커서가 위치한 문단 번호2 word 커서 칸 문서를 저장할 당시 커서가 위치한 문단 칸4 byte 용지 종류 * 용지 종류 표 참조

편집 용지 정보

5 byte 용지 방향 0 = 보통, 1 = 넓게6 hunit 용지 길이8 hunit 용지 너비10 hunit 위쪽 여백12 hunit 아래쪽 여백14 hunit 왼쪽 여백16 hunit 오른쪽 여백18 hunit 머리말 길이20 hunit 꼬리말 길이22 hunit 제본 여백24 dword 문서 보호 1 = 보호된 문서 (편집 불가), 0 = 일반 문서28 word 예약 1 = HWP 외부에서 만들어진 문서(컨버터가 만든문서)

bit 처리, 외부문서의 경우 realign.30 byte 쪽번호 연결 1 = 연결, 0 = 새로 시작 (연결 인쇄에서 사용됨)31 byte 각주번호 연결 1 = 연결, 0 = 새로 시작 (연결 인쇄에서 사용됨)32 kchar array[40] 연결 인쇄 파일 연결 인쇄할 파일의 이름72 kchar array[24] 덧붙이는 말 문서 파일에 대한 부가 설명96 word 암호 여부 0 = 보통 파일, 이외 = 암호 걸린 파일98 word 시작페이지 번호100 word array[2] 각주 옵션 각주시작번호, 예약(각주개수)104 hunit 각주 옵션 각주 분리선과 본문 사이의 간격106 hunit 각주 옵션 각주와 본문 사이의 간격108 hunit 각주 옵션 각주와 각주 사이의 간격110 echar 각주 옵션 ')' = 각주 번호에 ')'를 붙임, 0=안 붙임111 byte 각주 옵션 각주 분리선 너비.

0=5cm, 1=본문의 1/3, 2=단너비, 3=없음112 hunit array[4] 테두리 간격 쪽 테두리와 본문 간격 (왼쪽,오른쪽,위,아래)120 word 테두리 종류 쪽 테두리 선의 종류. 0 = 없음, 이외 = 종류122 byte 빈줄감춤 0 이외 = on123 byte 틀옮김 0 이외 = on124 byte 압축 0 = 압축되지 않은 파일, 이외 = 압축된 파일125 byte sub revision 언제나 1 (0은 글3.0에서 만든파일)126 word 정보 블록 길이 정보 블록의 길이 (바이트 단위)

전체 길이 128

표 3 문서 정보

번호 종류0 사용자 정의1 프린트 802 프린트 1323 A44 레터5 B56 B47 리갈8 A3

표 4 용지 종류

Page 17: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

9

3.3. 문서 요약글 메뉴의 문서-문서정보-문서요약에서 입력한 내용이 저장된다.

오프셋 자료형 길이 (바이트) 의미0 hchar array[56] 112 제목

112 hchar array[56] 112 주제224 hchar array[56] 112 지은이336 hchar array[56] 112 날짜448 hchar array[2][56] 112×2 키워드672 hchar array[3][56] 112×3 기타

전체 길이 1008

표 5 문서 요약

3.4. 정보 블록정보 블록은 아래와 같은 구조의 자료가 필요한 만큼 연속된다.

§ 정보 블록: ID (2 바이트) → 길이 (2 바이트) → 내용 (n 바이트)

오프셋 자료형 길이 (바이트) 의미0 word 2 정보 블록 ID2 word 2 정보 블록의 길이 (n)4 byte array[n] n 정보 블록 내용

전체 길이 가변 4 + n 바이트

표 6 정보 블록

정보 블록은 아예 존재하지 않거나, 여러 개의 정보 블록이 연속해 존재할 수 있다. 정보 블록 전체의 길이는 문서 정보의 ‘정보 블록 길이’ 항목에 바이트 단위로 저장된다.

정보 블록은 파일의 앞 부분 고정된 위치에 저장되며, 압축에서 제외되는 영역이기 때문에 파일 전체를 읽지 않고도 쉽게 읽어낼 필요가 있는 정보를 저장하는 목적으로 사용된다.

글에서 정보 블록에 저장하는 내용은 [책갈피]와 [상호참조]가 있다. 더 자세한 내용은 ‘정보 블록 자료 구조’를 참조하기 바란다.

3.5. 글꼴 이름글 문서 파일에는 문서를 편집할 당시의 시스템에 등록되어 있는 글꼴의 이름들이 함께 저장된다. 문서 중간의 글자 모양에서 특정한 글꼴을 참조할 때는 글꼴 이름의 인덱스(index)를 이용한다.

글꼴 이름은 처음 word 형으로 글꼴 이름의 개수가 나오며, 그 개수만큼 kchar 형으로 40바이트 길이의 문자열이 반복된다. 이러한 형태가 각 언어별로 7번 반복되면 글꼴 이름 정보가 끝난다.

한글 word nfonts, kchar fontnames[nfonts][40];영문 word nfonts, kchar fontnames[nfonts][40];한자 word nfonts, kchar fontnames[nfonts][40];일어 word nfonts, kchar fontnames[nfonts][40];기타 word nfonts, kchar fontnames[nfonts][40];기호 word nfonts, kchar fontnames[nfonts][40];사용자 word nfonts, kchar fontnames[nfonts][40];

Page 18: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

10

3.6. 스타일글 문서 파일에는 사용자가 정의한 스타일 정보가 함께 저장된다. 처음 word 형으로 스타일의 개수가 나오며, 개수만큼 스타일 정보가 반복된다.

§ 스타일:word nstyles, { 스타일 정보 }×nstyles

오프셋 자료형 길이 (바이트) 의미0 kchar array[20] 20 스타일 이름20 {글자 모양} 31 ‘글자 모양 자료 구조’ 참조51 {문단 모양} 187 ‘문단 모양 자료 구조’ 참조

전체 길이 238

표 7 스타일 정보

3.7. 문단 리스트스타일 정보가 끝나면 사용자가 입력한 문단의 내용이 저장된다. 문단들은 사용자가 입력한 순서대로 저장된다. 문단 리스트는 이처럼 순서대로 저장된 일련의 문단들을 뜻한다.

글에서 모든 문단의 끝은 hchar로 표현된 특수 문자 13번(CR)으로 끝난다. 따라서 문단의 길이는 적어도 1 이상이 되는데, 문단의 길이가 0인 문단은 빈(null) 문단으로서, 문단 리스트의 끝을 나타내기 위해 사용된다.

표 등이 없는 단순한 문서 파일의 경우, 문단 리스트는 하나만 존재하지만, 표 등을 사용했을 때는 표의 각 셀이 하나씩의 문단 리스트를 가지게 되므로, 이러한 문서 파일에서는 중첩된 여러 개의 문단 리스트가 저장된다. 다음 예제를 참조하기 바란다.

문서 1

첫 번째 문단

두 번째 문단

세 번째 문단

{문단 리스트 시작} 첫 번째 문단 → 두 번째 문단 → 세 번째 문단 → 빈 문단 {문단 리스트 끝}

문서 1의 문단 리스트 구조

Page 19: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

11

문서 2

첫 번째 문단

두 번째 문단셀1¶셀1의 문단¶

셀2¶셀2의 문단¶

셀3¶셀3의 문단¶

셀4¶셀4의 문단¶

세 번째 문단

{문단 리스트 시작} 첫 번째 문단 → 두 번째 {표 시작} {문단 리스트 시작} 셀1 → 셀1의 문단 → 빈 문단 {문단 리스트 끝} {문단 리스트 시작} 셀2 → 셀2의 문단 → 빈 문단 {문단 리스트 끝} {문단 리스트 시작} 셀3 → 셀3의 문단 → 빈 문단 {문단 리스트 끝} {문단 리스트 시작} 셀4 → 셀4의 문단 → 빈 문단 {문단 리스트 끝} {표 끝}문단 → 세 번째 문단 → 빈 문단 {문단 리스트 끝}

문서 2의 문단 리스트 구조

3.8. 추가 정보 블록추가 정보 블록은 부가적인 정보를 저장하기 위해 사용되며, 압축되는 영역이다. 아래와 같은 구조의 자료가 필요한만큼 연속된다.

§ 추가 정보 블록: ID (4 바이트) → 길이(4 바이트) → 내용 (n 바이트)

오프셋 자료형 길이 (바이트) 의미0 dword 4 추가 정보 블록 ID4 dword 4 추가 정보 블록의 길이 (n)8 byte array[n] n 추가 정보 블록 내용

전체 길이 가변 8 + n 바이트

표 8 추가 정보 블록

추가 정보 블록은 아예 존재하지 않거나, 여러 개의 추가 정보 블록이 연속해 존재할 수 있다. 추가 정보 블록이 존재할 경우, 가장 마지막 추가 정보 블록은 8바이트의 연속된 0으로 나타낸다.

글에서 추가 정보 블록에 저장하는 내용은 OLE, 파일에 포함된 그림(embedded image), 하이퍼텍스트, 프리젠테이션 설정 정보가 있다. 더 자세한 내용은 ‘추가 정보 블록 자료 구조’를 참조하기 바란다.

3.9. 추가 정보 블록 #2추가 정보 블록 #2는 글 96에 추가된 영역이다. 부가적인 정보를 저장하기 위해 사용되며, 압축되지 않는 영역이다.

§ 추가 정보 블록 #2: ID (4 바이트) → 길이(4 바이트) → 내용 (n 바이트)

Page 20: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

12

오프셋 자료형 길이 (바이트) 의미0 dword 4 추가 정보 블록 #2 ID4 dword 4 추가 정보 블록 #2의 길이 (n)8 byte array[n] n 추가 정보 블록 #2 내용

전체 길이 가변 8 + n 바이트

표 9 추가 정보 블록 #2

추가 정보 블록 #2는 아예 존재하지 않거나, 여러 개의 추가 정보 블록 #2가 연속해 존재할 수 있다. 추가 정보 블록 #2가 존재할 경우, 마지막은 ID 0x80000000으로 표현한다. 따라서 다음과 같은 내용의 8 바이트 값으로 나타낸다. 마지막ID 뒤의 size가 0이 아닐 경우 비압축 영역의 크기를 나타낸다.

마지막 ID SIZE 0x00 0x00 0x00 0x80 0x00 0x00 0x00 0x00

표 10 추가 정보 블록 ID 예

글에서 추가 정보 블록 #2에 저장하는 내용은 [문서 파일 미리 보기]에 관련된 정보이다. 더 자세한 내용은 ‘추가 정보 블록 #2 자료 구조’를 참조하기 바란다.

Page 21: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

13

4. 문단 자료 구조하나의 문단은 문단 전체에 대한 기본 속성을 나타내는 ① 문단 정보와, 문단 안의 각 줄에 대한 정보를 나타내는 ② 줄 정보, 문단 안의 각 글자들이 가지고 있는 ③ 글자 모양 정보, 문단의 내용인 ④ 글자들로 구성되어 있다.

4.1. 문단 정보

오프셋 자료형 의미 설명0 byte 앞 문단 모양* 0 = 새 문단 모양이 저장됨

이외 = 앞 문단 모양을 따라감1 word 글자 수 0 = 빈 문단 (문단 리스트의 끝)

이외 = 문단 내용의 글자 수 (hchar 단위)3 word 줄 수 문단의 줄 수5 byte 글자 모양 포함* 0 = 모든 글자가 대표 글자 모양을 따라감

이외 = 각 글자에 대한 모양이 별도로 저장됨

6 byte 기타 플래그

bit 0 = 단 나눔bit 1 = 페이지 나눔bit 2 = 조판 나눔bit 3 = 블록 보호 시작bit 4 = 블록 보호 중간bit 5 = 블록 보호 끝bit 6 = 외톨이줄 보호bit 7 = 예약

7 dword 특수 문자 플래그 각 비트가 0-31 사이의 특수 문자 존재 여부를 표현

11 byte 스타일 문단의 스타일 인덱스12 {글자 모양} 대표 글자 모양 ‘글자 모양 포함*’이 0일 때 사용될 글자 모양43 {문단 모양} 문단 모양 ‘앞 문단 모양*’이 0일 때만 저장됨

전체 길이 가변 43 또는 230 바이트

표 11 문단 정보

문단 정보의 ‘앞 문단 모양’ 항목이 0이 아닐 때는 문단 모양 정보가 따로 저장되지 않고 앞 문단의 모양을 따라간다. 일반적으로 한번 지정된 문단 모양은 좀처럼 바뀌지 않는다는 점을 감안해, 중복된 정보의 저장을 줄여 파일 크기를 줄이기 위한 방법이다. 문단 리스트의 첫 번째 문단은 앞 문단이 존재하지 않기 때문에, ‘앞 문단 모양’ 항목이 늘 0이다.

비슷한 방식으로, 각 글자에 대한 모양도 문단 전체의 글자가 모두 동일한 모양일 때는 ‘대표 글자 모양’ 항목에 글자 모양이 한 번만 저장되며, 각 글자에 대한 별도의 글자 모양 정보는 저장되지 않는다. 만약 ‘글자 모양 포함’ 항목이 0이 아닐 때는 ‘대표 글자 모양’ 항목이 문서 파일에 저장은 되지만 실제 사용되지는 않는다.

‘문단 모양’ 항목은 ‘앞 문단 모양’ 항목이 0일 때만 저장되며, 이외의 경우에는 생략되므로, 글 문서 파일을 읽는 쪽에서는 문단 정보를 읽을 때 반드시 ‘앞 문단 모양’ 항목을 확인해야 한다. ‘문단 모양’ 항목의 자료 구조는 ‘문단 모양 자료 구조’를 참조하기 바란다.

‘스타일’은 그 문단이 어떤 스타일을 가리키고 있는지 나타낸다. 이 값은 문서 파일의 앞부분에 저장된 스타일 정보에 대한 인덱스이다.

Page 22: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

14

4.2. 줄 정보아래 표와 같은 {줄 정보×줄 수}만큼 문단 내의 각 줄에 대한 정보가 저장된다.

오프셋 자료형 의미 설명0 word 줄의 시작 위치 문단 내용에서 줄이 시작하는 위치 (hchar 단위 오프셋)2 hunit 공백 보정값 보정을 위해 공백 문자의 폭에 더해줄 값4 hunit 줄의 높이 줄에서 가장 큰 글자의 높이6 byte array[6] 예약

12 word 단/페이지 구분

이 줄이 단/페이지의 경계인지 여부 bit 0 = 페이지 경계 bit 1 = 단 경계 bit 2-14 = 예약 bit 15 = 1일 때만 단/페이지 구분 정보가 유효하다.

전체 길이 14

표 12 줄 정보

4.3. 글자 모양 정보문단 내용의 글자 중에서 하나라도 다른 모양을 가진 것이 있으면, 모든 글자에 대한 글자 모양 정보가 저장된다. 그러나 이 경우에도 앞 글자와 동일한 모양을 가진 글자에 대해서는 앞 글자와 동일하다는 뜻의 1 바이트짜리 플래그 하나만 저장된다.

따라서 실제 문서 파일에 저장되는 글자 모양 정보는 다음과 같은 구조를 가진다.

§ { byte flag, {글자 모양} }×글자 수

flag이 1이면 앞 글자 모양을 따라가며, 글자 모양은 저장되지 않는다. flag이 1 이외이면 뒤따라 글자 모양이 저장된다. 글자 모양의 자료 구조는 아래의 ‘글자 모양 자료 구조’를 참조하기 바란다.

4.4. 글자들글자 모양 정보에 이어서 실제 문단의 내용인 글자들이 저장된다. 각 글자는 hchar로 표현되며, 문단 정보의 ‘글자 수’ 항목이 나타내는 개수만큼의 hchar 문자가 저장된다. 문단의 마지막 문자는 늘 hchar로 표현된 특수 문자 13번(CR)이다.

Page 23: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

15

5. 문단 모양 자료 구조오프셋 자료형 의미 설명

0 hunit 왼쪽 여백2 hunit 오른쪽 여백4 shunit 들여 쓰기6 hunit 줄 간격 MSB가 1이면 절대 간격, 이외는 퍼센트 단위8 hunit 문단 아래 간격10 byte 낱말 간격 퍼센트 단위11 byte 정렬 방식 0 - 7, 도스 버전의 ‘문단모양-정렬방식’ 순서.12 {탭 설정} array[40] 탭 설정 최대 40개까지의 {탭 설정} 정보 (* 아래 설명 참조)172 {단정의} 단 정의 다단에 대한 정보 (** 아래 설명 참조)180 byte 음영 비율 문단 테두리 음영 비율, 퍼센트 단위181 byte 문단 테두리 0 = 문단 테두리 없음, 1 = 문단 테두리 있음182 byte 선 연결 0 = 위/아래 문단과 테두리 선 연결하지 않음

1 = 위/아래 문단과 테두리 선 연결183 hunit 문단 위 간격185 byte array[2] 예약

전체 길이 187

표 13 문단 모양

오프셋 자료형 의미 설명0 byte 종류 0 ~ 3 (왼쪽, 오른쪽, 가운데, 소수점 탭)1 byte 점 끌기 여부2 hunit 탭 위치

전체 길이 4

표 14 탭 설정탭 설정이 하나라도 존재하면 기본 탭 정보는 설정되지 않는다.

오프셋 자료형 의미 설명0 byte 단 수1 byte 단 구분선 0-4. {조판,다단,단구분선, 메뉴 순서 (도스 버전 기준)}2 hunit 단 간격4 byte array[4] 예약

전체 길이 8

표 15 단 정의

Page 24: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

16

6. 글자 모양 자료 구조오프셋 자료형 의미 설명

0 hunit 크기 글자의 크기2 byte array[7] 글꼴 각 언어별 글꼴 인덱스(표 34 참조)9 byte array[7] 장평 각 언어별 장평 비율, 50% ~ 200%(표 34 참조)16 sbyte array[7] 자간 각 언어별 자간 비율, -50% ~ 50%(표 34 참조)23 byte 음영색 0 ~ 7, 메뉴 순서 대로 *24 byte 글자색 0 ~ 7, 메뉴 순서 대로 *25 byte 음영 비율 0% ~ 100%

26 byte 속성

bit 0 = 이탤릭bit 1 = 진하게bit 2 = 밑줄bit 3 = 외곽선bit 4 = 그림자bit 5 = 위첨자bit 6 = 아래첨자bit 7 = 글꼴에 어울리는 빈 칸

27 byte array[4] 예약전체 길이 31

표 16 글자 모양

글자색/음영색 순서 { 검정=0, 파랑, 초록, 청록, 빨강, 자주, 노랑, 흰색=7 }

Hwp2.0 Format은 Language type이 5개씩이어서 글자모양 Structure크기는 25byte였음.

Page 25: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

17

7. 정보 블록 자료 구조(파일 앞 부분)

7.1. 책갈피정보 블록에는 문서에 존재하는 모든 책갈피의 리스트가 저장된다. (* 컨트롤 코드 0x6 참조)

오프셋 자료형 길이 (바이트) 의미0 word 2 1 = 책갈피 정보 블록 ID2 word 2 38 x n = 전체 책갈피의 길이4 hchar array[16] 32 책갈피 이름36 word 2 책갈피 종류38 dword 4 예약

전체 길이 가변 4 + 38 x n 바이트

표 17 책갈피 정보 블록

7.2. 상호참조정보 블록에는 문서에 존재하는 모든 상호참조의 리스트가 저장된다. (*컨트롤 코드 29 참조)

오프셋 자료형 길이 (바이트) 의미0 word 2 2 = 상호참조 정보 블록 ID2 word 2 45 x n = 전체상호참조 정보의 길이4 hchar array[37] 74 상호참조 이름78 sdword 4 예약82 sdword 4 상호참조 종류

전체 길이 가변 4 + 45 x n 바이트

표 18 상호참조 정보 블록

Page 26: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

18

8. 추가 정보 블록 자료 구조 (파일의 끝 부분)

8.1. 파일에 포함된 그림 정보파일에 포함된 그림(embedded image)은 특수 문자의 그림 코드에는 이름만 존재하며, 실제 이미지 데이터는 추가 정보 블록에 저장된다. ( (ID 길이 데이타) x N )

오프셋 자료형 길이 (바이트) 의미0 dword 4 1 = 파일에 포함된 그림 정보 ID4 dword 4 32 + 그림 내용 길이 (n)8 echar array[16] 16 이름24 echar array[16] 16 포맷40 byte array[n] n 그림 내용

전체 길이 가변 40 + n 바이트

표 19 파일에 포함된 그림 정보

8.2. OLE 정보문서에 존재하는 OLE 개체들은 특수 문자의 그림 코드에는 이름만 존재하며, 실제 데이터는 스토리지 파일(storage file) 형태로 추가 정보 블록에 저장된다. 자세한 것은 ‘OLE 개체 자료 구조’를 참조하기 바란다.

오프셋 자료형 길이 (바이트) 의미0 dword 4 2 = OLE 정보 ID4 dword 4 OLE 정보 길이 (n)8 byte array[n] n OLE 정보 내용

전체 길이 가변 8 + n 바이트

표 20 OLE 정보

8.3. 하이퍼텍스트(HyperLink) 정보

오프셋 자료형 길이 (바이트) 의미0 dword 4 3 = 하이퍼텍스트 정보 ID4 dword 4 617 x n = 하이퍼텍스트 정보 길이8 kchar array[256] 건너뛀 파일 이름 현재 파일의 책갈피라면 "\0"

264 hchar array[16] 건너뛀 책갈피 ‘[문서의 처음]’은 실제 존재하지는 않지만, 사용되는 책갈피 이름

296 byte array[325] 매크로 도스용에서 실행할 매크로621 byte 종류 0,1 = 글, 2 = HTML/ETC622 byte array[3] 예약

전체 길이 가변 8 + 617 x n 바이트

표 21 하이퍼텍스트 정보

본문에 포함된 텍스트 박스의 옵션(offset 14)에 하이퍼텍스트 여부(bit 4)가 켜져 있을 때, 텍스트 박스와 같은 순서로 하이퍼텍스트 정보(길이 = 617 x n)가 저장된다. 문서내에서는 책갈피(0x6)를 참조해서 Jump한다.

Page 27: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

19

8.4. 프리젠테이션 설정 정보프리젠테이션 설정 정보는 앞 부분의 약간의 부가 정보를 제외하면, 그리기 개체의 속성 정보와 동일한 내용이 저장된다. 속성에 비트맵 패턴이 삽입 파일로 지정된 경우에는 실제 그림 파일의 내용이 연달아 저장된다. 따라서 속성에 따라 다음과 같은 두 가지 형식 중 하나로 저장된다.

§ 형식 #1: 프리젠테이션 설정 정보 (406 바이트)

§ 형식 #2: 프리젠테이션 설정 정보 (406 바이트) → 그림 파일 길이 (4 바이트) → 그림 파일 내용 (n 바이트)

오프셋 자료형 길이 (바이트) 의미0 dword 4 4 = 프리젠테이션 설정 정보 ID4 dword 4 398 + n = 프리젠테이션 설정 정보 길이8 sdword 4 미리 정의된 set 번호, -1이면 사용자 정의12 hunit32 4 선 굵기16 dword 4 선 색깔 (0 - 7, 글자 모양의 글자색 순서)20 dword 4 bit 0 = 검은색 글자를 흰색으로 할 것인지 여부

bit 1-31 = 예약24 {기본 속성} 44 그리기 개체의 ‘기본 속성’ 설명 참조68 {회전 속성} 32 그리기 개체의 ‘회전 속성’ 설명 참조100 {그라데이션 속성} 28 그리기 개체의 ‘그라데이션 속성’ 설명 참조128 {비트맵 패턴 속성} 278 그리기 개체의 ‘비트맵 패턴 속성’ 설명 참조

전체 길이 406

표 22 프리젠테이션 설정 정보

8.5. 예약 정보

오프셋 자료형 길이 (바이트) 의미0 dword 4 5 = 예약 정보 ID

전체 길이 4

표 23 예약 정보

Page 28: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

20

8.6. 배경이미지 정보

오프셋 자료형 길이 (바이트) 의미0 dword 4 6 = 배경이미지 정보 ID4 dword 4 len = 크기8 dword 4 1 = 무조건12 dword 4 Tag16 dword 4 brightness 그림 밝기20 dword 4 contrast 그림 명암24 dword 4 effect 그림 효과28 dword 4 isPrint 프린트 시 반영할지32 char array[256] 256 picname 이미지 파일명288 dword 4 pictype 이미지 type 2 : 삽입그림 0 : 연결그림292 dword 4 color = 0x10000000296 dword 4 display option 0 : 바둑판 1 : 가운데 3 : 쪽 크기로300 dword 4 page option 0 : 양쪽 4 : 홀수 쪽 3 : 짝수 쪽304 dword array[2] 8 sx, sy312 dword array[2] 8 width, height 가로세로 크기320 dword array[2] 8 reserved328 dword 4 n = 삽입그림 크기332 byte n 삽입된 이미지 데이터

전체 길이 가변 332 + n 바이트

표 24 배경이미지 정보

8.7. 테이블 확장 (셀 필드 이름) 정보

오프셋 자료형 길이 (바이트) 의미0 dword 4 0x100 = 테이블 셀에 대한 필드 이름 정보 ID4 dword 4 n = 테이블 셀에 대한 필드 이름 정보 길이8 word 2 셀의 갯수10 word 2 테이블ID12 dword 4 필드 이름 리스트 길이

16 byte array[n] n테이블 셀에 대한 필드 이름 리스트 내용.아래 필드 길이와 이름이 복수개 반복.(표 31 참조)

전체 길이 가변 16 + n 바이트

표 25 테이블 셀에 대한 필드 이름 정보 리스트

오프셋 자료형 길이 (바이트) 의미0 word 2 n‘ = 필드 이름 길이

(셀에 필드 이름이 없는 경우에는 0)2 byte array[n‘] n‘ 필드 이름 내용

전체 길이 가변 2 + n‘ 바이트

표 26 테이블 셀에 대한 필드 이름 정보

Page 29: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

21

8.8. 누름틀 필드 이름 정보추가 정보 블록에 저장된 누름틀 필드 이름 리스트내의 각 필드 이름이 문단 내 어느 누름틀과 맵핑되는지는 누름틀 필드 이름 정보의 필드 번호와 누름틀의 바이너리 데이터(32바이트) 중 5,6번째 바이트를 이용한다.

누름틀의 바이너리 데이터 중 5,6번째 바이트 값은 필드 이름을 수정하거나 하면 새로운 값으로 대체되므로 연속된 순서값은 아니다. 그러나 문서를 마치고 새로 여는 경우에는 문서내 누름틀의 필드 번호를 1부터 끝번호까지 연속된 값으로 리셋된다.

누름틀 필드 번호와 필드 이름 길이는 각각 word이므로 문서내 삽입 가능한 누름틀 필드의 갯수 및 필드 이름의 길이는 최대 2의 16승이다.

오프셋 자료형 길이 (바이트) 의미0 dword 4 0x101 = 누름틀 필드 이름 정보 ID4 dword 4 n = 누름틀 필드 이름 리스트 정보 길이

8 byte array[n] n누름틀 필드 이름 리스트 내용.(아래 필드 번호, 길이, 이름이 복수개 반복.(표 33 참조)

전체 길이 가변 8 + n 바이트

표 27 누름틀 필드 이름 리스트 정보

오프셋 자료형 길이 (바이트) 의미0 word 2 누름틀 필드 번호2 word 2 n' = 누름틀 필드 이름 길이2 byte array[n‘] n' 누름틀 필드 이름

전체 길이 가변 4 + n' 바이트

표 28 누름틀 필드 이름 정보

Page 30: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

22

9. 추가 정보 블록 #2 자료 구조

9.1. 미리보기 이미지 정보

오프셋 자료형 길이 (바이트) 의미0 dword 4 0x80000001 = 미리보기 이미지 정보 ID4 dword 4 n = 이미지 내용 길이8 byte array[n] n 이미지 내용 (BMP 파일 형식)

전체 길이 가변 8 + n 바이트

표 29 미리보기 이미지 정보

9.2. 미리보기 텍스트 정보

오프셋 자료형 길이 (바이트) 의미0 dword 4 0x80000002 = 미리보기 텍스트 정보 ID4 dword 4 n = 텍스트 내용 길이8 byte array[n] n 텍스트 내용 (hchar 형식)

전체 길이 가변 8 + n 바이트

표 30 미리보기 텍스트 정보

Page 31: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

23

10. 특수 문자 자료 구조문단 내용 중에 코드가 0-31인 문자들은 특수 용도로 사용된다. 이미 13번 문자는 문단 내용의 끝 식별 기호로 사용된다는 것은 설명한 바 있다. 이외의 특수 문자들은 표나 그림 등, 일반 문자로 표현할 수 없는 문서 장식 요소를 표현하기 위해서 사용된다. 글에서 사용되는 특수 문자의 종류를 다음 표에 정리해 두었다.

코드 설명 문단 리스트0-4 예약5 필드 코드

(덧말, 계산식, 환경정보, 누름틀)6 책갈피7 날짜 형식8 날짜 코드9 탭10 표/텍스트박스/수식/버튼/

하이퍼텍스트 √11 그림 √12 예약13 문단 끝14 선15 숨은설명 √16 머리말/꼬리말 √17 각주/미주 √18 번호 코드 넣기19 번호바꾸기 - 새번호로시작20 쪽번호달기21 홀수쪽시작/감추기22 메일머지 표식23 글자겹침24 하이픈25 제목/표/그림차례 표식26 찾아보기 표식27 예약28 개요 모양/번호29 상호참조30 묶음빈칸31 고정폭빈칸

표 31 글의 특수 문자

문서 파일에서 문단 내용을 읽다가 특수 문자를 발견하면, 문서를 읽는 쪽에서는 그 종류에 따라 읽어 들이거나 건너 뛰어 다음 데이터의 시작 위치까지 파일 포인터를 옮기기 위한 적절한 처리를 수행해야 한다. 특수 문자 가운데는 또 다른 문단 리스트를 포함하는 경우도 있기 때문에, 특수 문자를 일반 문자처럼 처리하면 문서 파일을 정상적으로 읽을 수 없다.

실제 문단 내의 모든 문자를 살펴보지 않아도, 그 문단에 특수 문자가 포함되어 있는지 없는지는 문단 정보만 읽어보고도 알 수 있다. 문단 정보의 ‘특수 문자 플래그’이 0이면 그 문단에는 특수 문자가 없는 것을 뜻하며, 이외의 경우에는 해당하는 비트가 나타내는 특수 문자가 존재함을 뜻한다.

표에서 ‘문단 리스트’ 항목에 ‘√’ 표시가 된 것은 문단 리스트를 포함하는 특수 문자를 뜻한다.

문서를 읽다가 현재 사용되지 않는 예약된 특수 문자 코드를 만났을 때는, 이후의 상위 버전과의 호환성을 위해 적절한 크기를 건너뛰어야 한다. 건너뛸 정보의 크기는 다음과 같은 규약에 따라 알 수 있다.

Page 32: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

24

오프셋 자료형 길이 (바이트) 의미0 hchar 2 특수 문자 코드2 dword 4 정보 길이 (n)6 hchar 2 특수 문자 코드8 byte array[n] n 정보

전체 길이 가변 8 + n 바이트

표 32 예약 특수 문자 형식

Page 33: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

25

10.1. 필드 코드 (5)필드 코드는 계산식과 문서마당 정보 등을 나타내기 위해 글 96에 추가된 특수 문자이며, 범용의 특수 문자이므로, 글 96에서 사용되는 것 이외에도 앞으로 다양한 용도로 쓰일 수 있다.

필드 코드는 임의 길이의 세 개의 hchar 형 문자열과, 한 개의 바이너리 데이터를 가지고 있으며, 필드 코드의 종류에 따라 이 정보들이 고유한 의미로 해석된다.

필드 코드는 글 96 이전에 예약된 특수 문자를 정의하여 사용하고 있으므로 기본적인 형식은 예약된 특수 문자를 표현하는 규약에 따라 아래와 같다.

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 5이다.2 dword 정보 길이 n : 필드 코드 세부 정보 길이6 hchar 특수 문자 코드 늘 5이다.8 byte array[n] 정보 내용 필드 코드 세부 정보 내용

전체 길이 가변 8 + n 바이트

표 33 필드 코드

필드 코드 세부 정보는 아래와 같은 형식으로 저장된다.

§ 필드 코드 세부 정보 헤더 (46 바이트) → 문자열 #1 (n 바이트, 생략 가능) → 문자열 #2 (n 바이트, 생략 가능) → 문자열 #3 (n 바이트, 생략 가능) → 바이너리 데이터 (n 바이트, 생략 가능)

오프셋 자료형 의미 설명

0 byte array[2] 종류

2/0 = 계산식3/0 = 문서요약3/1 = 개인정보3/2 = 만든 날짜4/0 = 누름틀

2 byte array[4] 예약6 word 위치 정보 0 = 끝 코드, 1 = 시작 코드8 byte array[22] 예약30 dword 문자열 #1 길이 hchar문자열 데이터 #1의 길이 - (필드이름)

‘\0’ 포함34 dword 문자열 #2 길이 hchar문자열 데이터 #2의 길이 - 입력란안내문38 dword 문자열 #3 길이 hchar문자열 데이터 #3의 길이 - 상황선도움말42 dword 바이너리 데이터 길이 임의 형식의 바이너리 데이터 길이46 byte array[n] 데이터 n = 문자열#1의 길이 +문자열#2의 길이 +문자열#2의

길이 + 바이너리 데이터의 길이전체 길이 가변 46 + n 바이트

표 34 필드 코드 세부 정보 헤더

현재의 글 96에서 사용되는 필드 코드는 인용 부호처럼, 본문 중의 내용을 쌍으로 묶은 형태로 사용된다. 위 표에서 위치 정보는 해당하는 필드 코드가 시작인지 끝인지 그 종류를 나타내는 데 사용된다.

- offset 2 : word 옵션bit flag 3번째(value 4) : offset 4에 나오는 스타일의 글자모양 사용

나머지는 정의되어 있으나 구현되어 있지 않음

- offset 4 : word : 스타일 번호

Page 34: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

26

10.1.1. 계산식 (글 96에 추가)

내장 시트 기능에 사용되는 계산식을 표현하는 데 사용된다. 문자열 #3에 계산식이 저장되며, 계산 결과는 문자열 #2에 저장된다. 나머지 정보는 사용되지 않는다. 실제 글에서 계산을 수행하면 필드 코드가 둘러싼 내용이 계산 결과로 치환된다.

10.1.2. 문서요약 (글 96에 추가)

‘문서마당 정보’ 대화상자의 ‘문서요약’ 탭을 이용해 입력한 정보이다. 문자열 #3에 종류를 나타내는 다음과 같은 예약어가 저장되며, 해당하는 정보가 문자열 #2에 저장된다. 실제 글에서 이 코드를 넣을 때 필드 코드가 둘러싼 내용이 문서 요약의 해당 항목으로 치환된다.

title 제목subject 주제author 지은이keywords 키워드createtime 날짜comment 기타

10.1.3. 개인정보 (글 96에 추가)

‘문서마당 정보’ 대화상자의 ‘개인정보’ 탭을 이용해 입력한 정보이다. 문자열 #3에 종류를 나타내는 다음과 같은 예약어가 저장되며, 해당하는 정보가 문자열 #2에 저장된다. 실제 글에서 이 코드를 넣을 때 필드 코드가 둘러싼 내용이 환경 설정에서 입력해 둔 개인 정보의 해당 항목으로 치환된다.

User 사용자 이름 E-mail 전자 우편 주소Company 회사명 Zipcode(home) 우편번호(집)Position 직책명 Phone(home) 전화번호(집)Division 부서명 Address(home) 주소(집)Fax 팩스번호 Zipcode(office) 우편번호(회사)Pager 호출기번호 Phone(office) 전화번호(회사)BBSID 통신 아이디 Address(office) 주소(회사)UserKey0-9 사용자 정의 0-9

10.1.4. 만든 날짜 (글 96에 추가)

‘문서마당 정보’ 대화상자의 ‘만든날짜’ 탭을 이용해 입력한 정보이다. 문자열 #3에 날짜 형식을 나타내는 문자열이 저장된다. 형식은 특수 문자 7번에서 입력하는 것과 동일하며, 해당하는 형식에 맞춰 만들어진 날짜가 문자열 #2에 저장된다. 실제 글에서 이 코드를 넣을 때 필드 코드가 둘러싼 내용이 날짜 정보로 치환된다.

Page 35: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

27

10.1.5. 누름틀

‘문서마당 정보’ 대화상자의 ‘누름틀’ 탭을 이용해 입력한 정보이다. 문자열 #3에 상황선에 표시할 도움말, 문자열 #2에 입력할 내용의 안내문이 저장되며, 바이너리 데이터에 다음과 같은 내용이 저장된다.

오프셋 자료형 의미 설명

0 dword 기타 플래그 bit 0사용자가 내용을 입력하지 않은 초기 상태인지 여부

0 내용을 입력한 상태1 내용을 입력하지 않은

초기 상태bit 1 - 31 예약

4 word 필드 번호 추가 정보 블록에 저장되어 있는 필드 이름의 필드 번호6 byte array[26] 예약

전체 길이 32

표 35 누름틀 바이너리 데이터

Page 36: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

28

10.2. 책갈피 (6)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 6이다.2 dword 자료 구조 길이 346 hchar 특수 문자 코드 늘 6이다.8 hchar array[16] 책갈피 이름40 word 책갈피 종류 0 = 일반, 1 = 블록 책갈피 시작, 2 = 블록 책갈피 끝

전체 길이 42

표 36 책갈피

책갈피 List는 파일의 앞쪽 정보블럭에 저장된다.

[상호참조]의 [참조대상]으로도 이용된다.

10.3. 날짜 형식 (7)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 7이다.2 hchar array[40] 날짜 형식 날짜 형식 대화상자의 사용자 정의 형태로 표현82 hchar 특수 문자 코드 늘 7이다.

전체 길이 84

표 37 날짜 형식

10.4. 날짜 코드 (8)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 8이다.2 hchar array[40] 날짜 형식 날짜 형식 문자열82 word array[4] 날짜 년, 월, 요일, 일90 word array[2] 시각 시, 분94 hchar 특수 문자 코드 늘 8이다.

전체 길이 96

표 38 날짜 코드

날짜 코드 형식0 자릿수 메움 ! 두 자리 년도1 해(년), 네 자리 * 달(월), 영문2 달(월), 숫자 @ 달(월), 영문 약어3 날짜, 숫자 # 날짜, 영문6 요일, 한글 ^ 요일, 영문 약어~6 요일, 한자 _ 요일, 영문

시간 코드 형식4 시, 12시간제 $ 시, 24시간제5 분 % 분7 오전/오후 & a.m/p.m~7 午前/午後 + A.M/P.M

Page 37: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

29

추가정보0 위의 숫자 앞에 0(영)을 덧 붙이면 두자리 이상의 값을 나타내야

할 곳에 자리 수가 모자라는 값이 나오면 0(영)으로 메웁니다.\ 코드로 인식하지 않고 특정한 글자를 넣으려면 ‘\’ 다음에 씁니다.

(*) 더 자세한 것은 Help 참조

10.5. 탭 (9)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 9이다.2 hunit 탭 문자 폭4 word 점 끌기 여부6 hchar 특수 문자 코드 늘 9이다.

전체 길이 8

표 39 탭

10.6. 표/텍스트박스/수식/버튼/하이퍼텍스트 (10)표, 텍스트 박스, 수식, 버튼, 하이퍼텍스트는 공통점이 많기 때문에 동일한 자료 구조를 사용하는데, 다음과 같은 구조로 되어 있다.

§ 식별 정보 (8 바이트) → 표 정보 (84 바이트) → 셀 정보 (27 바이트×셀 개수) → 각 셀의 문단 리스트들 (셀 개수만큼) → 캡션 문단 리스트

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 10이다.2 dword 예약6 hchar 특수 문자 코드 늘 10이다.

전체 길이 8

표 41 표 식별 정보

오프셋 자료형 의미 설명0 byte array[8] 예약8 byte 기준 위치 0 - 3 (글자, 문단, 페이지, 종이)9 byte 그림 피함 0 - 2 (자리차지, 투명, 어울림)10 shunit 가로 위치 -1=왼쪽, -2=오른쪽, -3=가운데, 이외=임의12 shunit 세로 위치 -1=위, -2=아래, -3=가운데, 이외=임의

14 word 기타 옵션

bit 0 - 1 = 예약bit 2 = 수식 크기를 문단 폭에 맞출지 여부bit 3 = 예약bit 4 = [하이퍼텍스트]인지 여부bit 5 - 15 = 예약

16 hchar 특수 문자 코드 늘 10이다.

18 hunit array[3][4] 여백[0-2][] = 바깥/안/셀 여백[][0-3] = 왼쪽/오른쪽/위/아래 여백※ ex) [1][3] = 안여백-아래여백

42 hunit array[2] 박스 크기 가로, 세로46 hunit array[3] 캡션 크기 가로, 세로, 길이52 hunit array[2] 전체 크기 박스 크기 + 캡션 + 여백56 byte array[4] 예약60 byte 줄간격 보호 0 = 보호하지 않음, 1 = 보호함61 byte 예약62 hunit array[2] 박스 위치 실제 계산된 결과 박스의 위치. 가로, 세로.66 byte array[4] 예약70 word 캡션 위치 0 - 7, 메뉴 순서 대로

Page 38: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

30

하이퍼텍스트의 경우에는 ‘박스 종류’가 버튼으로 되어 있으며, ‘기타 옵션’의 하이퍼텍스트 비트로 판별한다. 이 경우에는 추가 정보 블록에 하이퍼텍스트에 대한 추가 정보가 저장된다. 자세한 것은 ‘추가 정보 블록 자료 구조’를 참조하기 바란다. ( 추가정보 블록 TagID 3, N x 269 )

오프셋 자료형 의미 설명0 byte array[2] 줄, 칸 내장 시트 기능을 위한 줄, 칸 일련 번호 (0에서 시작)2 word 셀의 색깔4 hunit array[2] 셀 위치 표 안에서 셀의 위치 (가로, 세로)8 hunit array[2] 셀 크기 셀의 크기 (가로, 세로)12 hunit 텍스트 높이 셀 안에 있는 텍스트 내용의 높이

14 hunit 셀 높이사용자가 지정한 셀의 높이.실제 셀의 세로 크기는 ‘텍스트 높이’와 ‘셀 높이’ 중에서 큰 쪽으로 선택된다.

16 byte array[2] 예약18 byte 상수 늘 1이다.19 byte 가운데로 셀 안의 글을 세로로 가운데로 오게 할지 여부

20 byte array[4] 선 종류

셀의 선 종류 (왼쪽, 오른쪽, 위, 아래)선 종류: 0 = 없음, 1-4 = 메뉴 순서대로0 : 투명1 : 실선2 : 굵은 실선3 : 점선4 : 2중 실선

24 byte 음영 비율 0% - 100%

25 byte 대각선

bit 0,1 : 대각선 방향 (0=없음, 1=\, 2=/, 3 = X )bit 2 : 한 줄로 입력 Flag - 자동align되지 않음bit 3 : reservedbit 4 : 대각선 merge된 cell인가bit 5 : 대각선 merge된 cell일때 0=가로, 1=세로bit 6,7 : reserved

26 byte 보호 보호를 위해 셀로 들어갈 수 없도록 할지 여부전체 길이 27

표 42 셀 정보

대각선 merge cell은 2001년 6월 추가됨

72 word 박스 번호 0부터 시작해 순서대로 매긴 일련 번호74 byte array[2] 예약76 word 표 ID 차트 연결 표 식별ID/BaseLine:수식일때. (1800 DPI)78 word 박스 종류 0=표, 1=텍스트박스, 2=수식, 3=버튼80 word 셀 개수 표일 때는 셀의 개수, 이외는 늘 1이다. (수식도 1)82 word 보호 표의 크기가 변하는 것을 막을지 여부

전체 길이 84

표 40 표 정보

Page 39: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

31

10.7. 그림 (11)§ 식별 정보 (8 바이트) → 그림 정보 (348 + n 바이트) → 캡션 문단 리스트

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 11이다.2 dword 예약6 hchar 특수 문자 코드 늘 11이다.

전체 길이 8

표 43 그림 식별 정보

오프셋 자료형 의미 설명0 dword 추가 정보 길이 n 추가 정보의 길이 (바이트 단위)4 byte array[4] 예약8 byte 기준 위치 0 - 3 (글자, 문단, 페이지, 종이)9 byte 그림 피함 0 - 2 (자리차지, 투명, 어울림)10 shunit 가로 위치 -1=왼쪽, -2=오른쪽, -3=가운데, 이외=임의12 shunit 세로 위치 -1=위, -2=아래, -3=가운데, 이외=임의

14 word 기타 옵션

bit 0 = 테두리 그릴지 여부bit 1 = 그림을 반전시킬지 여부. 0이면 반전.bit 2 = Fit to columnbit 3 = 0x8 unknown filebit 4 = 0x10 [hypertext]bit 5 = 0x20 unkown size

16 hchar 특수 문자 코드 늘 11이다.

18 shunit array[3][4] 여백

[0-2][] = 바깥/안/셀 여백[][0-3] = 왼쪽/오른쪽/위/아래 여백※ [1][2] = 안여백-아래여백※ 그림에서 셀 여백은 사용되지 않음

42 hunit array[2] 박스 크기 가로, 세로46 hunit array[3] 캡션 크기 가로, 세로, 길이52 hunit array[2] 전체 크기 박스 크기 + 캡션 + 여백56 byte array[4] 예약60 byte 줄간격 보호 0 = 보호하지 않음, 1 = 보호함61 byte 예약62 hunit array[2] 박스 위치 실제 계산된 결과 박스의 위치. 가로, 세로.66 byte array[4] 예약70 word 캡션 위치 0 - 7, 메뉴 순서72 word 박스 번호 0부터 시작해 순서대로 매긴 일련 번호74 byte 그림 종류 0 = 외부 파일, 1 = OLE Object,

2 = Embedded Image, 3 = Drawing Object75 hunit array[2] 건너뜀 그림에서 실제 표시를 시작할 위치 (가로, 세로)79 word array[2] 확대 비율 0 = 고정, 이외 = 퍼센트 단위 비율 (가로, 세로)83 kchar array[256] 그림 파일 이름 그림 종류가 0, 1, 2일 때만 사용됨.339 byte 밝기 워터마크: 그림의 밝기 (-100 - 100)340 byte 명암 워터마크: 그림의 명암 (-100 - 100)

341 byte 그림효과워터마크: 0 = 원래 그림으로

1 = 그레이 스케일 2 = 흑백으로

342 byte 그림보호가 되어 있는 지의 여부343 byte array[5] 예약348 byte array[n] 추가 정보 그림 종류가 3(Drawing Object)일 때만 사용됨.

그 외는 하이퍼텍스트 정보 (11.1 참고)전체 길이 가변 348 + n 바이트

표 44 그림 정보

Page 40: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

32

오프셋 자료형 의미 설명0 char 밝기 그림의 밝기 (-100 - 100)1 char 명암 그림의 명암 (-100 - 100)

2 char 그림 효과0 = 원래 그림으로1 = 그레이 스케일2 = 흑백으로

전체 길이 3

표 45 워터마크 속성

글에 내장된 그림 그리기 기능으로 그려진 개체(그림 종류 3)일 때는 실제 데이터는 추가 정보에 저장된다. 자세한 것은 ‘그리기 개체 자료 구조’를 참조하기 바란다.

그리기 개체가 아닐 때는 하이퍼 텍스트 정보가 포함되어 있다. 추가 정보 내용 중 처음 4byte(dword)를 읽어서 그 값이 0x269이면 하이퍼 텍스트 정보인 것으로 간주한다.

10.8. 선 (14)§ 식별 정보 (8 바이트) → 선 정보 (84 바이트)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 14이다.2 dword 예약6 hchar 특수 문자 코드 늘 14이다.

전체 길이 8

표 46 선 식별 정보

오프셋 자료형 의미 설명0 byte array[8] 예약8 byte 기준 위치 0 - 3 (글자, 문단, 페이지, 종이)9 byte 그림 피함 늘 1이다.10 hunit 가로 위치 선을 대각선으로 하는 사각형의 시작점 x좌표12 hunit 세로 위치 선을 대각선으로 하는 사각형의 시작점 y좌표14 byte array[2] 예약16 hchar 특수 문자 코드 늘 14이다.18 byte array[24] 예약42 hunit array[2] 박스 크기 선을 대각선으로 하는 사각형의 가로, 세로 크기46 byte array[14] 예약60 byte 줄간격 보호 0 = 보호하지 않음, 1 = 보호함61 byte array[9] 예약70 hunit array[4] 선 위치 (시작점 x,y) (끝점 x,y) 좌표78 hunit 선 굵기80 word 음영 비율82 word 색깔

전체 길이 84

표 47 선 정보

Page 41: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

33

10.9. 숨은설명 (15)§ 식별 정보 (8 바이트) → 예약 (8 바이트) → 문단 리스트

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 15이다.2 dword 예약6 hchar 특수 문자 코드 늘 15이다.

전체 길이 8

표 48 식별 정보

10.10. 머리말/꼬리말 (16)§ 식별 정보 (8 바이트) → 머리말/꼬리말 정보 (10 바이트) → 문단 리스트

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 16이다.2 dword 예약6 hchar 특수 문자 코드 늘 16이다.

전체 길이 8

표 49 식별 정보

오프셋 자료형 의미 설명0 byte array[8] 예약8 byte 구분 0 = 머리말, 1 = 꼬리말9 byte 종류 0 = 양쪽면, 1 = 짝수면, 2 = 홀수면

전체 길이 10

표 50 머리말/꼬리말 정보

10.11. 각주/미주 (17)§ 식별 정보 (8 바이트) → 각주/미주 정보 (14 바이트) → 문단 리스트

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 17이다.2 dword 예약6 hchar 특수 문자 코드 늘 17이다.

전체 길이 8

표 51 식별 정보

오프셋 자료형 의미 설명0 byte array[8] 예약8 word 번호 각주/미주 번호. 0부터 시작.10 word 종류 0 = 각주, 1 = 미주12 hunit 각주 문단 너비 각주를 정렬할 당시의 단(본문) 너비

전체 길이 14

표 52 각주/미주 정보

Page 42: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

34

10.12. 번호 코드 넣기 (18)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 18이다.2 word 종류 0=쪽,1=각주,2=미주,3=그림,4=표,5=수식 번호4 word 번호값6 hchar 특수 문자 코드 늘 18이다.

전체 길이 8

표 53 번호 넣기

10.13. 새 번호로 시작 (번호 바꾸기) (19) 새로 시작할 번호를 지정한다. 번호 코드의 값들이 이 번호를 시작으로 하나씩 증가한다.

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 19이다.2 word 종류 0=쪽,1=각주,2=미주,3=그림,4=표,5=수식 번호4 word 새 번호6 hchar 특수 문자 코드 늘 19이다.

전체 길이 8

표 54 번호 바꾸기

10.14. 쪽번호달기 (20)글 97 메뉴의 ‘모양 - 쪽 번호 매기기’로 넣은 특수 문자이다. (쪽에 쪽번호 달기)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 20이다.2 word 위치 0 - 84 word 모양 0 = arabic, 1 = capital roman, 2 = small roman

3-5 = 0-2와 같은 모양에 ‘- ## -’ 형태로 출력6 hchar 특수 문자 코드 늘 20이다.

전체 길이 8

표 55 쪽번호달기

10.15. 홀수쪽시작/감추기 (21)글 96 메뉴의 ‘모양 - 새 번호로 시작 - 항상 홀수쪽으로’ 또는 ‘모양 - 감추기’로 넣은 특수 문자이다.

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 21이다.2 word 종류 0 = 홀수로 시작, 1 = 감춤

4 word 감출 대상

‘종류’가 1일 때만 의미가 있다.bit 0 = 머리말 감춤bit 1 = 꼬리말 감춤bit 2 = 쪽번호 감춤bit 3 = 테두리 감춤bit 4 - 15 = 예약

6 hchar 특수 문자 코드 늘 21이다.전체 길이 8

표 56 홀수쪽시작/감추기

Page 43: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

35

10.16. 메일머지 표시 (22)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 22이다.2 kchar array[20] 필드 이름 아스키 문자열로 표현된다.22 hchar 특수 문자 코드 늘 22이다.

전체 길이 24

표 57 메일머지 표시

10.17. 글자겹침 (23)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 23이다.2 hchar array[3] 겹칠 글자 최대 3자까지 가능. 남는 부분은 0으로 채움.8 hchar 특수 문자 코드 늘 23이다.

전체 길이 10

표 58 글자겹침

10.18. 하이픈 (24)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 24이다.2 hunit 너비 하이픈의 너비4 hchar 특수 문자 코드 늘 24이다.

전체 길이 6

표 59 하이픈

10.19. 제목/표/그림차례 표시 (25)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 25이다.2 hunit 종류 0 = 제목차례, 1 = 표차례, 2 = 그림차례4 hchar 특수 문자 코드 늘 25이다.

전체 길이 6

표 60 제목/표/그림차례 표시

10.20. 찾아보기 표시 (26)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 26이다.2 hchar array[60] 첫 번째 키워드

122 hchar array[60] 두 번째 키워드242 wordr 페이지 번호 Page Num244 hchar 특수 문자 코드 늘 26이다.

전체 길이 26

표 61 찾아보기 표시

Page 44: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

36

10.21. 개요 모양/번호 (28)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 28이다.2 word 종류 0 = 개요 모양, 1 = 개요 번호

4 byte 형태

0 = 사용자 정의 개요1-5 = 글에 정의된 개요 (메뉴 순서대로)128 = 사용자 정의 개요 및 불릿129-132 = 글에 정의된 불릿 (메뉴 순서대로)*. 사용자 정의에서 개요 문자만을 사용했다면 0이

되며, 불릿문자를 섞어서 사용하면 128이 된다.5 byte 단계 현재 개요 번호의 단계

6 word array[7] 개요 번호각 단계별 개요 번호. 0부터 시작. 불릿일 때는 번호는 매겨지지만, 사용되지는 않는다.예: 1.3.2.4 ☞ 0 2 1 3 0 0 0

20 hchar array[7] 사용자 정의0 - 12 = 메뉴에 나타난 순서대로 개요의 형태128 = 모양 없음이외 = 불릿에 사용될 문자가 저장된다.예: 1. 1.1. 가. ○ -> 12 12 5 0x343b

34 hchar array[7][2] 장식 문자 사용자 정의 개요 및 불릿일 때 앞, 뒤에 장식할 문자.62 hchar 특수 문자 코드 늘 28이다.

전체 길이 64

표 62 개요 모양/번호

10.22. 상호참조 (29)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 29이다.2 dword 자료 구조 길이 46 + (참조 내용 길이 n)6 hchar 특수 문자 코드 늘 29이다.

8 0 byte 종류 0 = 대상, 1 = 참조 이용9 1 kchar array[37] 대상 이름

46 38 word 참조 종류0=쪽번호, 1=각주번호, 2= 미주번호3=그림번호. 4=표번호, 5=수식번호,6=개요번호 참조이

용일때만 필요48 40 word 참조 내용 길이 0 = 대상의 경우, n

50 42 dword 예약54 46 hchar array[n/2] 참조 내용 참조 내용 길이만큼의 내용이 따라 온다.

전체 길이 가변 8 + (46 + n*2) 바이트

표 63 상호참조

상호참조코드는 대상(0)과 참조이용(1) 두가지로 사용되는데, 대상의 경우 대상이름만 기록되고 나머지는 기록되지 않는다.

외부파일은 [연결인쇄]에 연결된 파일에서만 참조한다.

Page 45: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

37

10.23. 묶음빈칸 (30)오프셋 자료형 의미 설명

0 hchar 특수 문자 코드 늘 30이다.2 hchar 특수 문자 코드 늘 30이다.

전체 길이 4

표 64 묶음빈칸

입력시 Ctrl-Space를 누른다.

10.24. 고정폭빈칸 (31)

오프셋 자료형 의미 설명0 hchar 특수 문자 코드 늘 31이다.2 hchar 특수 문자 코드 늘 31이다.

전체 길이 4

표 65 고정폭빈칸

입력시 Alt-Space를 누른다.

Page 46: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

38

11. 그리기 개체 자료 구조

11.1. 기본 구조그리기 개체는 여러 개의 개체를 하나의 틀로 묶을 수 있기 때문에, 하나의 그림 코드에 하나 이상의 개체가 존재할 수 있다. 파일상에는 다음과 같은 구조로 저장된다.

§ 그림 정보 (348 바이트) → 틀 헤더 (28 바이트) → (optional 하이퍼텍스트 정보(4 + 617 byte)) → { 개체 정보 1, 개체 정보 2, ... 개체 정보 n }

‘틀 헤더’는 개체를 포함하고 있는 틀의 관리에 필요한 정보를 저장하는 영역으로 자세한 내용은 아래와 같다.

오프셋 자료형 의미 설명0 dword 헤더 길이 자신을 뺀 헤더의 길이. 현재는 24.4 dword zorder 틀의 zorder 값. 첫 비트가 서 있으면 글 뒤.8 dword 개체 수 묶여 있는 개체의 개수.

12 shunit32 array[4] 차지 영역선 두께 등을 고려하여 개체가 차지하는 영역을 x, y, xsize, ysize 순서로 나타냄. 좌표는 틀의 원점부터 상대적인 값.

전체 길이 28

표 66 틀 헤더

"하이퍼텍스트 정보“는 ”틀 헤더“의 헤더 길이가 24보다 클 경우 ”틀 헤더“에 이어 저장된다.

저장되는 내용은 첫 4byte만 빼면 8.3의 하이퍼텍스트 정보와 같다.

오프셋 자료형 길이 (바이트) 의미0 dword 4 617 x n = 하이퍼텍스트 정보 길이4 kchar array[256] 건너뛀 파일 이름 현재 파일의 책갈피라면 "\0"

260 hchar array[16] 건너뛀 책갈피 ‘[문서의 처음]’은 실제 존재하지는 않지만, 사용되는 책갈피 이름

292 byte array[325] 매크로 도스용에서 실행할 매크로617 byte 종류 0,1 = 글, 2 = HTML618 byte array[3] 예약

전체 길이 가변 4 + 617 x n 바이트

표 67 하이퍼텍스트 정보

Page 47: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

39

11.2. 저장되는 개체의 순서그리기 개체는 묶인 순서에 따라 계층 구조를 가진다. 예를 들어 부채꼴과 원을 묶고, 이것을 다시 사각형과 묶었을 때 다음과 같은 계층 구조를 가진다.

§ {사각형 + { 부채꼴 + 원 }}

컨테이너

그림 코드

컨테이너

‘컨테이너’는 계층 구조를 나타내기 위해 내부적으로 사용되는, 화면에는 표시되지 않는 개체로서, 묶기를 할 때마다 묶인 개체들의 ‘parent’로 하나씩 생성된다.

파일상에서의 그리기 개체는 계층 구조 트리에 대한 ‘preorder traversal’ 순서로 저장된다. 따라서 위와 같은 경우라면 다음과 같은 순서로 저장된다.

§ 컨테이너 → 사각형 → 컨테이너 → 부채꼴 → 원

11.3. 개체 정보틀 헤더에 이어서는 개체의 개수만큼 각각의 개체 정보가 저장된다. 개체 정보는 모든 개체에 공통적으로 적용되는 속성이 저장되는 공통 헤더와, 개체에 따라 서로 다른 정보가 저장되는 세부 정보로 나뉘고, 세부 정보는 다시 두 부분으로 나뉘어 전체적으로 다음과 같은 구조를 가진다.

§ 공통 헤더 (n 바이트) → {optional 글상자 정보(n byte)} → 세부 정보 1의 길이 (4 바이트) → 세부 정보 1의 내용 (n 바이트) → 세부 정보 2의 길이 (4 바이트) → 세부 정보 2의 내용 (n 바이트)

개체의 종류에 따라서 세부 정보는 존재하지 않는 경우도 있다. 세부 정보가 존재하지 않을 때는 세부 정보 1의 길이와 세부 정보 2의 길이가 0이 되므로 8개의 연속된 0으로 표현된다.

그리기 글상자일 경우엔 공통 헤더 뒤에 글상자 정보가 저장된다(글상자 정보는 11.3.6 참조).

11.3.1. 공통 헤더

공통 헤더에는 모든 그리기 속성에 공통적으로 적용되는 정보가 저장된다. 공통 헤더의 길이는 그리기 개체에 적용된 속성에 따라 달라질 수 있는데, 파일상에 다음과 같은 구조로 저장된다.

§ 기본 정보 (48 바이트) → 기본 속성 (44 바이트) → 회전 속성 (32 바이트, 생략 가능) → 그라데이션 속성 (28 바이트, 생략 가능) → 비트맵 패턴 속성 (278 바이트, 생략 가능)

Page 48: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

40

회전, 그라데이션, 비트맵 패턴 속성은 생략 가능하며, 어떤 속성 정보가 존재하는지 생략되었는지는 기본 속성의 기타 옵션으로 알 수 있다. 참고로, 회전 속성은 자료 구조에는 생략 가능하게 되어 있지만, 글 96에서는 무조건 저장하므로 늘 존재한다.

오프셋 자료형 의미 설명0 dword 헤더 길이 자신을 뺀 공통 헤더의 길이. 속성에 따라 가변.

4 word 개체 종류

0 = 컨테이너1 = 선2 = 사각형3 = 타원4 = 호5 = 다각형6 = 글상자7 = 곡선8 = 변형된 타원 (회전되거나 호로 편집된 타원)9 = 변형된 호 (회전된 호)10 = 선을 그릴 수 있도록 확장된 곡선

6 word 연결 정보 bit 0 = sibling이 존재하는지 여부bit 1 = child가 존재하는지 여부

8 hunit32 array[2] 상대 위치 개체가 속한 그룹의 원점부터 개체 위치 x, y.16 hunit32 array[2] 개체 크기 개체의 가로, 세로 크기.24 hunit32 array[2] 절대 위치 틀 원점부터 개체 위치 x, y.32 shunit32 array[4] 차지 영역 선 두께 등을 고려하여 개체가 차지하는 영역을 x, y, xsize,

ysize 순서로 나타냄. 좌표는 개체의 원점부터 상대적인 값.48 {기본 속성} 기본적인 속성 (44 바이트)

92 {회전 속성}회전에 관련된 속성 (32 바이트)플래그설정 : 내용이 없는 경우가 존재한다. (헤더의 길이로 Skip할지 판별한다.)

124 {그라데이션 속성} 그라데이션에 관련된 속성 (28 바이트)152 {비트맵 패턴 속성} 비트맵 패턴에 관련된 속성 (278 바이트)

전체 길이 가변 최대 430 바이트

표 68 그리기 개체 공통 헤더

오프셋 자료형 의미 설명

48 dword array[3] 선 모양array[0] = 선의 스타일, array[1] = 끝 부분 화살표 스타일,array[2] = 시작 부분 화살표 스타일

60 dword 선 색깔 RGB 값64 hunit32 선 굵기 선의 굵기68 dword 면 색깔 RGB 값

72 dword 무늬 종류bit 0-23 = 종류bit 24-31 = bit 24: solid(0)/hatched(1)

bit 25: bitmap pattern(이미지 fill)76 dword 무늬 색깔 RGB 값80 hunit32 array[2] 글상자 여백 글상자 가로, 세로 여백.

88 dword 기타 옵션

bit 0 = 둥근 모서리bit 1 = 부채꼴 테두리bit 2 = 반원 모서리bit 3 = 개체의 크기에 맞춰 비트맵 크기 조절bit 4 = 가운데 정렬 (그리기 글상자)bit 5 = 다각형이 닫혀졌는 지의 여부bit 6 - 15 = 예약bit 16 = 그라데이션 속성 존재 여부bit 17 = 회전 속성 존재 여부bit 18 = 비트맵 패턴 속성 존재 여부bit 19 = 그리기를 글상자로 만들 것인지의 여부bit 20 = 워터마크 속성 존재 여부bit 21 - 31 = 예약

전체 길이 44

표 69 그리기 개체 기본 속성

�글 97의 점선의 경우 6.0으로 변환시 선의 스타일의 굵기가 2mm이상의 경우 알맞게 수정되어야 비슷한 모양을 유지한다.

Page 49: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

41

오프셋 자료형 의미 설명0 hunit32 x좌표 회전 중심의 x좌표4 hunit32 y좌표 회전 중심의 y좌표

8 hunit32 array[6] 평행 사변형평행 사변형을 표현하는 세 개의 좌표를 각각 x, y 순으로 저장한다. 사각형을 회전시키고 나서 사이즈를 바꾸면 평행 사변행이 된다.

전체 길이 32

표 70 그리기 개체 회전 속성

오프셋 자료형 의미 설명0 dword 시작 색깔 RGB 값.4 dword 끝 색깔 RGB 값.8 dword 그라데이션 종류 선형, 원형, 원뿔형, 사각형 (1 - 4)12 dword 회전 각도 중심축과 이루는 각도 (0 - 360)16 dword 가로 중심 가로 중심 (0 - 100%)20 dword 세로 중심 세로 중심 (0 - 100%)24 dword 단계 밀도 (0 - 100)

전체 길이 28

표 71 그리기 개체 그라데이션 속성

오프셋 자료형 의미 설명0 hunit32 array[2] 시작 위치 틀로부터 비트맵 패턴이 출력되는 좌측 상단에 대한 상대 위치8 hunit32 array[2] 끝 위치 틀로부터 비트맵 패턴이 출력되는 우측 하단에 대한 상대 위치16 hchar array[261] 파일 이름 비트맵 패턴의 파일 이름 (조합형)277 byte 옵션 0 = 외부 파일

2 = embedded image전체 길이 278

표 72 그리기 개체 비트맵 패턴 속성

오프셋 자료형 의미 설명0 char 밝기 그림의 밝기 (-100 - 100)1 char 명암 그림의 명암 (-100 - 100)

2 char 그림 효과0 = 원래 그림으로1 = 그레이 스케일2 = 흑백으로

전체 길이 3

표 73 워터마크 속성

11.3.2. 선 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 44 dword 선의 모양 정보 bit 0 = horizontal flip

bit 1 = vertical flip8 dword 정보 2의 길이 0

전체 길이 12

표 74 선 세부 정보

Page 50: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

42

11.3.3. 호 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 44 dword 호의 모양 정보 bit 0 = horizontal flip

bit 1 = vertical flip8 dword 정보 2의 길이 0

전체 길이 12

표 75 호 세부 정보

11.3.4. 변형된 호 (회전을 위해 확장된 호)

변형된 호는 추가로 세부정보를 필요로 하지 않는다. 그리기 회전 속성에 있는 평행사변형의 세 점을 가지고 그린다. 첫 점에서 시작해서 끝 점에서 호가 그려지도록 되어있다.

(x1, y1) (x2, y2) (x3, y3) 라면 (x1, y1)

(x2, y2)

(x3, y3)

11.3.5. 다각형 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 44 dword 점의 개수 다각형을 이루는 점의 개수 (np)8 dword 정보 2의 길이 np×812 array

shunit32[np×2] 점의 좌표 다각형을 이루는 점들의 좌표전체 길이 가변 12 + n 바이트

표 77 다각형 세부 정보

11.3.6. 글상자 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 04 dword 정보 2의 길이 문단 리스트 내용의 길이 (n)8 byte array[n] 문단 리스트 내용 글상자 내부의 문단 리스트를 바이너리 스트림으로 표현

전체 길이 가변 8 + n 바이트

표 78 글상자 세부 정보

Page 51: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

43

11.3.7. 곡선 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 44 dword 점의 개수 다각형을 이루는 점의 개수 (np)8 dword 정보 2의 길이 np×812 array

shunit32[np×2] 점의 좌표 다각형을 이루는 점들의 좌표전체 길이 가변 12 + n 바이트

표 79 커브 세부 정보

11.3.8. 변형된 타원 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 164 shunit32 array[4] 호의 좌표 타원을 호로 자를 때의 시작점과 끝점의 좌표20 dword 정보 2의 길이 0

전체 길이 24

표 80 변형된 타원 세부 정보

11.3.9. 확장된 다각형 세부 정보

오프셋 자료형 의미 설명0 dword 정보 1의 길이 44 dword 점의 개수 다각형을 이루는 점의 개수 (np)8 dword 정보 2의 길이 np×812 array

shunit32[np×2] 점의 좌표 다각형을 이루는 점들의 좌표

12+np*8 char[np] 선의 속성 char[t]의 값이 0이라면 point[t]와 point[t+1] 사이가 직선이며, 그렇지 않을 경우는 곡선이다.

전체 길이 가변 12 + n 바이트

표 81 다각형 세부 정보

11.3.10. 닫혀진 다각형 세부 정보

확장된 다각형의 경우는 n개의 점에 대해 n개의 선속성을 가지고 있지만 실제로는 n-1 개 만이 사용된다. 그러나, 닫혀진 다각형에서는 끝점과 시작점에 대한 선속성이 필요하기 때문에 n개가 다 사용된다.

Page 52: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

44

12. OLE 개체 자료 구조

12.1. 기본 구조문서에 존재하는 OLE 개체들은 특수 문자의 그림 코드에는 이름만 존재하며, 실제 데이터는 모든 OLE 개체를 하나의 스토리지 파일(storage file)에 모아 추가 정보 블록에 저장한다.

오프셋 자료형 길이 (바이트) 의미0 dword 4 2 = OLE 정보 ID4 dword 4 OLE 정보 길이 (n)8 byte array[n] n 파일에 포함되어 있는 OLE 정보

전체 길이 가변 8 + n 바이트

표 82 OLE 정보

추가 정보 블록의 실제 내용은 다음과 같은 구조를 가진다.

§ OLE 추가 정보 블록 내용: 인식 정보 (4 바이트) → 스토리지 파일 (n 바이트)

§ 인식 정보: 0xF8995567 (글 3.0, 3.0a) / 0xF8995568 (글 3.0b 이상)

글 3.0에서 저장된 스토리지 파일은 ILockBytes 인터페이스를 구현하여 바이너리 스트림을 바로 파일로 저장한 형식이며, 이런 방식으로 저장할 때 시스템 환경에 따라 문제가 발생하는 경우가 있어서 글 3.0b 이상에서는 표준 StgCreateDocfile() API를 사용한 일반 스토리지 파일을 그대로 저장하는 방식으로 바뀌었다. 따라서 글 3.0b 미만의 버전에서 저장된 OLE 정보를 읽기 위해서는 인식 정보를 읽어 그에 따른 적절한 방식을 선택해야 한다.

12.2. 스토리지 파일의 구조루트 스토리지 아래, 특수 문자의 그림 코드에 지정된 이름과 같은 서브 스토리지가 개체의 개수만큼 존재하며, 여기에 개체의 내용이 저장된다. 개체의 저장에는 표준 OleSave() API를 사용했기 때문에 OleLoad() API로 읽을 수 있다.

글에서 각 개체 별로 자체적으로 관리하는 정보는 루트 스토리지 아래, 특수 문자의 그림 코드에 지정된 이름과 같고 확장자만 ‘.inf’로 바뀐 스트림(stream)에 저장된다. 여기에 저장되는 정보의 구조는 다음과 같다.

오프셋 자료형 길의 (바이트) 의미0 dword 4 가로 크기 (HIMETRIC)4 dword 4 세로 크기 (HIMETRIC)8 dword 4 DVASPECT_CONTENT or DVASPECT_ICON12 byte array[116] 116 예약

전체 길이 24

표 83 변형된 타원 세부 정보

Page 53: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

45

12.3. 차트 정보OLE 개체가 글에 내장된 차트일 때는 표와 차트의 연결을 관리하기 위한 추가 정보가 저장된다. 추가 정보는 OLE 개체가 저장되는 서브 스토리지 내부에 ‘HWPChart.Info‘라는 이름의 스트림에 저장되며, 내용은 다음과 같다.

오프셋 자료형 길이 (바이트) 의미0 word 2 bit 0 = 표와 연결되었는지 여부 (linked)

bit 1-15 = 예약2 word 2 표 ID (tblid)4 dword 4 bit 0 = 전체 표인지 여부 (entire)

bit 1-31 = 예약8 dword 4 시작 셀의 칸 번호 (startcol)12 dword 4 시작 셀의 줄 번호 (startrow)16 dword 4 끝 셀의 칸 번호 (endcol)20 dword 4 끝 셀의 줄 번호 (endrow)24 dword 4 표 내용 데이터의 길이 (chsize)28 byte array[100] 100 예약

전체 길이 128

표 84 차트 연결 정보

linked가 0일 때는 표에 연결되지 않은 독립적인 차트를 뜻하며, 이 경우에는 나머지 모든 값이 의미 없다.

tblid는 문서 중의 모든 표에 각각 부여된 유일한 ID이며, 이 ID를 통해 특정한 차트가 어떤 표와 연결되어 있는지 나타낸다.

entire가 1일 때는 이 차트가 표 전체의 데이터와 연결되었음을 뜻한다. 이 경우에는 범위를 나타내는 값이 의미가 없다. entire가 0일 때는 표의 일부분만 차트와 연결되었음을 뜻하며, 범위를 나타내는 값들이 실제 사용자가 차트를 만들 때 셀 블록으로 지정한 범위를 나타낸다.

chsize는 실제 각 셀의 내용이 순차적으로 ASCIIZ 형식으로 연속되어 배열된 데이터의 총 바이트 수를 나타낸다. 실제 데이터 내용은 ‘HWPChart.Info’가 저장된 동일한 storage에 ‘HWPChart.Data’라는 이름의 stream으로 저장된다.

글은 사용자가 차트와 연결된 표의 내용을 바꿨을 때, 이러한 정보들을 토대로 차트를 업데이트할지 여부를 결정한다.

Page 54: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

�글 문서 파일 형식 3.x

46

Page 55: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

II. HWPML 구조

Page 56: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

48

Page 57: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

49

1. 개요HWPML은 �글 워드 프로세서 문서를 기술하기 위한 W3C XML 기반의 개방형 마크업 언어이다.

2. 형식 설명HWPML 엘리먼트에 대한 설명은 다음 표 형식을 기본으로 해서 설명한다.

엘리먼트 명설명 엘리먼트에 대한 설명

부모 엘리먼트자식 엘리먼트/

엘리먼트 값속성

속성명1 속성1에 대한 설명 값의 범위 기본값속성명2 속성2에 대한 설명 값의 범위 기본값

표 1 각 엘리먼트 설명을 위한 테이블 예

값을 가지지 않는 경우에는 공백으로 남겨둔다.

속성들이 가질 수 있는 값들의 경우

- 열거형은 값들을 '|'으로 구분해서 표기한다.- 범위를 가지는 경우에는 ‘최소값 ~ 최대값’과 같은 형식으로 표기한다.- 일반적인 값의 범위를 가질 경우에는 해당 범위를 서술식으로 표기한다.

속성값에 대해서 부가적인 설명이 필요한 경우 ‘속성값 (설명)’과 같은 형식으로 표기한다.

2.1. 기본 속성 값 형식 설명2.2에서 설명할 기본 속성 값은 다음 표 형식을 기본으로 해서 설명한다.

속성 이름축약어 축약어

설명값1 값1에 대한 설명값2 값2에 대한 설명값3 값3에 대한 설명

제시된 축약어는 본문 내에서 [축약어]와 같은 형식으로 사용된다.

2.2. 기본 속성 값

hwpunit설명 10 pt = 1000 hwpunit

글꼴 유형

설명rep 대표 글꼴ttf 트루타입 글꼴hft �글 전용 글꼴

Page 58: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

50

선 종류 1축약어 LineType1

설명

Solid 실선Dash 긴 점선Dot 점선

DashDot -.-.-.-.DashDotDot -..-..-..LongDash Dash보다 긴 선분의 반복

Circle Dot보다 큰 동그라미의 반복DoubleSlim 2중선SlimThick 가는 선 + 굵은 선 2중선ThickSlim 굵은 선 + 가는 선 2중선

SlimThickSlim 가는 선 + 굵은 선 + 가는 선 3중선None 선 없음

선 종류 2축약어 LineType2

설명

Solid 실선Dash 긴 점선Dot 점선

DashDot -.-.-.-.DashDotDot -..-..-..LongDash Dash보다 긴 선분의 반복

Circle Dot보다 큰 동그라미의 반복DoubleSlim 2중선SlimThick 가는 선 + 굵은 선 2중선ThickSlim 굵은 선 + 가는 선 2중선

SlimThickSlim 가는 선 + 굵은 선 + 가는 선 3중선

선 종류 3축약어 LineType3

설명

Solid 실선Dot 점선

Thick 두꺼운 선Dash 긴 점선

DashDot -.-.-.-.DashDotDot -..-..-..

Page 59: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

51

선 두께축약어 LineWidth

설명

0.1mm0.12mm0.15mm0.2mm0.25mm0.3mm0.4mm0.5mm0.6mm0.7mm1.0mm1.5mm2.0mm3.0mm4.0mm5.0mm

색축약어 RGB-Color

설명

RGB 값 (0x00bbggrr)을 십진수로 표현한 값rr red 1 bytegg green 1 bytebb blue 1 byte

번호 모양 1축약어 NumberType1

설명

Digit 1, 2, 3CircledDigit 동그라미 쳐진 1, 2, 3

RomanCapital I, II, IIIRomanSmall i, ii, iiiLatinCapital A, B, CLatinSmall a, b, c

CircledLatinCapital 동그라미 쳐진 A, B, CCircledLatinSmall 동그라미 쳐진 a, b, c

HangulSyllable 가, 나, 다CircledHangulSyllable 동그라미 쳐진 가, 나, 다

HangulJamo ㄱ, ㄴ, ㄷCircledHangulJamo 동그라미 쳐진 ㄱ, ㄴ, ㄷ

HangulPhonetic 일, 이, 삼Ideograph 一, 二, 三

CircledIdeograph 동그라미 쳐진 一, 二, 三

Page 60: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

52

번호 모양 2축약어 NumberType2

설명

Digit 1, 2, 3CircledDigit 동그라미 쳐진 1, 2, 3

RomanCapital I, II, IIIRomanSmall i, ii, iiiLatinCapital A, B, CLatinSmall a, b, c

CircledLatinCapital 동그라미 쳐진 A, B, CCircledLatinSmall 동그라미 쳐진 a, b, c

HangulSyllable 가, 나, 다CircledHangulSyllable 동그라미 쳐진 가, 나, 다

HangulJamo ㄱ, ㄴ, ㄷCircledHangulJamo 동그라미 쳐진 ㄱ, ㄴ, ㄷ

HangulPhonetic 일, 이, 삼Ideograph 一, 二, 三

CircledIdeograph 동그라미 쳐진 一, 二, 三DecagonCircle 갑, 을, 병, 정, 무, 기, 경, 신, 임, 계

DecagonCircleHanja 甲, 乙, 丙, 丁, 戊, 己, 庚, 辛, 壬, 癸Symbol 4가지 문자가 차례로 반복

UserChar 사용자 지정 문자 반복

정렬 방식 1축약어 AlignmentType1

설명

Justify 양쪽 정렬Left 왼쪽 정렬

Right 오른쪽 정렬Center 가운데 정렬

Distribute 배분 정렬DistributeSpace 나눔 정렬(공백에만 배분)

정렬 방식 2축약어 AlignmentType2

설명Left 왼쪽 정렬

Center 가운데 정렬Right 오른쪽 정렬

화살표 시작/끝 모양축약어 ArrowType

설명

Normal 모양 없음Arrow 화살 모양Spear 작살 모양

ConcaveArrow 오목한 화살모양EmptyDiamond 속이 빈 다이아몬드 모양

EmptyCircle 속이 빈 원 모양EmptyBox 속이 빈 사각 모양

FilledDiamond 속이 채워진 다이아몬드 모양FilledCircle 속이 채워진 원 모양FilledBox 속이 채워진 사각 모양

Page 61: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

53

화살표 시작/끝 크기축약어 ArrowSize

설명

SmallSmall 작은-작은SmallMedium 작은-중간SmallLarge 작은-큰

MediumSmall 중간-작은MediumMedium 중간-중간MediumLarge 중간-큰LargeSmall 큰-작은

LargeMedium 큰-중간LargeLarge 큰-큰

언어 종류축약어 LangType

설명

Hangul 한글Latin 영어Hanja 한자

Japanese 일본어Other 기타

Symbol 심볼User 사용자

무늬 종류축약어 HatchStyle

설명

Horizontal - - - -Vertical |||||

BackSlash \\\\\Slash /////Cross +++++

CrossDiagonal xxxxx

채우기 유형축약어 InfillMode

설명

Tile 바둑판식으로-모두TileHorzTop 바둑판식으로-가로/위

TileHorzBottom 바둑판식으로-가로/아래TileVertLeft 바둑판식으로-세로/왼쪽

TileVertRight 바둑판식으로-세로/오른쪽Total 크기에 맞추어

Center 가운데로CenterTop 가운데 위로

CenterBottom 가운데 아래로LeftCenter 왼쪽 가운데로

LeftTop 왼쪽 위로LeftBottom 왼쪽 아래로RightCenter 오른쪽 가운데로

RightTop 오른쪽 위로RightBottom 오른쪽 아래로

Zoom 확대

Page 62: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

54

Line Wrap축약어 LineWrapType

설명Break 일반적인 줄바꿈

Squeeze 자간을 조정하여 한 줄을 유지Keep 내용에 따라 폭이 늘어남

Text Wrap축약어 TextWrapType

설명

Square bound rect를 따라Tight 오브젝트의 outline을 따라

Through 오브젝트 내부의 빈 공간까지TopAndBottom 좌/우에는 텍스트를 배치하지 않음

BehindText 글과 겹치게 하여 글 뒤로InFrontOfText 글과 겹치게 하여 글 앞으로

필드의 종류축약어 FieldType

설명

Clickhere 누름틀Hyperlink 하이퍼링크Bookmark 블록 책갈피Formula 표계산식Summery 문서요약UserInfo 사용자정보

Date 현재 날짜/시간DocDate 문서 날짜/시간

Path 파일 경로Crossref 상호참조

Mailmerge 메일머지Memo 메모

RevisionChangeRevisionSign

RevisionDeleteRevisionAttach

RevisionClippingRevisionSawtoothRevisionThinkingRevisionPraiseRevisionLine

RevisionSimpleChangeRevisionHyperlink

RevisionLineAttachRevisionLineLink

RevisionLineTransferRevisionRightmoveRevisionLeftmoveRevisionTransfer

RevisionSplit

Page 63: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

55

3. 루트 엘리먼트HWPML

설명 HWPML의 시작을 알리는 루트 엘리먼트.부모 엘리먼트자식 엘리먼트 HEAD, BODY, TAIL

속성

Version HWPML의 버전. 2.8 2.8SubVersion 8.0.0.0 8.0.0.0

Style2 embed | export embed

표 2 HWPML 엘리먼트

Page 64: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

56

4. 헤더 엘리먼트HEAD

설명 문서요약정보 외에 글꼴, 글자속성, 문단속성에 대한 테이블 등 문서에 대한 전반적인 정보를 담고 있다.

부모 엘리먼트 HWPML자식 엘리먼트 DOCSUMMARY, DOCSETTING, MAPPINGTABLE

속성

SecCnt 구역의 개수 0 이상의 정수형

표 3 HEAD 엘리먼트

4.1. 문서 요약 정보 엘리먼트

DOCSUMMARY설명 문서요약정보를 담는다.

부모 엘리먼트 HEAD

자식 엘리먼트 TITLE, SUBJECT, AUTHOR, DATE, KEYWORDS, COMMENTS, FORBIDDENSTRING

표 4 DOCSUMMARY 엘리먼트

TITLE설명 문서 제목

부모 엘리먼트 DOCSUMMARY엘리먼트 값 문자열 형태의 문서 제목

표 5 TITLE 엘리먼트

SUBJECT설명 문서 주제

부모 엘리먼트 DOCSUMMARY엘리먼트 값 문자열 형태의 문서 주제

표 6 SUBJECT 엘리먼트

AUTHOR설명 문서 저자

부모 엘리먼트 DOCSUMMARY엘리먼트 값 문자열 형태의 문서 저자

표 7 AUTHOR 엘리먼트

DATE설명 작성 날짜

부모 엘리먼트 DOCSUMMARY엘리먼트 값 문자열 형태의 문서 작성 날짜

표 8 DATE 엘리먼트

Page 65: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

57

KEYWORDS설명 키워드

부모 엘리먼트 DOCSUMMARY엘리먼트 값 문자열 형태의 문서 키워드

표 9 KEYWORDS 엘리먼트

COMMENTS설명 기타 설명

부모 엘리먼트 DOCSUMMARY엘리먼트 값 문자열 형태의 기타 설명

표 10 COMMENTS 엘리먼트

FORBIDDENSTRING설명 금칙 문자

부모 엘리먼트 DOCSUMMARY자식 엘리먼트 FORBIDDEN

표 11 FORBIDDENSTRING 엘리먼트

FORBIDDEN설명 금지 문자열

부모 엘리먼트 FORBIDDENSTRING엘리먼트 값 문자열

속성

id 한정자 문자열

표 12 HEAD 엘리먼트

Page 66: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

58

4.2. 문서 설정 정보 엘리먼트

DOCSETTING설명 각종 설정 정보를 담는다.

부모 엘리먼트 HEAD자식 엘리먼트 BEGINNUMBER, CARETPOS

표 13 DOCSETTING 엘리먼트

BEGINNUMBER설명 문서 내 각종 시작번호에 대한 정보

부모 엘리먼트 DOCSETTING엘리먼트 값

속성

Page 페이지 시작 번호 1 이상의 정수형 1Footnote 각주 시작 번호 1 이상의 정수형 1Endnote 미주 시작 번호 1 이상의 정수형 1Picture 그림 시작 번호 1 이상의 정수형 1Table 표 시작 번호 1 이상의 정수형 1

Equation 수식 시작 번호 1 이상의 정수형 1TotalPage 전체 페이지 수 1 이상의 정수형 1

표 14 BEGINNUMBER 엘리먼트

CARETPOS설명 문서 내 캐럿의 위치 정보

부모 엘리먼트 DOCSETTING엘리먼트 값

속성

List 리스트 아이디 문자열Para 문단 아이디 문자열Pos 문단 내에서의 글자단위 위치 문자열

표 15 CARETPOS 엘리먼트

Page 67: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

59

4.3. 문서 글꼴/스타일 정보

MAPPINGTABLE

설명 본문에 사용 중인 글꼴, 글자속성, 문단속성, 탭, 스타일 등등에 대한 세부정보를 담고 있다.

부모 엘리먼트 HEAD

자식 엘리먼트

BINDATALIST, FACENAMELIST,BORDERFILLLIST, CHARSHAPELIST,TABDEFLIST, NUMBERINGLIST, BULLETLIST, PARASHAPELIST, STYLELIST, MEMOSHAPELIST

표 16 MAPPINGTABLE 엘리먼트

4.3.1. 문서 내 그림/OLE 정보

BINDATALIST설명 그림, OLE등의 바이너리 데이터 리스트.

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 BINITEM

속성

Count BINITEM의 갯수 0 이상의 정수형 0

표 17 BINDATALIST 엘리먼트

BINITEM

설명

그림, OLE등의 바이너리 데이터 아이템에 대한 정보.DTD상으로는 Type을 제외한 속성들이 #IMPLIED로 선언되어 있지만, 실제로는 Type="Link"일때 APath와 RPath가 필수이며, Type="Embedding"일때는 BinData와 Format이 필수이다.

부모 엘리먼트 BINDATALIST엘리먼트 값

속성

Type 그림의 경우 "Link"와 "Embedding"만 가능.OLE의 경우 "Storage"만 가능.

Link (외부 파일) | Embedding (문서 포함)

| Storage (OLE)

APath Type이 "Link"일때, 연결 파일의 절대 경로RPath Type이 "Link"일때, 연결 파일의 상대 경로

BinDataType이 "Embedding"이거나 "Storage"일때, BINDATASTORAGE에 저장된 바이너리 데이터의 아이디

Format

Type이 "Embedding"일때, 바이너리 데이터의 포맷종류그림의 경우 "jpg", "bmp", "gif" 중 선택.OLE의 경우 "ole"만 가능.

jpg | bmp | gif | ole

표 18 BINITEM 엘리먼트

Page 68: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

60

4.3.2. 글꼴 정보

FACENAMELIST설명 글꼴 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 FONTFACE

표 19 FACENAMELIST 엘리먼트

FONTFACE설명 언어별 글꼴 그룹

부모 엘리먼트 FACENAMELIST자식 엘리먼트 FONT

속성

Lang 글꼴에 대한 언어 종류. [LangType]Count 글꼴의 갯수 0 이상의 정수형

표 20 FONTFACE 엘리먼트

FONT설명 각각의 글꼴

부모 엘리먼트 FONTFACE자식 엘리먼트 SUBSTFONT, TYPEINFO

속성

Id 글꼴 아이디 0 이상의 정수형Type 글꼴의 유형. rep | ttf | hftName 글꼴 이름 문자열

표 21 FONT 엘리먼트

SUBSTFONT설명 대체 글꼴

부모 엘리먼트 FONT엘리먼트 값

속성

Type 대체 글꼴의 유형. rep | ttf | hftName 글꼴 이름 문자열

표 22 SUBSTFONT 엘리먼트

TYPEINFO

설명 글꼴속성에 따라 글꼴을 대체하는 PANOSE시스템의 폰트 분류 속성들에 대한 정보

부모 엘리먼트 FONT엘리먼트 값

속성

FamilyType 글꼴 계열SerifStyle 세리프 유형Weight 굵기

Proportion 비례Contrast 대조

StrokeVariation 스트로크 편차ArmStyle 자획유형

Letterform 글자형Midline 중간선XHeight X-높이

표 23 TYPEINFO 엘리먼트

Page 69: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

61

4.3.3. 테두리/배경/채우기 정보

BORDERFILLLIST설명 테두리/배경/채우기 정보 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 BORDERFILL

속성

Count 테두리/배경 항목의 갯수 0 이상의 정수형

표 24 BORDERFILLLIST 엘리먼트

BORDERFILL

설명 문단, 표의 셀, 그림 및 그리기 개체에서 사용하는 테두리/배경/채우기 에 대한 각각의 세부 정보

부모 엘리먼트 BORDERFILLLIST

자식 엘리먼트 LEFTBORDER, RIGHTBORDER, TOPBORDER, BOTTOMBORDER, DIAGONAL, FILLBRUSH

속성

Id 테두리/채우기 항목 아이디 1 이상의 정수

ThreeD 3D효과 on/off (미구현) true | false falseShadow 그림자 효과 on/off (미구현) true | false false

Slash테두리/배경 대화상자의 Slash 대각선 모양 중 왼쪽부터 차례대로 "0", "2", "3", "6", "7"

0 | 2 | 3 | 6 | 7 0

BackSlash테두리/배경 대화상자의 BackSlash 대각선 모양 중 왼쪽부터 차례대로 "0", "2", "3", "6", "7"

0 | 2 | 3 | 6 | 7 0

CrookedSlash

꺽어진 대각선. Slash, BackSlash의 가운데 대각선이 꺽어진 대각선임을 나타냄.테두리/배경 대화상자의 Slash 또는 BackSlash 대각선 모양 중 마지막 6번째 모양을 표시한다.

0

CounterSlash 0CounterBackSlash 0

BreakCellSeparateLine 0

표 25 BORDERFILL 엘리먼트

LEFTBORDERRIGHTBORDERTOPBORDER

BOTTOMBORDERDIAGONAL

설명 왼쪽/오른쪽/위/아래/대각선 테두리 정보부모 엘리먼트 BORDERFILL엘리먼트 값

속성

Type 테두리선 종류 [LineType1] Sold

Width 테두리선 굵기. [LineWidth] 0.12mm

Color 테두리선 색상. [RGB-Color] 0

표 26 LEFTBORDER, RIGHTBORDER, TOPBORDER, BOTTOMBORDER, DIAGONAL 엘리먼트

Page 70: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

62

FILLBRUSH설명 채우기 정보

부모 엘리먼트 BORDERFILL자식 엘리먼트 WINDOWBRUSH, GRADATION, IMAGEBRUSH

표 27 FILLBRUSH 엘리먼트

WINDOWBRUSH설명 면 채우기

부모 엘리먼트 FILLBRUSH엘리먼트 값

속성

FaceColor 면색 [RGB-Color]HatchColor 무늬색 [RGB-Color]

HatchStyle 무늬종류 [HatchStyle]

Alpha

표 28 WINDOWBRUSH 엘리먼트

GRADATION설명 그라데이션 효과

부모 엘리먼트 FILLBRUSH자식 엘리먼트 COLOR

속성

Type 그라데이션 유형. Linear (줄무늬형) | Radial (원형) | Conical (원뿔형) | Square (사각형)

Angle 그러데이션의 기울임(시작각) 90CenterX 그러데이션의 가로중심(중심 X 좌표) 0CenterY 그러데이션의 세로중심(중심 Y 좌표) 0

Step 그러데이션 번짐 정도 0 ~ 100 50

ColorNum 그러데이션의 색수 워디안/글2002/SE에서는 항상 2이다. 2

StepCenter 그러데이션 번짐 정도의 중심 0 ~ 100 50Alpha

표 29 GRADATION 엘리먼트

COLOR설명 그라데이션 색

부모 엘리먼트 GRADATION엘리먼트 값

속성

Value 색 [RGB-Color]

표 30 COLOR 엘리먼트

IMAGEBRUSH설명 그림으로 채우기

부모 엘리먼트 FILLBRUSH자식 엘리먼트 IMAGE

속성

Mode 채우기 유형 [InfillMode] Tile

표 31 IMAGEBRUSH 엘리먼트

Page 71: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

63

IMAGE설명 그림 정보

부모 엘리먼트 IMAGEBRUSH엘리먼트 값

속성

Bright 밝기 0Contrast 명암 0

Effect 그림 효과RealPic (원래 그림에서) |

GrayScale (그레이스케일로) | BlackWhite (흑백으로)

BinItem BINDATALIST의 BINITEM엘리먼트의 아이디 참조값

Alpha

표 32 IMAGE 엘리먼트

Page 72: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

64

4.3.4. 글자 모양 정보

CHARSHAPELIST설명 글자 모양 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 CHARSHAPE

속성

Count 글자 모양 항목 갯수 0 이상의 정수

표 33 CHARSHAPELIST 엘리먼트

CHARSHAPE설명 글자 모양 정보

부모 엘리먼트 CHARSHAPELIST

자식 엘리먼트FONTID, RATIO, CHARSPACING, RELSIZE, CHAROFFSET, ITALIC, BOLD, UNDERLINE, OUTLINE, SHADOW, EMBOSS, ENGRAVE, SUPERSCRIPT, SUBSCRIPT

속성

Id 글자 모양 아이디 0 이상의 정수Height 글자 크기. [hwpunit] 1000

TextColor 글자색 [RGB-Color] 0ShadeColor 음영색 [RGB-Color] 4294967295

UseFontSpace 글꼴에 어울리는 빈칸 true | false falseUseKerning 커닝 true | false falseSymMark 강조점 종류 0

BorderFillId 글자테두리 기능

표 34 CHARSHAPE 엘리먼트

FONTID설명 언어별 글꼴

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Hangul 한글글꼴 아이디 참조값.<FONTFACE Lang="Hangul">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

Latin 영문글꼴 아이디 참조값.<FONTFACE Lang="Latin">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

Hanja 한자글꼴 아이디 참조값.<FONTFACE Lang="Hanja">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

Japanese 일본어글꼴 아이디 참조값.<FONTFACE Lang="Japanese">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

Other 외국어글꼴 아이디 참조값.<FONTFACE Lang="Other">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

Symbol 기호글꼴 아이디 참조값.<FONTFACE Lang="Symbol">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

User 사용자글꼴 아이디 참조값.<FONTFACE Lang="User">의

자식엘리먼트인 FONT엘리먼트들 중 참조하고자 하는 엘리먼트의 Id 속성값

표 35 FONTID 엘리먼트

Page 73: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

65

RATIO설명 언어별 장평

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Hangul 한글글꼴에서의 장평 50% ~ 200% 100Latin 영문글꼴에서의 장평 50% ~ 200% 100Hanja 한자글꼴에서의 장평 50% ~ 200% 100

Japanese 일본어글꼴에서의 장평 50% ~ 200% 100Other 외국어글꼴에서의 장평 50% ~ 200% 100

Symbol 기호글꼴에서의 장평 50% ~ 200% 100User 사용자글꼴에서의 장평 50% ~ 200% 100

표 36 RATIO 엘리먼트

CHARSPACING설명 언어별 자간

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Hangul 한글글꼴에서의 자간 -50% ~ 50% 0Latin 영문글꼴에서의 자간 -50% ~ 50% 0Hanja 한자글꼴에서의 자간 -50% ~ 50% 0

Japanese 일본어글꼴에서의 자간 -50% ~ 50% 0Other 외국어글꼴에서의 자간 -50% ~ 50% 0

Symbol 기호글꼴에서의 자간 -50% ~ 50% 0User 사용자글꼴에서의 자간 -50% ~ 50% 0

표 37 RATIO 엘리먼트

RELSIZE설명 언어별 글자의 상대크기

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Hangul 한글글꼴에서의 상대크기 10% ~ 250% 100Latin 영문글꼴에서의 상대크기 10% ~ 250% 100Hanja 한자글꼴에서의 상대크기 10% ~ 250% 100

Japanese 일본어글꼴에서의 상대크기 10% ~ 250% 100Other 외국어글꼴에서의 상대크기 10% ~ 250% 100

Symbol 기호글꼴에서의 상대크기 10% ~ 250% 100User 사용자글꼴에서의 상대크기 10% ~ 250% 100

표 38 RELSIZE 엘리먼트

Page 74: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

66

CHAROFFSET

설명언어별 글자위치(상하위치)0%을 기준으로 하여 100%에 가까울수록 글자위치가 아래로 내려가고 -100%에 가까울수록 위로 올라간다.

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Hangul 한글글꼴에서의 글자위치 -100% ~ 100% 0Latin 영문글꼴에서의 글자위치 -100% ~ 100% 0Hanja 한자글꼴에서의 글자위치 -100% ~ 100% 0

Japanese 일본어글꼴에서의 글자위치 -100% ~ 100% 0Other 외국어글꼴에서의 글자위치 -100% ~ 100% 0

Symbol 기호글꼴에서의 글자위치 -100% ~ 100% 0User 사용자글꼴에서의 글자위치 -100% ~ 100% 0

표 39 CHAROFFSET 엘리먼트

ITALIC설명 글자 속성 : 기울임

부모 엘리먼트 CHARSHAPE엘리먼트 값

표 40 ITALIC 엘리먼트

BOLD설명 글자 속성 : 진하게

부모 엘리먼트 CHARSHAPE엘리먼트 값

표 41 BOLD 엘리먼트

UNDERLINE설명 글자 속성 : 밑줄

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Type 밑줄 종류 Bottom (글자 아래) | Center (글자 중간) | Top (글자 위)

Bottom

Shape 밑줄 모양 [LineType2] SolidColor 밑줄 색 [RGB-Color] 0

표 42 UNDERLINE 엘리먼트

STRIKEOUT설명 글자 속성 : 취소선

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Type 취소선 종류 None (없음) | Continuous (연속선)

Continuous

Shape [LineType2] SolidColor 취소선 색 [RGB-Color] 0

표 43 STRIKEOUT 엘리먼트

Page 75: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

67

OUTLINE설명 글자 속성 : 외곽선

부모 엘리먼트 CHARSHAPE엘리먼트 값

속성

Type 외곽선 종류 [LineType3] Solid

표 44 OUTLINE 엘리먼트

SHADOW설명 글자 속성 : 그림자

부모 엘리먼트 CHARSHAPE, DRAWINGOBJECT, TEXTARTSHAPE엘리먼트 값

속성

Type 그림자 종류 Drop (비연속) | Cont (연속)

Color 그림자 색 [RGB-Color]OffsetX 그림자 간격 X -100% - 100% 10OffsetY 그림자 간격 Y -100% - 100% 10Alpha

표 45 SHADOW 엘리먼트

EMBOSS설명 글자 속성 : 양각

부모 엘리먼트 CHARSHAPE엘리먼트 값

표 46 EMBOSS 엘리먼트

ENGRAVE설명 글자 속성 : 음각

부모 엘리먼트 CHARSHAPE엘리먼트 값

표 47 ENGRAVE 엘리먼트

SUPERSCRIPT설명 글자 속성 : 위 첨자

부모 엘리먼트 CHARSHAPE엘리먼트 값

표 48 SUPERSCRIPT 엘리먼트

SUBSCRIPT설명 글자 속성 : 아래 첨자

부모 엘리먼트 CHARSHAPE엘리먼트 값

표 49 SUBSCRIPT 엘리먼트

Page 76: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

68

4.3.5. 탭 정보

TABDEFLIST설명 탭 정의 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 TABDEF

속성

Count 탭 정의 개수 0 이상의 정수

표 50 TABDEFLIST 엘리먼트

TABDEF설명 탭 정의 정보

부모 엘리먼트 TABDEFLIST자식 엘리먼트 TABITEM

속성

Id 탭 정의 아이디 0 이상의 정수AutoTabLeft 문단 왼쪽 끝 자동탭 (내어 쓰기용 자동탭) true | false false

AutoTabRight 문단 오른쪽 끝 자동탭 true | false false

표 51 TABDEF 엘리먼트

TABITEM설명 탭 항목

부모 엘리먼트 TABDEF엘리먼트 값

속성

Pos 탭의 위치 [hwpunit]

Type 탭의 종류 Left (왼쪽) | Right (오른쪽) | Center (가운데) | Decimal (소수점)

Left

Leader 채움 종류 [LineType2] Solid

표 52 TABITEM 엘리먼트

NUMBERINGLIST설명 번호 문단 모양 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 NUMBERING

속성

Count 번호 문단 모양의 갯수 0 이상의 정수

표 53 NUMBERINGLIST 엘리먼트

NUMBERING설명 번호 문단 모양 정보

부모 엘리먼트 NUMBERINGLIST자식 엘리먼트 PARAHEAD

속성

Id 번호 문단 모양 아이디 1 이상의 정수Start 시작 번호 1

표 54 NUMBERING 엘리먼트

Page 77: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

69

PARAHEAD설명 각 번호/글머리표 문단 머리의 정보

부모 엘리먼트 NUMBERING, BULLET

엘리먼트 값

문단 머리 문자열 포맷이다.문자열 내 특정 문자에 제어코드(^)를 붙임으로써 글에서 표시되는 번호 문단 머리의 포맷을 제어한다. ^n : 레벨 경로를 표시한다. (예: 1.1.1.1.1.1.1) ^N : 레벨 경로를 표시하며 마지막에 마침표를 하나 더 찍는다. (예: 1.1.1.1.1.1.1.) ^레벨번호(1~7) : 해당 레벨에 해당하는 숫자 또는 문자 또는 기호를 표시한다.

속성

Level 수준 1 ~ 7

Alignment 문단의 정렬 종류 Left | Center | Right Left

UseInstWidth 번호 너비를 실제 인스턴스 문자열의 너비에 따를지 여부 true | false true

AutoIndent 자동 내어쓰기 여부 true | false trueWidthAdjust 번호 너비 보정값 [hwpunit] 0

TextOffsetType 수준별 본문과의 거리 단위 종류 percent | hwpunit percent

TextOffset 본문과의 거리 50

NumFormat 번호 포맷(불릿 문단의 경우에는 사용되지 않는다.) [NumberType1] Digit

CharShape 글자 모양 아이디 참조

표 55 PARAHEAD 엘리먼트

Page 78: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

70

4.3.6. 글머리표 정보

BULLETLIST설명 글머리표 문단 모양 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 BULLET

속성

Count 글머리표 문단 모양의 개수 0 이상의 정수

표 56 BULLETLIST 엘리먼트

BULLET설명 글머리표 문단 모양 정보

부모 엘리먼트 BULLETLIST엘리먼트 값 PARAHEAD

속성

Id 글머리표 문단 모양 아이디 1 이상의 정수Char 글머리표 문자

Image true | false false

표 57 BULLET 엘리먼트

Page 79: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

71

4.3.7. 문단 모양 정보

PARASHAPELIST설명 문단 모양 리스트

부모 엘리먼트 MAPPINGTABLE엘리먼트 값 PARASHAPE

속성

Count 문단 모양의 개수 0 이상의 정수

표 58 PARASHAPELIST 엘리먼트

PARASHAPE설명 문단 모양

부모 엘리먼트 PARASHAPELIST자식 엘리먼트 PARAMARGIN, PARABORDER

속성

Id 문단 모양 아이디 0 이상의 정수Align 정렬 방식 [AlignmentType1] Justify

VerAlign 세로 정렬

Baseline (글꼴기준) | Top (위쪽) |

Center (가운데) | Bottom (아래)

Baseline

HeadingType 문단 머리 모양 종류

None (없음) | Outline (개요) | Number (번호) | Bullet (글머리표)

None

Heading 번호 문단 또는 글머리표 문단 모양 아이디 참조값

Level 단계 0 ~ 6 0TabDef 탭정의 아이디 참조값

BreakLatinWord 줄 나눔 단위 (라틴 문자)KeepWord (단어) |

Hyphenation (하이픈) | BreakWord (글자)

KeepWord

BreakNonLatinWord 줄 나눔 단위 (비라틴 문자) true (글자) | false (어절) trueCondense 공백 최소값 0% ~ 75% 0

WidowOrphan 외톨이줄 보호 true | false falseKeepWithNext 다음 문단과 함께 true | false false

KeepLines 문단 보호 true | false falsePageBreakBefore 문단 앞에서 항상 쪽나눔 true | false falseFontLineHeight 글꼴에 어울리는 줄높이 true | false false

SnapToGrid 편집 용지의 줄격자 사용 true | false trueLineWrap 한줄로 입력 [LineWrapType] Break

AutoSpaceEAsianEng 한글과 영어 간격을 자동 조절 true | false trueAutoSpaceEAsianNum 한글과 숫자 간격을 자동 조절 true | false true

표 59 PARASHAPE 엘리먼트

Page 80: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

72

PARAMARGIN설명 문단 여백

부모 엘리먼트 PARASHAPE엘리먼트 값

속성

Indent

들여쓰기/내어쓰기.숫자 다음에 "ch"가 붙어 있으면 글자수로 표시된 것이고 그 외 숫자만으로 된 경우는 hwpunit단위이다.

hwpunit 또는 글자수.

n > 0 : 들여쓰기 nn == 0 : 보통

n < 0 : 내어쓰기 n

0

Left 왼쪽 여백 [hwpunit] 또는 글자수 0Right 오른쪽 여백 [hwpunit] 또는 글자수 0Prev 문단 간격 위 [hwpunit] 또는 글자수 0Next 문단 간격 아래 [hwpunit] 또는 글자수 0

LineSpacingType 줄 간격 종류

Percent (글자에 따라) | Fixed (고정값) |

BetweenLines (여백만 지정) | AtLeast (최소)

Percent

LineSpacing 줄 간격 값

0% ~ 500% (Type이 “Percent”일 때), [hwpunit] 또는 글자수 (Type이

“Fixed”일 때), [hwpunit] 또는 글자수 (Type이

“BetweenLines”일 때)

160

표 60 PARAMARGIN 엘리먼트

PARABORDER설명 문단 테두리/배경

부모 엘리먼트 PARASHAPE엘리먼트 값

속성

BorderFill 테두리/배경 모양 아이디 참조값 BORDERFILL엘리먼트의 Id속성 값

OffsetLeft 문단 테두리 왼쪽 간격 [hwpunit]OffsetRight 문단 테두리 오른쪽 간격 [hwpunit]OffsetTop 문단 테두리 위쪽 간격 [hwpunit]

OffsetBottom 문단 테두리 아래쪽 간격 [hwpunit]Connect 문단 테두리 연결 여부 true | false false

IgnoreMargin 문단 테두리 여백 무시 여부 true | false false

표 61 PARABORDER 엘리먼트

Page 81: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

73

4.3.8. 스타일 정보

STYLELIST설명 스타일 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 STYLE

속성

Count 스타일 갯수 0 이상의 정수

표 62 STYLELIST 엘리먼트

STYLE설명 스타일 정보

부모 엘리먼트 STYLELIST엘리먼트 값

속성

Id 스타일 아이디

Type 스타일 종류 Para (문단 스타일) | Char (글자 스타일)

Para

Name 로컬 스타일 이름.한글윈도우에서는 한글 스타일 이름.

EngName 영문 스타일 이름.

ParaShape문단 모양 아이디 참조값.스타일의 종류가 문단인 경우 반드시 지정해야 한다.

PARASHAPE엘리먼트의 Id속성값

CharShape글자 모양 아이디 참조값.스타일의 종류가 글자인 경우 반드시 지정해야 한다.

CHARSHAPE엘리먼트의 Id속성값

NextStyle다음 스타일 아이디 참조값.문단 스타일에서 사용자가 리턴키를 입력하여 다음 문단으로 이동하였을때 적용될 문단 스타일을 지정한다.

LangId 언어 아이디LockForm 양식모드에서 Style 보호하기

표 63 STYLE 엘리먼트

Page 82: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

74

4.3.9. 메모 정보

MEMOSHAPELIST설명 메모 리스트

부모 엘리먼트 MAPPINGTABLE자식 엘리먼트 MEMO

속성

Count 메모 개수 0 이상의 정수

표 64 MEMOSHAPELIST 엘리먼트

MEMO설명 메모

부모 엘리먼트 MEMOSHAPELIST엘리먼트 값

속성

Id 메모 아이디Width 메모의 선 두께 0

LineType 메모의 선 종류LineColor 메모의 선의 색 [RGB-Color]FillColor 메모의 색 [RGB-Color]

ActiveColor 메모가 활성화 되었을 때 색 [RGB-Color]MemoType

표 65 MEMO 엘리먼트

Page 83: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

75

5. 본문 엘리먼트BODY

설명 본문부모 엘리먼트 HWPML자식 엘리먼트 SECTION

표 66 BODY 엘리먼트

SECTION설명 구역

부모 엘리먼트 BODY엘리먼트 값 P

속성

Id 구역 아이디

표 67 SECTION 엘리먼트

P설명 문단

부모 엘리먼트 SECTION엘리먼트 값 TEXT

속성

ParaShape 문단 모양 아이디 참조값 PARASHAPE 엘리먼트의 Id 값

Style 문단 스타일 아이디 참조값 STYLE 엘리먼트의 Id 값

InstId 개요 문단일 경우 문서내 유일한 아이디.개요 문단이 아닐 때는 사용되지 않는다.

PageBreak 현재 문단에서 쪽 나눔(CTRL-ENTER)이 되었는지 여부 true | false false

ColumnBreak 현재 문단에서 단 나눔(CTRL-SHIFT-ENTER)이 되었는지 여부 true | false false

표 68 P 엘리먼트

TEXT설명 컨트롤을 포함한 텍스트 문자열

부모 엘리먼트 P

자식 엘리먼트

SECDEF, COLDEF, TABLE, PICTURE, CONTAINER, OLE, EQUATION, TEXTART, LINE, RECTANGLE, ELLIPSE, ARC, POLYGON, CURVE, CONNECTLINE, UNKNOWNOBJECT, FIELDBEGIN, FIELDEND, BOOKMARK, HEADER, FOOTER, FOOTNOTE, ENDNOTE, AUTONUM, NEWNUM, PAGENUMCTRL, PAGEHIDING, PAGENUM, INDEXMARK, COMPOSE, DUTMAL, HIDDENCOMMENT, BUTTON, RADIOBUTTON, CHECKBUTTON, COMBOBOX, EDIT, LISTBOX, SCROLLBAR

속성

CharShape 글자 모양 아이디 참조값 CHARSHAPE엘리먼트의 Id값

표 69 TEXT 엘리먼트

Page 84: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

76

5.1. 글자 엘리먼트

CHAR설명 글자

부모 엘리먼트 TEXT

자식 엘리먼트 문자열, TAB, LINEBREAK, HYPEN, NBSPACE, FWSPACE, TITLEMARK, MARKPENBEGIN, MARKPENEND

속성

Style 스타일 아이디 참조값

표 70 CHAR 엘리먼트

MARKPENBEGIN설명 형광펜 시작

부모 엘리먼트 CHAR엘리먼트 값

속성

Color 형광펜 색 [RGB-Color]

표 71 MARKPENBEGIN 엘리먼트

MARKPENEND설명 형광펜 끝

부모 엘리먼트 CHAR엘리먼트 값

표 72 MARKPENEND 엘리먼트

TITLEMARK설명 제목 차례 표시

부모 엘리먼트 CHAR엘리먼트 값

속성

Ignore 제목 차례를 표시 = false차례 만들기 무시 = true true | false

표 73 TITLEMARK 엘리먼트

TAB설명 탭

부모 엘리먼트 CHAR자식 엘리먼트

표 74 TAB 엘리먼트

LINEBREAK설명 강제 줄 나눔 (SHIFT-ENTER)

부모 엘리먼트 CHAR자식 엘리먼트

표 75 LINEBREAK 엘리먼트

Page 85: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

77

HYPEN설명 하이픈 (CTRL-SHIFT-'-')

부모 엘리먼트 CHAR자식 엘리먼트

표 76 HYPEN 엘리먼트

NBSPACE설명 묶음 빈 칸 (CTRL-ALT-SPACE)

부모 엘리먼트 CHAR자식 엘리먼트

표 77 NBSPACE 엘리먼트

FWSPACE설명 고정폭 빈 칸 (ALT-SPACE)

부모 엘리먼트 CHAR자식 엘리먼트

표 78 FWSPACE 엘리먼트

Page 86: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

78

5.2. 구역 정의 엘리먼트

SECDEF설명 구역 정의

부모 엘리먼트 TEXT

자식 엘리먼트PARAMETERSET, STARTNUMBER, HIDE, PAGEDEF, FOOTNOTESHAPE, ENDNOTESHAPE, PAGEBORDERFILL, MASTERPAGE, EXT_MASTERPAGE

속성

TextDirection 텍스트 방향 0 (가로) | 1 (세로) 0

SpaceColumns 동일한 페이지에서 서로 다른 단 사이의 간격 [hwpunit]

TabStop 기본 탭 간격 [hwpunit] 또는 글자수 8000

OutlineShape 개요 번호 모양 아이디 참조값.

NUMBERING엘리먼트의 Id속성값 1

LineGrid 세로로 줄맞춤을 할지 여부 0 : off,1~n : hwpunit 단위의 간격 0

CharGrid 가로로 줄맞춤을 할지 여부 0 : off,1~n : hwpunit 단위의 간격 0

FirstBorder 구역의 첫쪽에만 테두리를 표시할지 여부 true | false false

FirstFill 구역의 첫쪽에만 배경을 표시할지 여부 true | false false

ExtMasterpageCount 0MemoShapeId

TextVerticalWidthHead

표 79 SECDEF 엘리먼트

PARAMETERSET

설명Parameter Set. 글 내부에서 모듈 간 데이터 전달을 위해 사용하는 데이터 구조로 정의되었으나, 컨트롤 개체에 따라 특정 데이터를 Parameter Set 형태로 저장하는 경우가 있다. 극히 드물게 사용된다.

부모 엘리먼트 SECDEF, ITEM, COLDEF, SHAPECOMPONENT, FORMOBJECT자식 엘리먼트 ITEM

속성

SetId Parameter Set 아이디Count Set안의 Item 개수 0 이상의 정수

표 80 PARAMETERSET 엘리먼트

PARAMETERARRAY

설명 Parameter Array. Parameter Set에서 배열을 표현하기 위한 구조. 자식 엘리먼트인 ITEM 엘리먼트가 배열의 각 원소에 해당한다.

부모 엘리먼트 ITEM자식 엘리먼트 ITEM

속성

Count Set안의 Item 개수 0 이상의 정수

표 81 PARAMETERARRAY 엘리먼트

Page 87: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

79

ITEM설명 Parameter Set 및 Parameter Array에서 각 아이템을 표시하는 단위.

부모 엘리먼트 PARAMETERSET, PARAMETERARRAY엘리먼트 값 문자열, PARAMETERSET, PARAMETERARRAY

속성

ItemId Item 아이디

Type Item의 종류Bstr (문자열) | Integer (정수) |

Set (Parameter Set) | Array (Parameter Array) | BinBata (binary data)

표 82 ITEM 엘리먼트

5.2.1. 시작 번호 정보

STARTNUMBER설명 문서의 구역내 존재하는 그림, 표, 수식 및 쪽의 시작 번호 정보.

부모 엘리먼트 SECDEF엘리먼트 값

속성

PageStartsOn 구역 나눔으로 새 페이지가 생길 때의 페이지 번호 적용 옵션

Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)

Both

Page 쪽 시작 번호 0 (앞 구역에 이어),n (임의의 번호로 시작)

0

Figure 그림 시작 번호 0 (앞 구역에 이어),n (임의의 번호로 시작)

0

Table 표 시작 번호 0 (앞 구역에 이어),n (임의의 번호로 시작)

0

Equation 수식 시작 번호 0 (앞 구역에 이어),n (임의의 번호로 시작)

0

표 83 STARTNUMBER 엘리먼트

5.2.2. 감추기 정보

HIDE설명 감추기 옵션들.

부모 엘리먼트 SECDEF엘리먼트 값

속성

Header 첫쪽에만 머리말 감추기 여부 true | false falseFooter 첫쪽에만 꼬리말 감추기 여부 true | false false

MasterPage 첫쪽에만 바탕쪽 감추기 여부 true | false falseBorder 첫쪽에만 테두리 감추기 여부 true | false false

Fill 첫쪽에만 배경 감추기 여부 true | false falsePageNumPos 첫쪽에만 쪽번호 감추기 여부 true | false false

EmptyLine 빈줄 감추기 여부 true | false false

표 84 HIDE 엘리먼트

Page 88: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

80

5.2.3. 용지 설정 정보

PAGEDEF

설명

용지 설정 정보.용지 크기의 디폴트는 'A4'(210 mm X 297 mm)이다.이때, 용지 가로 크기인 210 mm = 59529 hwpunit 이나 �글97과의 호환을 위해 59528 hwpunit을 사용한다.

부모 엘리먼트 SECDEF자식 엘리먼트 PAGEMARGIN

속성

Landscape 용지 방향 0 (좁게) | 1 (넓게) 0Width 용지 가로 크기 [hwpunit] 59528Height 용지 세로 크기 [hwpunit] 84188

GutterType 제책 방법LeftOnly (한쪽 편집) | LeftRight (맞쪽 편집) |

TopBottom (위로 넘기기)

LeftOnly

표 85 PAGEDEF 엘리먼트

PAGEMARGIN설명 용지 여백.

부모 엘리먼트 PAGEDEF엘리먼트 값

속성

Left 왼쪽 여백 [hwpunit] 8504Right 오른쪽 여백 [hwpunit] 8504Top 위 여백 [hwpunit] 5668

Bottom 아래 여백 [hwpunit] 4252Header 머리말 여백 [hwpunit] 4252Footer 꼬리말 여백 [hwpunit] 4252Gutter 제본 여백 [hwpunit] 0

표 86 PAGEMARGIN 엘리먼트

5.2.4. 각주/미주 모양 정보

FOOTNOTESHAPEENDNOTESHAPE

설명 각주모양 / 미주모양 정보부모 엘리먼트 SECDEF

자식 엘리먼트 AUTONUMFORMAT, NOTELINE, NOTESPACING, NOTENUMBERING, NOTEPLACEMENT

표 87 FOOTNOTESHAPE, ENDNOTESHAPE 엘리먼트

AUTONUMFORMAT설명 번호 서식

부모 엘리먼트 FOOTNOTESHAPE, ENDNOTESHAPE엘리먼트 값

속성

Type 번호 모양 종류 [NumberType2] DigitUserChar 사용자 기호PrefixChar 앞 장식 문자SuffixChar 뒤 장식 문자 )

Superscript 각주 내용중 번호 코드의 모양을 윗첨자 형식으로 할지 여부 true | false false

표 88 AUTONUMFORMAT 엘리먼트

Page 89: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

81

NOTELINE설명 구분선

부모 엘리먼트 FOOTNOTESHAPE, ENDNOTESHAPE엘리먼트 값

속성

Length 구분선 길이0 (구분선 없음) | 5cm (5cm) | 2cm (2cm) |

Column/3 (단 크기의 1/3) | Column (단 크기) | 그 외 (사용자 지정 길이, hwpunit)

Type 구분선 종류 [LineType1] SolidWidth 구분선 굵기 [LineWidth] 0.12mmColor 구분선 색 [RGB-Color]

표 89 NOTELINE 엘리먼트

NOTESPACING설명 여백

부모 엘리먼트 FOOTNOTESHAPE, ENDNOTESHAPE엘리먼트 값

속성

AboveLine 구분선 위 여백 [hwpunit] 567(2mm)BelowLine 구분선 아래 여백 [hwpunit] 567(2mm)

BetweenNotes 주석 사이 여백 [hwpunit] 850(3mm)

표 90 NOTESPACING 엘리먼트

NOTENUMBERING설명 번호 매기기

부모 엘리먼트 FOOTNOTESHAPE, ENDNOTESHAPE엘리먼트 값

속성

Type 번호 매기기Continuous (앞 구역에 이어서) |

OnSection (현재 구역부터 새로 시작) | OnPage (쪽마다 새로 시작, 각주 전용)

Continuous

NewNumber시작 번호(Type이 "OnSection"일 때만 사용한다.)

1 이상의 정수 1

표 91 NOTENUMBERING 엘리먼트

NOTEPLACEMENT설명 위치

부모 엘리먼트 FOOTNOTESHAPE, ENDNOTESHAPE엘리먼트 값

속성

Place

한 페이지 내에서 미주/각주를 다단에 어떻게 위치시킬지를 표시한다.

- 각주일 때EachColumn (각 단마다 따로 배열) | MergedColumn (통단으로 배열) | RightMostColumn (가장 오른쪽 단에 배열)

- 미주일 때EndOfDocument (문서의 마지막) | EndOfSection (구역의 마지막)

- 각주일 때 :EachColumn

- 미주일 때 :EndOfDocument

BeneathText 텍스트에 이어 바로 출력할지 여부 true | false false

표 92 NOTEPLACEMENT 엘리먼트

Page 90: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

82

5.2.5. 쪽 테두리/배경 정보

PAGEBORDERFILL설명 쪽 테두리/배경

부모 엘리먼트 SECDEF자식 엘리먼트 PAGEOFFSET

속성

Type 종류 Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)

Both

BorderFill 테두리/배경 아이디 참조값 BORDERFILL엘리먼트의 Id속성값

TextBorder 쪽 테두리 위치 기준 true (본문 기준) | false (종이 기준)

false

HeaderInside 머리말 포함 true | false falseFooterInside 꼬리말 포함 true | false false

FillArea 채울 영역 Paper (종이) | Page (쪽) | Border (테두리)

Paper

표 93 PAGEBORDERFILL 엘리먼트

PAGEOFFSET설명 테두리/배경 위치

부모 엘리먼트 PAGEBORDERFILL엘리먼트 값

속성

Left 왼쪽 간격 [hwpunit] 1417(5mm)Right 오른쪽 간격 [hwpunit] 1417(5mm)Top 위쪽 간격 [hwpunit] 1417(5mm)

Bottom 아래쪽 간격 [hwpunit] 1417(5mm)

표 94 PAGEOFFSET 엘리먼트

Page 91: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

83

5.2.6. 바탕쪽 정보

MASTERPAGE설명 바탕쪽

부모 엘리먼트 SECDEF자식 엘리먼트 PARALIST

속성

Type 종류 Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)

Both

TextWidth 텍스트 영역의 폭TextHeight 텍스트 영역의 높이

HasTextRef 각 비트가 해당 레벨의 텍스트에 대한 참조를 했는지 여부 true | false false

HasNumRef 각 비트가 해당 레벨의 번호에 대한 참조를 했는지 여부 true | false false

표 95 MASTERPAGE 엘리먼트

PARALIST설명 문단 리스트

부모 엘리먼트MASTERPAGE, EXT_MASTERPAGE, CELL, DRAWTEXT, CAPTION, HEADER, FOOTER, FOOTNOTE, ENDNOTE, HIDDENCOMMENT

자식 엘리먼트 P

속성

TextDirection 텍스트 방향 0 (가로) | 1 (세로) 0LineWrap 경계에서 줄나눔 방식 [LineWrapType] Break

VertAlign 세로 정렬 Top (위) | Center (가운데) | Bottom (아래)

Top

LinkListIDLinkListIDNext

표 96 PARALIST 엘리먼트

5.2.7. 확장 바탕쪽 정보

EXT_MASTERPAGE설명 확장 바탕쪽

부모 엘리먼트 SECDEF자식 엘리먼트 PARALIST

속성

Type 종류 LastPage (마지막쪽) | OptionalPage (임의쪽)

PageNumber (Type이 "OptionalPage"일 때) 임의의 쪽 번호 1 이상의 정수

PageDuplicate 기존 바탕쪽(양쪽, 홀수쪽, 짝수쪽)과 확장바탕쪽 겹침 true | false

PageFront 바탕쪽 앞으로 보내기 true | false

표 97 EXT_MASTERPAGE 엘리먼트

Page 92: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

84

5.3. 단 정의 정보

COLDEF설명 단 정의

부모 엘리먼트 TEXT자식 엘리먼트 PARAMETERSET, COLUMNLINE, COLUMNTABLE

속성

Type 단 종류Newspaper (보통) |

BalancedNewspaper (배분) | Parallel (평행)

Newspaper

Count 단 개수 1 ~ 255 1

Layout 단 방향 지정 Left (왼쪽부터) | Right (오른쪽부터) | Mirror (맞쪽)

Left

SameSize 단 너비 각자 지정 = false.단 너비 동일 = true true | false false

SameGap 단 사이 간격.SameSize가 "true"일 때만 사용. [hwpunit] 0

표 98 COLDEF 엘리먼트

COLUMNLINE설명 단 구분선

부모 엘리먼트 COLDEF엘리먼트 값

속성

Type 구분선 종류 [LineType] SolidWidth 구분선 굵기 [LineWidth] 0.12mmColor 구분선 색 [RGB-Color]

표 99 COLUMNLINE 엘리먼트

COLUMNTABLE설명 단 테이블

부모 엘리먼트 COLDEF자식 엘리먼트 COLUMN

표 100 COLUMNTABLE 엘리먼트

COLUMN설명 단

부모 엘리먼트 COLUMNTABLE엘리먼트 값

속성

Width 단의 폭 [hwpunit]Gap 단 사이 간격 [hwpunit]

표 101 COLUMN 엘리먼트

Page 93: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

85

5.4. 표

TABLE설명 표

부모 엘리먼트 TEXT엘리먼트 값 SHAPEOBJECT, INSIDEMARGIN, CELLZONELIST, ROW

속성

PageBreak 페이지 경계에서 나누는 방식Table (테이블은 나누지만 셀은 나누지 않는다)

| Cell ( 내의 텍스트도 나눈다) | None (나누지 않는다)

Cell

RepeatHeader 제목행을 반복할지 여부 true | false true

RowCount 행 갯수ColCount 열 갯수

CellSpacing 셀 간격(HTML의 셀간격과 동일 의미) [hwpunit] 0

BorderFill 테두리/배경 아이디 참조값 BORDERFILL엘리먼트의 Id속성값

표 102 TABLE 엘리먼트

SHAPEOBJECT설명 개체 속성

부모 엘리먼트 TABLE, PICTURE, LINE, RECTANGLE, ELLIPSE, ARC, POLYGON, CURVE, OLE, EQUATION

자식 엘리먼트 SIZE, POSITION, OUTSIDEMARGIN, CAPTION, SHAPECOMMENT

속성

InstId 문서내 각 개체에 대한 고유 아이디

ZOrder z-order 0

NumberingType 이 개체가 속하는 번호 범주 None (없음) | Figure (그림) | Table (표) | Equation (수식)

None

TextWrap

오브젝트 주위를 텍스트가 어떻게 흘러갈지 지정하는 옵션 (<POSITION TreatAsChar="false">일 때만 사용)

[TextWrapType]

TextFlow

오브젝트의 좌/우 어느쪽에 글을 배치할지 지정하는 옵션 (TextWrap이 "Square" 또는 "Tight" 또는 "Through"일때만 사용)

BothSides (양쪽) | LeftOnly (왼쪽) |

RightOnly (오른쪽) | LargestOnly (큰쪽)

BothSides

Lock 개체 선택 가능 여부 true | false false

표 103 SHAPEOBJECT 엘리먼트

Page 94: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

86

SIZE설명 크기

부모 엘리먼트 SHAPEOBJECT엘리먼트 값

속성

Width

오브젝트 폭.WidthRelTo의 값에 따라 다음과 같은 다른 단위를 뜻한다. - “Paper” : 종이의 몇 % - “Page” : 본문 영역의 몇 % - “Column” : 단의 몇 % - “Para” : 문단의 몇 % - “Absolute” : 고정값 hwpunit

[hwpunit]

Height

오브젝트의 높이.HeightRelTo의 값에 따라 다음과 같은 다른 단위를 뜻한다. - "Paper" : 종이의 몇 % - "Page" : 본문 영역의 몇 % - "Absolute" : 고정값 hwpunit

[hwpunit]

WidthRelTo오브젝트 폭의 기준.“Para” 값은 <POSITION VertRelTo = "Para">일 때만 가능함.

Paper (종이에 따라) | Page (쪽에 따라) |

Column (단에 따라) | Para (문단에 따라) | Absolute (고정값)

Absolute

HeightRelTo 오브젝트 높이의 기준Paper (종이에 따라) | Page (쪽에 따라) | Absolute (고정값)

Absolute

Protect 크기 보호 여부 true | false false

표 104 SIZE 엘리먼트

Page 95: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

87

POSITION설명 위치

부모 엘리먼트 SHAPEOBJECT엘리먼트 값

속성

TreatAsChar 글자처럼 취급 여부 true | false

AffectLSpacing 줄 간격에 영향을 줄지 여부.(TreatAsChar가 "true"일 때만 사용) true | false false

VertRelTo 세로 위치의 기준.(TreatAsChar가 "false"일 때만 사용)

Paper (종이) | Page (쪽) | Para (문단)

VertAlign

VertRelTo에 대한 상대적인 배열 방식.VertRelTo의 값에 따라 가능한 범위가 제한된다.(VertRelTo가 "Para"인 경우 “Para" 값만 가능, 나머지 경우에는 모든 값 가능.)

Top (위) | Center (가운데) | Bottom (아래) | Inside (안쪽) | Outside (바깥쪽)

HorzRelTo 가로 위치의 기준.(TreatAsChar가 "false"일 때만 사용)

Paper (종이) | Page (쪽) |

Column (단) | Para (문단)

HorzAlign HorzRelTo에 대한 상대적인 배열 방식.

Left (왼쪽) | Center (가운데) | Right (오른쪽) | Inside (안쪽) | Outside (바깥쪽)

VertOffset VertRelTo와 VertAlign을 기준점으로 한 상대적인 오프셋 값 [hwpunit] 0

HorzOffset HorzRelTo와 HorzAlign을 기준점으로 한 상대적인 오프셋 값 [hwpunit] 0

FlowWithText오브젝트의 세로 위치를 본문 영역으로 제한할지 여부.(VertRelTo가 "Para"일 때만 사용)

true | false false

AllowOverlap

다른 오브젝트와 겹치는 것을 허용할지 여부.(TreatAsChar가 "false"일 때만 사용, FlowWithText가 "true"이면 언제나 false로 간주함)

true | false false

HoldAnchorAndSO

개체와 조판부호를 항상 같은 쪽에 놓기 속성.SHAPEOBJECT엘리먼트가 TABLE엘리먼트의 자식인 경우에만 적용되며, 글 빌드번호 5.7.5.2992부터 추가된 속성임.

true | false false

표 105 POSITION 엘리먼트

OUTSIDEMARGIN설명 바깥 여백

부모 엘리먼트 SHAPEOBJECT엘리먼트 값

속성

Left 오브젝트의 바깥 왼쪽 여백 [hwpunit] TABLE일때 : 283PICTURE일때 : 0EQUATION일때 : 56그리기개체일때 : 0OLE일때 : ?

Right 오브젝트의 바깥 오른쪽 여백 [hwpunit]Top 오브젝트의 바깥 위쪽 여백 [hwpunit]

Bottom 오브젝트의 바깥 아래쪽 여백 [hwpunit]

표 106 OUTSIDEMARGIN 엘리먼트

Page 96: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

88

CAPTION설명 캡션

부모 엘리먼트 SHAPEOBJECT자식 엘리먼트 PARALIST

속성

Side 방향 Left | Right | Top | Bottom Left

FullSize 캡션 폭에 마진을 포함할지 여부.(Side가 가로 방향일 때만 사용) true | false false

Width 캡션 폭.(Side가 세로 방향일 때만 사용)

Gap 캡션과 틀 사이 간격 850LastWidth 텍스트의 최대 길이 (=개체의 폭)

표 107 CAPTION 엘리먼트

SHAPECOMMENT설명 주석

부모 엘리먼트 SHAPEOBJECT엘리먼트 값 문자열

표 108 SHAPECOMMENT 엘리먼트

INSIDEMARGIN설명 안쪽 여백

부모 엘리먼트 TABLE, PICTURE엘리먼트 값

속성

Left 왼쪽 여백 [hwpunit]TABLE일때 : 141PICTURE일때 : 0

Right 오른쪽 여백 [hwpunit]Top 위쪽 여백 [hwpunit]

Bottom 아래쪽 여백 [hwpunit]

표 109 INSIDEMARGIN 엘리먼트

CELLZONELIST설명 셀존 리스트

부모 엘리먼트 TABLE자식 엘리먼트 CELLZONE

속성

Count 셀존의 개수 0 이상의 정수

표 110 CELLZONELIST 엘리먼트

CELLZONE설명 셀존

부모 엘리먼트 CELLZONELIST엘리먼트 값

속성

StartRowAddr 셀존의 Row의 시작주소StartColAddr 셀존의 Column의 시작주소EndRowAddr 셀존의 Row의 끝주소EndColAddr 셀존의 Column의 끝주소 BorderFill 테두리/배경 아이디

표 111 CELLZONE 엘리먼트

Page 97: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

89

ROW설명 표의 행

부모 엘리먼트 TABLE자식 엘리먼트 CELL

표 112 ROW 엘리먼트

CELL설명 표의 셀

부모 엘리먼트 ROW자식 엘리먼트 CELLMARGIN, PARALIST

속성

Name 셀 필드 이름

ColAddr 셀 주소 (Column, 맨 왼쪽 셀이 0부터 시작하여 1씩 증가)

RowAddr 셀 주소 (Row, 맨 위쪽 셀이 0부터 시작하여 1씩 증가)

ColSpan 열의 병합 갯수 1RowSpan 행의 병합 갯수 1

Width 셀의 폭 [hwpunit]Height 셀의 높이 [hwpunit]Header 제목 셀인지 여부 true | false false

HasMargin 테이블의 기본 셀마진이 아닌 독자적인 마진을 사용할지 여부 true | false false

Protect 사용자 편집을 막을지 여부 true | false falseEditable 읽기 전용 상태에서도 수정 가능한지 여부 true | false false

Dirty 마지막으로 업데이트된 이후 사용자가 내용을 변경했는지 여부 true | false false

BorderFill 테두리/배경 아이디 참조값 BORDERFILL엘리먼트의 Id속성값

표 113 CELL 엘리먼트

CELLMARGIN설명 셀 여백

부모 엘리먼트 CELL엘리먼트 값

속성

Left 왼쪽 여백 [hwpunit] 0Right 오른쪽 여백 [hwpunit] 0Top 위쪽 여백 [hwpunit] 0

Bottom 아래쪽 여백 [hwpunit] 0

표 114 CELLMARGIN 엘리먼트

Page 98: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

90

5.5. 그림

PICTURE설명 그림

부모 엘리먼트 TEXT

자식 엘리먼트 SHAPEOBJECT, SHAPECOMPONENT, LINESHAPE, IMAGERECT, IMAGECLIP, EFFECTS, INSIDEMARGIN, IMAGE

속성

Reverse true | false false

표 115 PICTURE 엘리먼트

SHAPECOMPONENT설명 개체 요소 속성

부모 엘리먼트 PICTURE, DRAWINGOBJECT자식 엘리먼트 PARAMETERSET, ROTATIONINFO, RENDERINGINFO

속성

HRef 하이퍼링크 속성.하이퍼링크 필드 컨트롤의 Command속성과 동일.

XPos 개체가 속한 그룹내에서의 X offset [hwpunit] 0YPos 개체가 속한 그룹내에서의 Y offset [hwpunit] 0

GroupLevel 그룹으로 묶인 횟수 0OriWidth 개체 생성시 최초 폭 [hwpunit]OriHeight 개체 생성시 최초 높이 [hwpunit]CurWidth 개체의 현재 폭 [hwpunit]CurHeight 개체의 현재 높이 [hwpunit]HorzFlip 좌/우로 뒤집어진 상태인지 여부 true | false falseVertFlip 상/하로 뒤집어진 상태인지 여부 true | false falseInstID

표 116 SHAPECOMPONENT 엘리먼트

ROTATIONINFO설명 개체 회전

부모 엘리먼트 SHAPECOMPONENT엘리먼트 값

속성

Angle 회전각 0CenterX 회전중심의 x좌표 개체 좌표계-개체 width의 반CenterY 회전중심의 y좌표 개체 좌표계-개체 height의 반

표 117 ROTATIONINFO 엘리먼트

RENDERINGINFO설명 랜더링 정보

부모 엘리먼트 SHAPECOMPONENT자식 엘리먼트 TRANSMATRIX, SCAMATRIX, ROTMATRIX

표 118 RENDERINGINFO 엘리먼트

Page 99: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

91

TRANSMATRIXSCAMATRIXROTMATRIX

설명 Translation Matrix, Scaling Matrix, Rotation Matrix.E7 ~ E9는 (0,0,1)로 일정하므로 생략.

부모 엘리먼트 RENDERINGINFO엘리먼트 값

속성

E1 9 X 9 행렬의 첫번째 요소 (0,0)E2 9 X 9 행렬의 두번째 요소 (0,1)E3 9 X 9 행렬의 세번째 요소 (0,2)E4 9 X 9 행렬의 네번째 요소 (1,0)E5 9 X 9 행렬의 다섯번째 요소 (1,1)E6 9 X 9 행렬의 여섯번째 요소 (1,2)

표 119 TRANSMATRIX, SCAMATRIX, ROTMATRIX 엘리먼트

LINESHAPE설명 테두리 선 모양

부모 엘리먼트 PICTURE, DRAWINGOBJECT, OLE엘리먼트 값

속성

Color 선 색상 [RGB-Color]Width 선 굵기 [hwpunit]Style 선 종류 [LineType1] Solid

EndCap선 끝 모양.그림 일때는 "Round", 그리기개 체들일 때는 "Flat"이 디폴트.

Round (둥근 모양) | Flat (편평한 모양)

Flat

HeadStyle 화살표 시작 모양 [ArrowType] NormalTailStyle 화살표 끝 모양 [ArrowType] NormalHeadSize 화살표 시작 크기 [ArrowSize] SmallSmallTailSize 화살표 끝 크기 [ArrowSize] SmallSmall

OutlineStyle Normal | Outer | Inner Normal

Alpha

표 120 LINESHAPE 엘리먼트

IMAGERECT설명 이미지 좌표 정보

부모 엘리먼트 PICTURE엘리먼트 값

속성

X0

이미지의 테두리 사각형의 좌표 (최초 그림 삽입시 크기)(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3)

Y0X1Y1X2Y2

표 121 IMAGERECT 엘리먼트

Page 100: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

92

IMAGECLIP설명 이미지 자르기 정보

부모 엘리먼트 PICTURE엘리먼트 값

속성

Left

(Left, Top) (Right, Bottom) : 자르기한후 사각형TopRight

Bottom

표 122 IMAGECLIP 엘리먼트

EFFECTS설명 이미지 효과 정보

부모 엘리먼트 PICTURE자식 엘리먼트 SHADOWEFFECT, GLOW, SOFTEDGE, REFLECTION

표 123 EFFECTS 엘리먼트

SHADOWEFFECT설명 그림자 효과

부모 엘리먼트 EFFECTS자식 엘리먼트 EFFECTSCOLOR

속성

Style 그림자 스타일 (바깥쪽/안쪽)Alpha 시작 투명도Radius 흐릿하게

Direction 방향 각도Distance 거리AlignStyle 그림자 정렬

SkewX 기울기 각도(X)SkewY 기울기 각도(Y)ScaleX 확대 비율(X)ScaleY 확대 비율(Y)

RotationStyle 도형과 함께 그림자 회전

표 124 SHADOWEFFECT 엘리먼트

GLOW설명 네온 효과

부모 엘리먼트 EFFECTS자식 엘리먼트 EFFECTSCOLOR

속성

Alpha 시작 투명도Radius 네온 크기

표 125 GLOW 엘리먼트

SOFTEDGE설명 부드러운 가장자리 효과

부모 엘리먼트 EFFECTS엘리먼트 값

속성

Radius 부드러운 가장자리 크기

표 126 SOFTEDGE 엘리먼트

Page 101: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

93

REFLECTION설명 반사 효과

부모 엘리먼트 EFFECTS엘리먼트 값

속성

AlignStyle 그림자 정렬Radius 흐릿하게

Direction 방향 각도Distance 거리SkewX 기울기 각도(X)SkewY 기울기 각도(Y)ScaleX 확대 비율(X)ScaleY 확대 비율(Y)

RotationStyle 도형과 함께 그림자 회전StartAlpha 시작 투명도StartPos 시작 위치EndAlpha 끝 투명도EndPos 끝 위치

FadeDirection 오프셋 방향

표 127 REFLECTION 엘리먼트

EFFECTSCOLOR설명 도형엔진용 색상

부모 엘리먼트 SHADOWEFFECT, GLOW자식 엘리먼트 COLOREFFECT

속성

Type 컬러 종류. rgb, cmyk, scheme, system.SchemeIndex Scheme IndexSystemIndex System IndexPresetIndex Preset Index

ColorR red 컬러ColorG green 컬러ColorB blue 컬러ColorC cyan 컬러ColorM magenta 컬러ColorY yellow 컬러ColorK black 컬러

ColorSCR ScRed 컬러ColorSCG ScGreen 컬러ColorSCB ScBlue 컬러ColorH Hue 컬러ColorS Sat 컬러ColorL Lum 컬러

표 128 EFFECTSCOLOR 엘리먼트

COLOREFFECT설명 도형엔진용 색상 효과

부모 엘리먼트 EFFECTSCOLOR엘리먼트 값

속성

Type ColorEffect TypeValue Value

표 129 COLOREFFECT 엘리먼트

Page 102: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

94

5.6. 그리기 개체

DRAWINGOBJECT설명 그리기 개체 공통 속성

부모 엘리먼트 LINE, RECTANGLE, ELLIPSE, ARC, POLYGON, CURVE

자식 엘리먼트 SHAPECOMPONENT, LINESHAPE, FILLBRUSH, DRAWTEXT, SHADOW

표 130 DRAWINGOBJECT 엘리먼트

DRAWTEXT설명 그리기 개체 글상자용 텍스트

부모 엘리먼트 DRAWINGOBJECT자식 엘리먼트 TEXTMARGIN, PARALIST

속성

LastWidth 텍스트 문자열의 최대 폭.(보통 그리기 개체의 가로 크기와 동일)

Name 글상자 이름Editable 편집 가능 여부 true | false false

표 131 DRAWTEXT 엘리먼트

TEXTMARGIN설명 글상자 텍스트 여백

부모 엘리먼트 DRAWTEXT엘리먼트 값

속성

Left 왼쪽 여백 [hwpunit] 238(1mm)Right 오른쪽 여백 [hwpunit] 238(1mm)Top 위쪽 여백 [hwpunit] 238(1mm)

Bottom 아래쪽 여백 [hwpunit] 238(1mm)

표 132 TEXTMARGIN 엘리먼트

5.6.1. 선

LINE설명 그리기 개체 : 선

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, DRAWINGOBJECT

속성

StartX 시작점 X좌표 [hwpunit]StartY 시작점 Y좌표 [hwpunit]EndX 끝점 X좌표 [hwpunit]EndY 끝점 Y좌표 [hwpunit]

IsReverseHV처음 생성시 수직 또는 수평선일때, 선의 방향이 언제나 오른쪽(위쪽)으로 잡힘으로 인한 현상때문에, 방향을 바로 잡아주기 위한 플래그

true | false false

표 133 LINE 엘리먼트

Page 103: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

95

5.6.2. 사각형

RECTANGLE설명 그리기 개체 : 사각형

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, DRAWINGOBJECT

속성

Ratio 사각형 모서리 곡률 (%).직각은 0, 둥근모양은 20, 반원은 50, 그외는 적당한 값을 %단위로

사용한다.X0

(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3) : 사각형의 좌표

Y0X1Y1X2Y2

표 134 RECTANGLE 엘리먼트

5.6.3. 타원

ELLIPSE설명 그리기 개체 : 타원

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, DRAWINGOBJECT

속성

IntervalDirty호(ARC)로 바뀌었을 때, 타원의 선상에 존재하는 호의 두 점 사이를 다시 계산해야 할 필요가 있는지 여부

true | false false

HasArcProperty 호(ARC)로 바뀌었는지 여부 true | false false

ArcType 호(ARC)의 종류Normal (호 모양) |

Pie (부채꼴) | Chord (활 모양)

Normal

CenterX 중심 좌표의 X값CenterY 중심 좌표의 Y값Axis1X 제1축 X좌표값Axis1Y 제1축 Y좌표값Axis2X 제2축 X좌표값Axis2Y 제2축 Y좌표값Start1XStart1YEnd1XEnd1Y

Start2X interval of curve (effective only when it is an arc)

Start2YEnd2XEnd2Y

표 135 ELLIPSE 엘리먼트

Page 104: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

96

5.6.4. 호

ARC설명 그리기 개체 : 호

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, DRAWINGOBJECT

속성

Type 종류Normal (호 모양) |

Pie (부채꼴) | Chord (활 모양)

Normal

CenterX 타원의 중심 좌표 X값CenterY 타원의 중심 좌표 Y값Axis1X 제1축 X좌표값Axis1Y 제1축 Y좌표값Axis2X 제2축 X좌표값Axis2Y 제2축 Y좌표값

표 136 ARC 엘리먼트

5.6.5. 다각형

POLYGON설명 그리기 개체 : 다각형

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, DRAWINGOBJECT, POINT

표 137 POLYGON 엘리먼트

POINT설명 다각형 개체를 이루는 포인트

부모 엘리먼트 POLYGON, OUTLINEDATA엘리먼트 값

속성

X X 좌표Y Y 좌표

표 138 POINT 엘리먼트

5.6.6. 곡선

CURVE설명 그리기 개체 : 곡선

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, DRAWINGOBJECT, SEGMENT

표 139 CURVE 엘리먼트

Page 105: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

97

SEGMENT설명 곡선 개체를 이루는 세그먼트

부모 엘리먼트 CURVE엘리먼트 값

속성

Type 세그먼트의 타입 Line (직선) | Curve (곡선) CurveX1 세그먼트의 시작점 X좌표Y1 세그먼트의 시작점 Y좌표X2 세그먼트의 끝점 X좌표Y2 세그먼트의 끝점 Y좌표

표 140 SEGMENT 엘리먼트

5.6.7. 연결선

CONNECTLINE설명 그리기 개체 : 연결선

부모 엘리먼트 TEXT엘리먼트 값 SHAPEOBJECT, DRAWINGOBJECT

속성

TypeStartXStartYEndXEndY

StartSubjectIDStartSubjectIndex

EndSubjectIDEndSubjectIndex

표 141 CONNECTLINE 엘리먼트

5.7. Unknown Object

UNKNOWNOBJECT설명 Unknown Object

부모 엘리먼트 TEXT엘리먼트 값 SHAPEOBJECT, DRAWINGOBJECT

속성

Ctrlid IDX0

(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3) : master 좌표

Y0X1Y1X2Y2X3Y3

표 142 UNKNOWNOBJECT 엘리먼트

Page 106: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

98

5.8. 양식 객체

FORMOBJECT설명 양식 개체 공통 속성

부모 엘리먼트 BUTTON, RADIOBUTTON, CHECKBUTTON, COMBOBOX, EDIT, LISTBOX, SCROLLBAR

자식 엘리먼트 PARAMETERSET, FORMCHARSHAPE, BUTTONSET

속성

Name 이름ForeColor 전경색BackColor 배경색

GroupName 그룹 이름

TabStop 탭키로 객체들을 이동할 때 해당 객체에 머물 수 있는지를 결정. true | false true

TapOrder 탭키 이동 순서Enabled 활성화 여부. true | false true

BorderType 경계선 종류 0DrawFrame true | false true

Printable 출력 가능 여부 true | false true

표 143 FORMOBJECT 엘리먼트

FORMCHARSHAPE설명 양식 개체의 글자 속성

부모 엘리먼트 FORMOBJECT엘리먼트 값

속성

CharShape 글자 모양 0FollowContext true | false false

AutoSize 자동 크기 설정 여부 true | false falseWordWrap 줄 내림 여부 true | false false

표 144 FORMCHARSHAPE 엘리먼트

BUTTONSET설명 버튼 개체 공통 속성

부모 엘리먼트 FORMOBJECT엘리먼트 값

속성

CaptionValue

RadioGroupNameTriState true | false

BackStyle

표 145 BUTTONSET 엘리먼트

BUTTON설명 양식 개체 : 버튼

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, FORMOBJECT

표 146 BUTTON 엘리먼트

Page 107: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

99

5.8.1. 라디오 버튼

RADIOBUTTON설명 양식 개체 : 라디오 버튼

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, FORMOBJECT

표 147 RADIOBUTTON 엘리먼트

5.8.2. 체크 버튼

CHECKBUTTON설명 양식 개체 : 체크 버튼

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, FORMOBJECT

표 148 CHECKBUTTON 엘리먼트

5.8.3. 콤보 박스

COMBOBOX설명 양식 개체 : 콤보 박스

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, FORMOBJECT

속성

ListBoxRowsListBoxWidth 넓이

Text 내용EditEnable 텍스트로 수정 가능 여부

표 149 COMBOBOX 엘리먼트

5.8.4. 에디트

EDIT설명 양식 개체 : 에디트

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, FORMOBJECT, EDITTEXT

속성

MultiLine 다중 라인PasswordChar 비밀번호

MaxLength 최대 길이ScrollBars 스크롤바 활성화

TabKeyBehaviorNumber true | falseReadOnly 읽기 전용 여부 true | falseAlignText

표 150 EDIT 엘리먼트

EDITTEXT설명 에디트의 텍스트 데이터

부모 엘리먼트 EDIT엘리먼트 값 문자열

표 151 EDITTEXT 엘리먼트

Page 108: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

100

5.8.5. 리스트 박스

LISTBOX설명 양식 개체 : 리스트 박스

부모 엘리먼트 TEXT엘리먼트 값 SHAPEOBJECT, FORMOBJECT

속성

TextItemHeightTopIndex

표 152 LISTBOX 엘리먼트

5.8.6. 스크롤바

SCROLLBAR설명 양식 개체 : 스크롤바

부모 엘리먼트 TEXT엘리먼트 값 SHAPEOBJECT, FORMOBJECT

속성

DelayLargeChangeSmallChange

MinMaxPageValueType

표 153 SCROLLBAR 엘리먼트

Page 109: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

101

5.9. 묶음 객체

CONTAINER설명 묶음 개체

부모 엘리먼트 TEXT

자식 엘리먼트SHAPEOBJECT, SHAPECOMPONENT, CONTAINER, LINE, RECTANGLE, ELLIPSE, ARC, POLYGON, CURVE, CONNECTLINE, PICTURE, OLE

표 154 CONTAINER 엘리먼트

5.10. OLE 객체

OLE설명 OLE

부모 엘리먼트 TEXT자식 엘리먼트 SHAPEOBJECT, SHAPECOMPONENT, LINESHAPE

속성

ObjetType OLE개체의 종류Unknown | Embedded |

Link | Static |Equation (수식 ocx)

ExtentXExtentYBinItem

DrawAspect Content | ThumbNail | Icon | DocPrint

HasMoniker true | false falseEqBaseLine

표 155 OLE 엘리먼트

5.11. �글 97 수식

EQUATION설명 �글 97 수식

부모 엘리먼트 TEXT엘리먼트 값 SHAPEOBJECT, SCRIPT

속성

LineMode 차지 범위 true (줄 단위) | false (글자 단위) falseBaseUnit 수식 글자 크기 [hwpunit] 1000TextColor 글자 색상 [RGB-Color] 0BaseLineVersion

표 156 EQUATION 엘리먼트

SCRIPT설명 수식 스트립트 내용

부모 엘리먼트 EQUATION엘리먼트 값 �글 97 수식 스크립트 문자열이 온다.

표 157 SCRIPT 엘리먼트

Page 110: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

102

5.12. 글맵시

TEXTART설명 글맵시

부모 엘리먼트 TEXT자식 엘리먼트 TEXTARTSHAPE, OUTLINEDATA

속성

Text 내용X0

(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3) : master 좌표

Y0X1Y1X2Y2X3Y3

표 158 TEXTART 엘리먼트

TEXTARTSHAPE설명 TEXTARTSHAPE

부모 엘리먼트 TEXTART자식 엘리먼트 SHADOW

속성

FontName 폰트 이름FontStyle 폰트 스타일 RegularFontType HFDT_TTF or HFDT_HFT ttf | htf ttfTextShape 0(shape 1) ~ 39(shape 40) 0 ~ 39 0

LineSpacing 50 ~ 500 120CharSpacing 50 ~ 500 100

Align Left | Right | Center | Full | Table Left

표 159 TEXTARTSHAPE 엘리먼트

OUTLINEDATA설명 외각선

부모 엘리먼트 TEXTART자식 엘리먼트 POINT

속성

Count 외각선 포인트 개수 0 이상의 정수

표 160 OUTLINEDATA 엘리먼트

Page 111: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

103

5.13. 필드 시작

FIELDBEGIN설명 필드 시작

부모 엘리먼트 TEXT엘리먼트 값

속성

Type 필드의 종류 [FieldType]Name 필드 이름InstId 인스턴스 아이디 (문서내 고유 아이디)

Editable 읽기 전용 상태에서도 수정 가능한지 여부 true | false trueDirty 필드 내용이 수정되었는지 여부 true | false false

Property 기타 속성

Command 명령 문자열 (각각의 필드 종류마다 처리해야할 고유 정보)

표 161 FIELDBEGIN 엘리먼트

5.14. 필드 끝

FIELDEND설명 필드 끝

부모 엘리먼트 TEXT엘리먼트 값

속성

Type 필드의 종류 [FieldType]Editable 읽기 전용 상태에서도 수정 가능한지 여부 true | false trueProperty 기타 속성

표 162 FIELDEND 엘리먼트

5.15. 책갈피

BOOKMARK설명 책갈피

부모 엘리먼트 TEXT엘리먼트 값

속성

Name 책갈피 이름

표 163 BOOKMARK 엘리먼트

Page 112: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

104

5.16. 머리말, 꼬리말

HEADERFOOTER

설명 머리말, 꼬리말부모 엘리먼트 TEXT자식 엘리먼트 PARALIST

속성

ApplyPageType 머리말/꼬리말이 적용될 페이지 종류 Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)

Both

SeriesNum 구역내의 일련번호

표 164 HEADER, FOOTER 엘리먼트

5.17. 각주, 미주

FOOTNOTEENDNOTE

설명 각주, 미주부모 엘리먼트 TEXT자식 엘리먼트 PARALIST

표 165 FOOTNOTE, ENDNOTE 엘리먼트

5.18. 자동 번호, 새 번호

AUTONUMNEWNUM

설명 자동 번호, 새 번호부모 엘리먼트 TEXT자식 엘리먼트 AUTONUMFORMAT

속성

Number 번호 1

NumberType 번호의 종류Page (쪽) | Footnote (각주) |

Endnote (미주) | Figure (그림) | Table (표) | Equation (수식) |

TotalPage

표 166 AUTONUM, NEWNUM 엘리먼트

5.19. 홀/짝수 조정

PAGENUMCTRL설명 홀/짝수 조정

부모 엘리먼트 TEXT엘리먼트 값

속성

PageStartsOn 홀/짝수 구분 Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)

Both

표 167 PAGENUMCTRL 엘리먼트

Page 113: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

105

5.20. 감추기

PAGEHIDING설명 감추기

부모 엘리먼트 TEXT엘리먼트 값

속성

HideHeader 머리말 감추기 여부 true | false falseHideFooter 꼬리말 감추기 여부 true | false false

HideMasterPage 바탕쪽 감추기 여부 true | false falseHideBorder 테두리 감추기 여부 true | false false

HideFill 배경 감추기 여부 true | false falseHidePageNum 쪽 번호 감추기 여부 true | false false

표 168 PAGEHIDING 엘리먼트

5.21. 쪽번호 위치

PAGENUM설명 쪽번호 위치

부모 엘리먼트 TEXT엘리먼트 값

속성

Pos 번호 위치

None (없음) | TopLeft (왼쪽 위) | TopCenter (가운데 위) | TopRight (오른쪽 위) |

BottomLeft (왼쪽 아래) | BottomCenter (가운데 아래) | BottomRight (오른쪽 아래) | OutsideTop (바깥쪽 위) |

OutsideBottom (바깥쪽 아래) | InsideTop (안쪽 위) | InsideBottom (안쪽 아래)

TopLeft

FormatType 번호 모양 종류 [NumberType1] DigitSideChar 줄 표 -

표 169 PAGENUM 엘리먼트

Page 114: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

106

5.22. 찾아보기 표식

INDEXMARK

설명 찾아보기 표식.찾아보기 표식을 달수 있고, 찾아보기 만들기에서 참조한다.

부모 엘리먼트 TEXT자식 엘리먼트 KEYFIRST, KEYSECOND

표 170 INDEXMARK 엘리먼트

KEYFIRST설명 찾아보기에 사용할 첫번째 키워드

부모 엘리먼트 INDEXMARK엘리먼트 값 키워드 내용

표 171 KEYFIRST 엘리먼트

KEYSECOND설명 찾아보기에 사용할 두번째 키워드

부모 엘리먼트 INDEXMARK엘리먼트 값 키워드 내용

표 172 KEYSECOND 엘리먼트

5.23. 글자 겹침

COMPOSE설명 글자 겹침

부모 엘리먼트 TEXT자식 엘리먼트 COMPCHARSHAPE

속성

CircleType 테투리 타입CharSize 내부 글자 크기

ComposeType 겹치기 종류CharShapeSize 글자 모양 갯수

표 173 COMPOSE 엘리먼트

COMPCHARSHAPE설명 글자 겹침 글자 모양

부모 엘리먼트 COMPOSE엘리먼트 값

속성

ShapeID 글자 모양 식별자

표 174 COMPCHARSHAPE 엘리먼트

Page 115: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

107

5.24. 덧말

DUTMAL설명 덧말

부모 엘리먼트 TEXT자식 엘리먼트 MAINTEXT, SUBTEXT

속성

PosType 덧말의 위치 Top (위쪽) | Bottom (아래쪽) TopSizeRatio

OptionStyleNoAlign 정렬 기준 [AlignmentType1] Center

표 175 DUTMAL 엘리먼트

MAINTEXT설명 덧말넣기의 본말 내용

부모 엘리먼트 DUTMAL엘리먼트 값 덧말넣기의 본말 내용이 온다.

표 176 MAINTEXT 엘리먼트

SUBTEXT설명 덧말넣기의 덧말 내용

부모 엘리먼트 DUTMAL엘리먼트 값 덧말넣기의 덧말 내용이 온다.

표 177 SUBTEXT 엘리먼트

5.25. 숨은 설명

HIDDENCOMMENT설명 숨은 설명

부모 엘리먼트 TEXT자식 엘리먼트 PARALIST

표 178 HIDDENCOMMENT 엘리먼트

Page 116: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

108

6. 부가 정보 엘리먼트TAIL

설명 헤더와 본문정보 외에 기타 정보를 담고 있다.부모 엘리먼트 HWPML자식 엘리먼트 BINDATASTORAGE, SCRIPTCODE, XMLTEMPLATE

표 179 TAIL 엘리먼트

BINDATASTORAGE설명 바이너리 데이타 저장소

부모 엘리먼트 TAIL자식 엘리먼트 BINDATA

표 180 BINDATASTORAGE 엘리먼트

BINDATA설명 바이너리 데이타

부모 엘리먼트 BINDATASTORAGE엘리먼트 값 문자열

속성

Id 바이너리 데이타 아이디Size 바이너리 데이타 크기

Encoding 인코딩 방식. Base64로 고정되어 있다. Base64 Base64Compress 압축 여부 true | false true

표 181 BINDATA 엘리먼트

SCRIPTCODE설명 스크립트 코드

부모 엘리먼트 TAIL엘리먼트 값 SCRIPTHEADER, SCRIPTSOURCE, PRESCRIPT, POSTSCRIPT

속성

Type 스크립트 코드 종류 JScript JScriptVersion 스크립트 코드 버전

표 182 SCRIPTCODE 엘리먼트

SCRIPTHEADER설명 스크립트 코드 헤더

부모 엘리먼트 SCRIPTCODE엘리먼트 값 문자열

표 183 SCRIPTHEADER 엘리먼트

SCRIPTSOURCE설명 스크립트 코드 소스

부모 엘리먼트 SCRIPTCODE엘리먼트 값 문자열

표 184 SCRIPTSOURCE 엘리먼트

Page 117: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

109

PRESCRIPTPOSTSCRIPT

설명 PRESCRIPT, POSTSCRIPT부모 엘리먼트 SCRIPTCODE자식 엘리먼트 SCRIPTFUNCTION

속성

Count SCRIPTFUNCTION의 개수 0 이상의 정수

표 185 PRESCRIPT, POSTSCRIPT 엘리먼트

SCRIPTFUNCTION설명 스크립트 코드 함수

부모 엘리먼트 PRESCRIPT, POSTSCRIPT 엘리먼트 값 문자열

표 186 SCRIPTFUNCTION 엘리먼트

XMLTEMPLATE설명 XML 템플릿

부모 엘리먼트 TAIL자식 엘리먼트 SCHEMA, INSTANCE

표 187 XMLTEMPLATE 엘리먼트

SCHEMA설명 XML 스키마

부모 엘리먼트 XMLTEMPLATE엘리먼트 값 문자열

표 188 SCHEMA 엘리먼트

INSTANCE설명 XML 인스턴스

부모 엘리먼트 XMLTEMPLATE엘리먼트 값 문자열

표 189 INSTANCE 엘리먼트

COMPATIBLEDOCUMENT설명 호환문서

부모 엘리먼트 HEAD자식 엘리먼트 LAYOUTCOMPATIBILITY

속성

TargetProgram None | Hwp70 | Word None

표 190 COMPATIBLEDOCUMENT 엘리먼트

Page 118: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

110

LAYOUTCOMPATIBILITY설명 서식

부모 엘리먼트 COMPATIBLEDOCUMENT엘리먼트 값

속성

ApplyFontWeightToBold true | false falseUseInnerUnderline true | false false

FixedUnderlineWidth true | false falseDoNotApplyStrikeout true | false false

UseLowercaseStrikeout true | false falseExtendLineheightToOffset true | false false

TreatQuotationAsLatin true | false falseDoNotAlignWhitespaceOnRight true | false false

DoNotAdjustWordInJustify true | false falseBaseCharUnitOnEAsian true | false false

BaseCharUnitOfIndentOnFirstChar true | false falseAdjustLineheightToFont true | false false

AdjustBaselineInFixedLinespacing true | false falseExcludeOverlappingParaSpacing true | false false

ApplyNextspacingOfLastPara true | false falseApplyAtLeastToPercent100Pct true | false false

DoNotApplyAutoSpaceEAsianEng true | false falseDoNotApplyAutoSpaceEAsianNum true | false false

AdjustParaBorderfillToSpacing true | false falseConnectParaBorderfillOfEqualBorder true | false falseAdjustParaBorderOffsetWithBorder true | false false

ExtendLineheightToParaBorderOffset true | false falseApplyParaBorderToOutside true | false falseBaseLinespacingOnLinegrid true | false falseApplyCharSpacingToCharGrid true | false false

DoNotApplyGridInHeaderfooter true | false falseExtendHeaderfooterToBody true | false false

AdjustEndnotePositionToFootnote true | false falseDoNotApplyImageEffect true | false false

DoNotApplyShapeComment true | false falseDoNotAdjustEmptyAnchorLine true | false false

OverlapBothAllowOverlap true | false falseDoNotApplyVertOffsetOfForward true | false falseExtendVertLimitToPageMargins true | false false

DoNotHoldAnchorOfTable true | false falseDoNotFormattingAtBeneathAnchor true | false falseDoNotApplyExtensionCharCompose true | false false

표 191 LAYOUTCOMPATIBILITY 엘리먼트

Page 119: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

111

변경 사항 이력§ revision 1.2:20141105

- 구 5.0 내용 삭제

- 회사 주소 정보 수정

§ revision 1.1:20110124- 저작권 내용 수정

- 내용 중 일부 오타 수정

§ revision 1.0:20100701- �글 문서 파일 형식 공개

Page 120: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

HWPML

112

Page 121: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는

한글 문서 파일 구조

발행처 (주) 한글과컴퓨터

주 소 (우) 463-400경기도 성남시 분당구 대왕판교로 644번길 49 한컴타워 10층전화: (031) 627-7000팩스: (031) 627-7709

Page 122: 글 문서 파일 구조 - cdn.hancom.com•œ글문서파일형식3.0_HWPML... · 파일 형식 5.0 및 글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 본 문서는