글 문서 파일 구조
(Hwp Document File Formats)
글 문서 파일 구조 3.0/HWPML
Hwp Document File Formats 3.0/HWPML
revision 1.2:20141105
2010.06.28
차 례
저작권 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
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
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
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
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
5.23. 글자 겹침 106
5.24. 덧말 107
5.25. 숨은 설명 107
6. 부가 정보 엘리먼트 108
변경 사항 이력 111
저작권
(주)한글과컴퓨터(이하 ‘한컴’)는 문서 형식의 개방성과 표준화에 대하여 적극 찬성합니다. 한컴은 ᄒᆞᆫ글 97의 문서 형식을 무상으로 지원한 바 있으며, ᄒᆞᆫ글 2002~2010 문서의 XML 형식은 HwpML에 대해서도 문서 형식을 공개한 바 있습니다. 개방형 문서 표준화 및 코드 관련 위원회에도 적극적으로 참여하여 파일 형식의 표준화와 개방성을 위해 노력해 왔습니다. 또한, 한컴오피스에서 기록물 장기보존 표준 포맷인 PDF/A-1의 지원과 ISO 국제 문서 형식인 ODF와 OOXML 파일 형식의 불러오기와 저장하기를 적극적으로 지원하였습니다.
본 문서를 열람하고자 하는 자라면 누구에게나 제공되는 것이며, 본 문서를 열람하는 것 외에 복사, 배포, 게재 및 본 문서에 기재되어 있는 내용을 사용하고자 하는 자는 한글과컴퓨터의 본 저작권을 충분히 인식하고 동의하여야 합니다.
본 문서를 누구나 열람, 복사, 배포, 게재 및 사용을 자유롭게 할 수 있습니다. 다만, 배포는 원 내용이 일체 수정되지 않은 원본 또는 복사본으로 제한됩니다. 원본 및 복사본은 한컴에서 제공하는 스펙의 최신 버전을 포함하고 있어야 합니다.
한컴은 한컴오피스 ᄒᆞᆫ글 문서 파일(.hwp) 공개 문서에 따라 얻은 결과물을 기초로 또 다른 독점적, 배타적 권리를 취득하고 이를 (주)한글과컴퓨터를 상대로 행사하고자 하는 자를 상대로는 적극적으로 권리행사를 할 수도 있습니다.
그리고, 본 문서 및 본 문서에 기재된 내용을 참고하여 개발한 결과물에 대한 모든 저작권은 결과물을 개발한 개인 또는 단체에 있을 것입니다. 그러나 반드시 개발 결과물에 “본 제품은 한글과컴퓨터의 ᄒᆞᆫ글 문서 파일(.hwp) 공개 문서를 참고하여 개발하였습니다.”라고 제품 내 유저인터페이스, 매뉴얼, 도움말 및 소스에 모두 기재하여야하며 제품이 이러한 구성물이 없을 시에는 존재하는 구성물에만 기재합니다. 한컴은 본 문서 및 본 문서에 기재된 내용을 참고하여 개발한 결과물에 대해서 어떠한 정확성, 진실성도 보증하지 아니합니다.
본 문서에 대하여...
본 문서는 ᄒᆞᆫ글 워드 프로세서의 파일 저장 형식 중, ᄒᆞᆫ글 2002 이후 제품에서 사용되는 ᄒᆞᆫ글 문서 파일 형식 5.0 및 ᄒᆞᆫ글 3.x 문서 파일 형식, HWPML에 관하여 설명한다.
본 문서는 먼저 ᄒᆞᆫ글 문서 파일 형식 5.0에 관하여 설명한 후, ᄒᆞᆫ글 3.x 문서 파일 형식, HWPML에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다.
I. 글 3.x 문서 파일 구조
(Hwp Document File Format 3.x)
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 이후 버전에서 별도의 변환 과정 없이 읽을 수 있다.
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비트로 표현된 hunit
shunit32
4
√
32비트로 표현된 shunit
표 설명에 사용된 자료형
hchar는 글의 내부 코드로 표현된 문자 한 글자를 표현하는 자료형이다. 글의 내부 코드는 한글, 영문, 한자를 비롯해 모든 문자가 2바이트의 일정한 길이를 가진다. 글의 내부 코드에 대한 자세한 사항은 글 설명서를 참조하기 바란다.
echar와 kchar는 표준 C의 자료형인 char와 같은 의미로 생각하면 되는데, 차이점은 echar는 영문 아스키 코드(0-127)만을 표현하고, kchar는 상용조합형 한글도 표현할 수 있다는 점이다. 예를 들어 문서 파일에 저장되는 글꼴 이름을 설명하는 곳에서 ‘kchar array[40]’로 나타나 있는데, 이것은 상용조합형 한글이 포함될 수 있는 최대 길이 40바이트의 문자열이라는 뜻이다.
hunit과 shunit는 문자의 크기, 그림의 크기, 용지 여백 등, 문서를 구성하는 요소들의 크기를 표현하기 위한 자료형이다. 문서 출력 장치의 해상도는 가변적이기 때문에, 크기 정보를 점(도트)의 수로 표현할 수는 없고 일정한 단위를 기준으로 해야 하는데, 글에서는 1/1800인치를 기본 단위로 사용한다. 예를 들어 가로 2인치 세로 1인치짜리 그림의 크기를 hunit 형으로 표현하면 각각 3600, 1800이 된다.
3. 전체 구조
글의 문서 파일은 개괄적으로 다음 표와 같은 구조를 가진다.
설명
길이 (바이트)
압축
파일 인식 정보
30
문서 정보
128
문서 요약
1008
정보 블록 (#0)
가변
글꼴 이름
가변
√
스타일
가변
√
문단 리스트
가변
√
추가 정보 블록 (#1)
가변
√
추가 정보 블록 (#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
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 이외 = on
123
byte
틀옮김
0 이외 = on
124
byte
압축
0 = 압축되지 않은 파일, 이외 = 압축된 파일
125
byte
sub revision
언제나 1 (0은 글3.0에서 만든파일)
126
word
정보 블록 길이
정보 블록의 길이 (바이트 단위)
전체 길이
128
표 문서 정보
번호
종류
0
사용자 정의
1
프린트 80
2
프린트 132
3
A4
4
레터
5
B5
6
B4
7
리갈
8
A3
표 용지 종류
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
표 문서 요약
3.4. 정보 블록
정보 블록은 아래와 같은 구조의 자료가 필요한 만큼 연속된다.
■ 정보 블록: ID (2 바이트) → 길이 (2 바이트) → 내용 (n 바이트)
오프셋
자료형
길이 (바이트)
의미
0
word
2
정보 블록 ID
2
word
2
정보 블록의 길이 (n)
4
byte array[n]
n
정보 블록 내용
전체 길이
가변
4 + n 바이트
표 정보 블록
정보 블록은 아예 존재하지 않거나, 여러 개의 정보 블록이 연속해 존재할 수 있다. 정보 블록 전체의 길이는 문서 정보의 ‘정보 블록 길이’ 항목에 바이트 단위로 저장된다.
정보 블록은 파일의 앞 부분 고정된 위치에 저장되며, 압축에서 제외되는 영역이기 때문에 파일 전체를 읽지 않고도 쉽게 읽어낼 필요가 있는 정보를 저장하는 목적으로 사용된다.
글에서 정보 블록에 저장하는 내용은 [책갈피]와 [상호참조]가 있다. 더 자세한 내용은 ‘정보 블록 자료 구조’를 참조하기 바란다.
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];
3.6. 스타일
글 문서 파일에는 사용자가 정의한 스타일 정보가 함께 저장된다. 처음 word 형으로 스타일의 개수가 나오며, 개수만큼 스타일 정보가 반복된다.
■ 스타일: word nstyles, { 스타일 정보 }×nstyles
오프셋
자료형
길이 (바이트)
의미
0
kchar array[20]
20
스타일 이름
20
{글자 모양}
31
‘글자 모양 자료 구조’ 참조
51
{문단 모양}
187
‘문단 모양 자료 구조’ 참조
전체 길이
238
표 스타일 정보
3.7. 문단 리스트
스타일 정보가 끝나면 사용자가 입력한 문단의 내용이 저장된다. 문단들은 사용자가 입력한 순서대로 저장된다. 문단 리스트는 이처럼 순서대로 저장된 일련의 문단들을 뜻한다.
글에서 모든 문단의 끝은 hchar로 표현된 특수 문자 13번(CR)으로 끝난다. 따라서 문단의 길이는 적어도 1 이상이 되는데, 문단의 길이가 0인 문단은 빈(null) 문단으로서, 문단 리스트의 끝을 나타내기 위해 사용된다.
표 등이 없는 단순한 문서 파일의 경우, 문단 리스트는 하나만 존재하지만, 표 등을 사용했을 때는 표의 각 셀이 하나씩의 문단 리스트를 가지게 되므로, 이러한 문서 파일에서는 중첩된 여러 개의 문단 리스트가 저장된다. 다음 예제를 참조하기 바란다.
문서 1
첫 번째 문단
두 번째 문단
세 번째 문단
{문단 리스트 시작} 첫 번째 문단 → 두 번째 문단 → 세 번째 문단 → 빈 문단 {문단 리스트 끝}
문서 1의 문단 리스트 구조
문서 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
추가 정보 블록 ID
4
dword
4
추가 정보 블록의 길이 (n)
8
byte array[n]
n
추가 정보 블록 내용
전체 길이
가변
8 + n 바이트
표 추가 정보 블록
추가 정보 블록은 아예 존재하지 않거나, 여러 개의 추가 정보 블록이 연속해 존재할 수 있다. 추가 정보 블록이 존재할 경우, 가장 마지막 추가 정보 블록은 8바이트의 연속된 0으로 나타낸다.
글에서 추가 정보 블록에 저장하는 내용은 OLE, 파일에 포함된 그림(embedded image), 하이퍼텍스트, 프리젠테이션 설정 정보가 있다. 더 자세한 내용은 ‘추가 정보 블록 자료 구조’를 참조하기 바란다.
3.9. 추가 정보 블록 #2
추가 정보 블록 #2는 글 96에 추가된 영역이다. 부가적인 정보를 저장하기 위해 사용되며, 압축되지 않는 영역이다.
■ 추가 정보 블록 #2: ID (4 바이트) → 길이(4 바이트) → 내용 (n 바이트)
오프셋
자료형
길이 (바이트)
의미
0
dword
4
추가 정보 블록 #2 ID
4
dword
4
추가 정보 블록 #2의 길이 (n)
8
byte array[n]
n
추가 정보 블록 #2 내용
전체 길이
가변
8 + n 바이트
표 추가 정보 블록 #2
추가 정보 블록 #2는 아예 존재하지 않거나, 여러 개의 추가 정보 블록 #2가 연속해 존재할 수 있다. 추가 정보 블록 #2가 존재할 경우, 마지막은 ID 0x80000000으로 표현한다. 따라서 다음과 같은 내용의 8 바이트 값으로 나타낸다. 마지막ID 뒤의 size가 0이 아닐 경우 비압축 영역의 크기를 나타낸다.
마지막 ID
SIZE
0x00 0x00 0x00 0x80
0x00 0x00 0x00 0x00
표 추가 정보 블록 ID 예
글에서 추가 정보 블록 #2에 저장하는 내용은 [문서 파일 미리 보기]에 관련된 정보이다. 더 자세한 내용은 ‘추가 정보 블록 #2 자료 구조’를 참조하기 바란다.
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 바이트
표 문단 정보
문단 정보의 ‘앞 문단 모양’ 항목이 0이 아닐 때는 문단 모양 정보가 따로 저장되지 않고 앞 문단의 모양을 따라간다. 일반적으로 한번 지정된 문단 모양은 좀처럼 바뀌지 않는다는 점을 감안해, 중복된 정보의 저장을 줄여 파일 크기를 줄이기 위한 방법이다. 문단 리스트의 첫 번째 문단은 앞 문단이 존재하지 않기 때문에, ‘앞 문단 모양’ 항목이 늘 0이다.
비슷한 방식으로, 각 글자에 대한 모양도 문단 전체의 글자가 모두 동일한 모양일 때는 ‘대표 글자 모양’ 항목에 글자 모양이 한 번만 저장되며, 각 글자에 대한 별도의 글자 모양 정보는 저장되지 않는다. 만약 ‘글자 모양 포함’ 항목이 0이 아닐 때는 ‘대표 글자 모양’ 항목이 문서 파일에 저장은 되지만 실제 사용되지는 않는다.
‘문단 모양’ 항목은 ‘앞 문단 모양’ 항목이 0일 때만 저장되며, 이외의 경우에는 생략되므로, 글 문서 파일을 읽는 쪽에서는 문단 정보를 읽을 때 반드시 ‘앞 문단 모양’ 항목을 확인해야 한다. ‘문단 모양’ 항목의 자료 구조는 ‘문단 모양 자료 구조’를 참조하기 바란다.
‘스타일’은 그 문단이 어떤 스타일을 가리키고 있는지 나타낸다. 이 값은 문서 파일의 앞부분에 저장된 스타일 정보에 대한 인덱스이다.
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
표 줄 정보
4.3. 글자 모양 정보
문단 내용의 글자 중에서 하나라도 다른 모양을 가진 것이 있으면, 모든 글자에 대한 글자 모양 정보가 저장된다. 그러나 이 경우에도 앞 글자와 동일한 모양을 가진 글자에 대해서는 앞 글자와 동일하다는 뜻의 1 바이트짜리 플래그 하나만 저장된다.
따라서 실제 문서 파일에 저장되는 글자 모양 정보는 다음과 같은 구조를 가진다.
■ { byte flag, {글자 모양} }×글자 수
flag이 1이면 앞 글자 모양을 따라가며, 글자 모양은 저장되지 않는다. flag이 1 이외이면 뒤따라 글자 모양이 저장된다. 글자 모양의 자료 구조는 아래의 ‘글자 모양 자료 구조’를 참조하기 바란다.
4.4. 글자들
글자 모양 정보에 이어서 실제 문단의 내용인 글자들이 저장된다. 각 글자는 hchar로 표현되며, 문단 정보의 ‘글자 수’ 항목이 나타내는 개수만큼의 hchar 문자가 저장된다. 문단의 마지막 문자는 늘 hchar로 표현된 특수 문자 13번(CR)이다.
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
표 문단 모양
오프셋
자료형
의미
설명
0
byte
종류
0 ~ 3 (왼쪽, 오른쪽, 가운데, 소수점 탭)
1
byte
점 끌기 여부
2
hunit
탭 위치
전체 길이
4
표 탭 설정
● 탭 설정이 하나라도 존재하면 기본 탭 정보는 설정되지 않는다.
오프셋
자료형
의미
설명
0
byte
단 수
1
byte
단 구분선
0-4. {조판,다단,단구분선, 메뉴 순서 (도스 버전 기준)}
2
hunit
단 간격
4
byte array[4]
예약
전체 길이
8
표 단 정의
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
표 글자 모양
● 글자색/음영색 순서 { 검정=0, 파랑, 초록, 청록, 빨강, 자주, 노랑, 흰색=7 }
● Hwp2.0 Format은 Language type이 5개씩이어서 글자모양 Structure크기는 25byte였음.
7. 정보 블록 자료 구조(파일 앞 부분)
7.1. 책갈피
정보 블록에는 문서에 존재하는 모든 책갈피의 리스트가 저장된다. (* 컨트롤 코드 0x6 참조)
오프셋
자료형
길이 (바이트)
의미
0
word
2
1 = 책갈피 정보 블록 ID
2
word
2
38 x n = 전체 책갈피의 길이
4
hchar array[16]
32
책갈피 이름
36
word
2
책갈피 종류
38
dword
4
예약
전체 길이
가변
4 + 38 x n 바이트
표 책갈피 정보 블록
7.2. 상호참조
정보 블록에는 문서에 존재하는 모든 상호참조의 리스트가 저장된다. (*컨트롤 코드 29 참조)
오프셋
자료형
길이 (바이트)
의미
0
word
2
2 = 상호참조 정보 블록 ID
2
word
2
45 x n = 전체상호참조 정보의 길이
4
hchar array[37]
74
상호참조 이름
78
sdword
4
예약
82
sdword
4
상호참조 종류
전체 길이
가변
4 + 45 x n 바이트
표 상호참조 정보 블록
8. 추가 정보 블록 자료 구조 (파일의 끝 부분)
8.1. 파일에 포함된 그림 정보
파일에 포함된 그림(embedded image)은 특수 문자의 그림 코드에는 이름만 존재하며, 실제 이미지 데이터는 추가 정보 블록에 저장된다. ( (ID 길이 데이타) x N )
오프셋
자료형
길이 (바이트)
의미
0
dword
4
1 = 파일에 포함된 그림 정보 ID
4
dword
4
32 + 그림 내용 길이 (n)
8
echar array[16]
16
이름
24
echar array[16]
16
포맷
40
byte array[n]
n
그림 내용
전체 길이
가변
40 + n 바이트
표 파일에 포함된 그림 정보
8.2. OLE 정보
문서에 존재하는 OLE 개체들은 특수 문자의 그림 코드에는 이름만 존재하며, 실제 데이터는 스토리지 파일(storage file) 형태로 추가 정보 블록에 저장된다. 자세한 것은 ‘OLE 개체 자료 구조’를 참조하기 바란다.
오프셋
자료형
길이 (바이트)
의미
0
dword
4
2 = OLE 정보 ID
4
dword
4
OLE 정보 길이 (n)
8
byte array[n]
n
OLE 정보 내용
전체 길이
가변
8 + n 바이트
표 OLE 정보
8.3. 하이퍼텍스트(HyperLink) 정보
오프셋
자료형
길이 (바이트)
의미
0
dword
4
3 = 하이퍼텍스트 정보 ID
4
dword
4
617 x n = 하이퍼텍스트 정보 길이
8
kchar array[256]
건너뛀 파일 이름
현재 파일의 책갈피라면 "\0"
264
hchar array[16]
건너뛀 책갈피
‘[문서의 처음]’은 실제 존재하지는 않지만, 사용되는 책갈피 이름
296
byte array[325]
매크로
도스용에서 실행할 매크로
621
byte
종류
0,1 = 글, 2 = HTML/ETC
622
byte array[3]
예약
전체 길이
가변
8 + 617 x n 바이트
표 하이퍼텍스트 정보
본문에 포함된 텍스트 박스의 옵션(offset 14)에 하이퍼텍스트 여부(bit 4)가 켜져 있을 때, 텍스트 박스와 같은 순서로 하이퍼텍스트 정보(길이 = 617 x n)가 저장된다. 문서내에서는 책갈피(0x6)를 참조해서 Jump한다.
8.4. 프리젠테이션 설정 정보
프리젠테이션 설정 정보는 앞 부분의 약간의 부가 정보를 제외하면, 그리기 개체의 속성 정보와 동일한 내용이 저장된다. 속성에 비트맵 패턴이 삽입 파일로 지정된 경우에는 실제 그림 파일의 내용이 연달아 저장된다. 따라서 속성에 따라 다음과 같은 두 가지 형식 중 하나로 저장된다.
■ 형식 #1: 프리젠테이션 설정 정보 (406 바이트)
■ 형식 #2: 프리젠테이션 설정 정보 (406 바이트) → 그림 파일 길이 (4 바이트) → 그림 파일 내용 (n 바이트)
오프셋
자료형
길이 (바이트)
의미
0
dword
4
4 = 프리젠테이션 설정 정보 ID
4
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
표 프리젠테이션 설정 정보
8.5. 예약 정보
오프셋
자료형
길이 (바이트)
의미
0
dword
4
5 = 예약 정보 ID
전체 길이
4
표 예약 정보
8.6. 배경이미지 정보
오프셋
자료형
길이 (바이트)
의미
0
dword
4
6 = 배경이미지 정보 ID
4
dword
4
len = 크기
8
dword
4
1 = 무조건
12
dword
4
Tag
16
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 = 0x10000000
296
dword
4
display option 0 : 바둑판 1 : 가운데 3 : 쪽 크기로
300
dword
4
page option 0 : 양쪽 4 : 홀수 쪽 3 : 짝수 쪽
304
dword array[2]
8
sx, sy
312
dword array[2]
8
width, height 가로세로 크기
320
dword array[2]
8
reserved
328
dword
4
n = 삽입그림 크기
332
byte
n
삽입된 이미지 데이터
전체 길이
가변
332 + n 바이트
표 배경이미지 정보
8.7. 테이블 확장 (셀 필드 이름) 정보
오프셋
자료형
길이 (바이트)
의미
0
dword
4
0x100 = 테이블 셀에 대한 필드 이름 정보 ID
4
dword
4
n = 테이블 셀에 대한 필드 이름 정보 길이
8
word
2
셀의 갯수
10
word
2
테이블ID
12
dword
4
필드 이름 리스트 길이
16
byte array[n]
n
테이블 셀에 대한 필드 이름 리스트 내용.
아래 필드 길이와 이름이 복수개 반복.
(표 31 참조)
전체 길이
가변
16 + n 바이트
표 테이블 셀에 대한 필드 이름 정보 리스트
오프셋
자료형
길이 (바이트)
의미
0
word
2
n‘ = 필드 이름 길이
(셀에 필드 이름이 없는 경우에는 0)
2
byte array[n‘]
n‘
필드 이름 내용
전체 길이
가변
2 + n‘ 바이트
표 테이블 셀에 대한 필드 이름 정보
8.8. 누름틀 필드 이름 정보
추가 정보 블록에 저장된 누름틀 필드 이름 리스트내의 각 필드 이름이 문단 내 어느 누름틀과 맵핑되는지는 누름틀 필드 이름 정보의 필드 번호와 누름틀의 바이너리 데이터(32바이트) 중 5,6번째 바이트를 이용한다.
누름틀의 바이너리 데이터 중 5,6번째 바이트 값은 필드 이름을 수정하거나 하면 새로운 값으로 대체되므로 연속된 순서값은 아니다. 그러나 문서를 마치고 새로 여는 경우에는 문서내 누름틀의 필드 번호를 1부터 끝번호까지 연속된 값으로 리셋된다.
누름틀 필드 번호와 필드 이름 길이는 각각 word이므로 문서내 삽입 가능한 누름틀 필드의 갯수 및 필드 이름의 길이는 최대 2의 16승이다.
오프셋
자료형
길이 (바이트)
의미
0
dword
4
0x101 = 누름틀 필드 이름 정보 ID
4
dword
4
n = 누름틀 필드 이름 리스트 정보 길이
8
byte array[n]
n
누름틀 필드 이름 리스트 내용.
(아래 필드 번호, 길이, 이름이 복수개 반복.
(표 33 참조)
전체 길이
가변
8 + n 바이트
표 누름틀 필드 이름 리스트 정보
오프셋
자료형
길이 (바이트)
의미
0
word
2
누름틀 필드 번호
2
word
2
n' = 누름틀 필드 이름 길이
2
byte array[n‘]
n'
누름틀 필드 이름
전체 길이
가변
4 + n' 바이트
표 누름틀 필드 이름 정보
9. 추가 정보 블록 #2 자료 구조
9.1. 미리보기 이미지 정보
오프셋
자료형
길이 (바이트)
의미
0
dword
4
0x80000001 = 미리보기 이미지 정보 ID
4
dword
4
n = 이미지 내용 길이
8
byte array[n]
n
이미지 내용 (BMP 파일 형식)
전체 길이
가변
8 + n 바이트
표 미리보기 이미지 정보
9.2. 미리보기 텍스트 정보
오프셋
자료형
길이 (바이트)
의미
0
dword
4
0x80000002 = 미리보기 텍스트 정보 ID
4
dword
4
n = 텍스트 내용 길이
8
byte array[n]
n
텍스트 내용 (hchar 형식)
전체 길이
가변
8 + n 바이트
표 미리보기 텍스트 정보
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
고정폭빈칸
표 글의 특수 문자
문서 파일에서 문단 내용을 읽다가 특수 문자를 발견하면, 문서를 읽는 쪽에서는 그 종류에 따라 읽어 들이거나 건너 뛰어 다음 데이터의 시작 위치까지 파일 포인터를 옮기기 위한 적절한 처리를 수행해야 한다. 특수 문자 가운데는 또 다른 문단 리스트를 포함하는 경우도 있기 때문에, 특수 문자를 일반 문자처럼 처리하면 문서 파일을 정상적으로 읽을 수 없다.
실제 문단 내의 모든 문자를 살펴보지 않아도, 그 문단에 특수 문자가 포함되어 있는지 없는지는 문단 정보만 읽어보고도 알 수 있다. 문단 정보의 ‘특수 문자 플래그’이 0이면 그 문단에는 특수 문자가 없는 것을 뜻하며, 이외의 경우에는 해당하는 비트가 나타내는 특수 문자가 존재함을 뜻한다.
표에서 ‘문단 리스트’ 항목에 ‘√’ 표시가 된 것은 문단 리스트를 포함하는 특수 문자를 뜻한다.
문서를 읽다가 현재 사용되지 않는 예약된 특수 문자 코드를 만났을 때는, 이후의 상위 버전과의 호환성을 위해 적절한 크기를 건너뛰어야 한다. 건너뛸 정보의 크기는 다음과 같은 규약에 따라 알 수 있다.
오프셋
자료형
길이 (바이트)
의미
0
hchar
2
특수 문자 코드
2
dword
4
정보 길이 (n)
6
hchar
2
특수 문자 코드
8
byte array[n]
n
정보
전체 길이
가변
8 + n 바이트
표 예약 특수 문자 형식
10.1. 필드 코드 (5)
필드 코드는 계산식과 문서마당 정보 등을 나타내기 위해 글 96에 추가된 특수 문자이며, 범용의 특수 문자이므로, 글 96에서 사용되는 것 이외에도 앞으로 다양한 용도로 쓰일 수 있다.
필드 코드는 임의 길이의 세 개의 hchar 형 문자열과, 한 개의 바이너리 데이터를 가지고 있으며, 필드 코드의 종류에 따라 이 정보들이 고유한 의미로 해석된다.
필드 코드는 글 96 이전에 예약된 특수 문자를 정의하여 사용하고 있으므로 기본적인 형식은 예약된 특수 문자를 표현하는 규약에 따라 아래와 같다.
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 5이다.
2
dword
정보 길이
n : 필드 코드 세부 정보 길이
6
hchar
특수 문자 코드
늘 5이다.
8
byte array[n]
정보 내용
필드 코드 세부 정보 내용
전체 길이
가변
8 + n 바이트
표 필드 코드
필드 코드 세부 정보는 아래와 같은 형식으로 저장된다.
■ 필드 코드 세부 정보 헤더 (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 바이트
표 필드 코드 세부 정보 헤더
현재의 글 96에서 사용되는 필드 코드는 인용 부호처럼, 본문 중의 내용을 쌍으로 묶은 형태로 사용된다. 위 표에서 위치 정보는 해당하는 필드 코드가 시작인지 끝인지 그 종류를 나타내는 데 사용된다.
- offset 2 : word 옵션
bit flag 3번째(value 4) : offset 4에 나오는 스타일의 글자모양 사용
나머지는 정의되어 있으나 구현되어 있지 않음
- offset 4 : word : 스타일 번호
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에 저장된다. 실제 글에서 이 코드를 넣을 때 필드 코드가 둘러싼 내용이 날짜 정보로 치환된다.
10.1.5. 누름틀
‘문서마당 정보’ 대화상자의 ‘누름틀’ 탭을 이용해 입력한 정보이다. 문자열 #3에 상황선에 표시할 도움말, 문자열 #2에 입력할 내용의 안내문이 저장되며, 바이너리 데이터에 다음과 같은 내용이 저장된다.
오프셋
자료형
의미
설명
0
dword
기타 플래그
bit 0
사용자가 내용을 입력하지 않은 초기 상태인지 여부
0
내용을 입력한 상태
1
내용을 입력하지 않은 초기 상태
bit 1 - 31
예약
4
word
필드 번호
추가 정보 블록에 저장되어 있는 필드 이름의 필드 번호
6
byte array[26]
예약
전체 길이
32
표 누름틀 바이너리 데이터
10.2. 책갈피 (6)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 6이다.
2
dword
자료 구조 길이
34
6
hchar
특수 문자 코드
늘 6이다.
8
hchar array[16]
책갈피 이름
40
word
책갈피 종류
0 = 일반, 1 = 블록 책갈피 시작, 2 = 블록 책갈피 끝
전체 길이
42
표 책갈피
● 책갈피 List는 파일의 앞쪽 정보블럭에 저장된다.
● [상호참조]의 [참조대상]으로도 이용된다.
10.3. 날짜 형식 (7)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 7이다.
2
hchar array[40]
날짜 형식
날짜 형식 대화상자의 사용자 정의 형태로 표현
82
hchar
특수 문자 코드
늘 7이다.
전체 길이
84
표 날짜 형식
10.4. 날짜 코드 (8)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 8이다.
2
hchar array[40]
날짜 형식
날짜 형식 문자열
82
word array[4]
날짜
년, 월, 요일, 일
90
word array[2]
시각
시, 분
94
hchar
특수 문자 코드
늘 8이다.
전체 길이
96
표 날짜 코드
날짜 코드 형식
0
자릿수 메움
!
두 자리 년도
1
해(년), 네 자리
*
달(월), 영문
2
달(월), 숫자
@
달(월), 영문 약어
3
날짜, 숫자
#
날짜, 영문
6
요일, 한글
^
요일, 영문 약어
~6
요일, 한자
_
요일, 영문
시간 코드 형식
4
시, 12시간제
$
시, 24시간제
5
분
%
분
7
오전/오후
&
a.m/p.m
~7
午前/午後
+
A.M/P.M
추가정보
0
위의 숫자 앞에 0(영)을 덧 붙이면 두자리 이상의 값을 나타내야 할 곳에 자리 수가 모자라는 값이 나오면 0(영)으로 메웁니다.
\
코드로 인식하지 않고 특정한 글자를 넣으려면 ‘\’ 다음에 씁니다.
(*) 더 자세한 것은 Help 참조
10.5. 탭 (9)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 9이다.
2
hunit
탭 문자 폭
4
word
점 끌기 여부
6
hchar
특수 문자 코드
늘 9이다.
전체 길이
8
표 탭
10.6. 표/텍스트박스/수식/버튼/하이퍼텍스트 (10)
표, 텍스트 박스, 수식, 버튼, 하이퍼텍스트는 공통점이 많기 때문에 동일한 자료 구조를 사용하는데, 다음과 같은 구조로 되어 있다.
■ 식별 정보 (8 바이트) → 표 정보 (84 바이트) → 셀 정보 (27 바이트×셀 개수) → 각 셀의 문단 리스트들 (셀 개수만큼) → 캡션 문단 리스트
오프셋
자료형
의미
설명
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, 메뉴 순서 대로
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
표 표 정보
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 10이다.
2
dword
예약
6
hchar
특수 문자 코드
늘 10이다.
전체 길이
8
표 표 식별 정보
하이퍼텍스트의 경우에는 ‘박스 종류’가 버튼으로 되어 있으며, ‘기타 옵션’의 하이퍼텍스트 비트로 판별한다. 이 경우에는 추가 정보 블록에 하이퍼텍스트에 대한 추가 정보가 저장된다. 자세한 것은 ‘추가 정보 블록 자료 구조’를 참조하기 바란다. ( 추가정보 블록 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 : reserved
bit 4 : 대각선 merge된 cell인가
bit 5 : 대각선 merge된 cell일때 0=가로, 1=세로
bit 6,7 : reserved
26
byte
보호
보호를 위해 셀로 들어갈 수 없도록 할지 여부
전체 길이
27
표 셀 정보
● 대각선 merge cell은 2001년 6월 추가됨
10.7. 그림 (11)
■ 식별 정보 (8 바이트) → 그림 정보 (348 + n 바이트) → 캡션 문단 리스트
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 11이다.
2
dword
예약
6
hchar
특수 문자 코드
늘 11이다.
전체 길이
8
표 그림 식별 정보
오프셋
자료형
의미
설명
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 column
bit 3 = 0x8 unknown file
bit 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 Object
75
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 바이트
표 그림 정보
오프셋
자료형
의미
설명
0
char
밝기
그림의 밝기 (-100 - 100)
1
char
명암
그림의 명암 (-100 - 100)
2
char
그림 효과
0 = 원래 그림으로
1 = 그레이 스케일
2 = 흑백으로
전체 길이
3
표 워터마크 속성
글에 내장된 그림 그리기 기능으로 그려진 개체(그림 종류 3)일 때는 실제 데이터는 추가 정보에 저장된다. 자세한 것은 ‘그리기 개체 자료 구조’를 참조하기 바란다.
그리기 개체가 아닐 때는 하이퍼 텍스트 정보가 포함되어 있다. 추가 정보 내용 중 처음 4byte(dword)를 읽어서 그 값이 0x269이면 하이퍼 텍스트 정보인 것으로 간주한다.
10.8. 선 (14)
■ 식별 정보 (8 바이트) → 선 정보 (84 바이트)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 14이다.
2
dword
예약
6
hchar
특수 문자 코드
늘 14이다.
전체 길이
8
표 선 식별 정보
오프셋
자료형
의미
설명
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
표 선 정보
10.9. 숨은설명 (15)
■ 식별 정보 (8 바이트) → 예약 (8 바이트) → 문단 리스트
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 15이다.
2
dword
예약
6
hchar
특수 문자 코드
늘 15이다.
전체 길이
8
표 식별 정보
10.10. 머리말/꼬리말 (16)
■ 식별 정보 (8 바이트) → 머리말/꼬리말 정보 (10 바이트) → 문단 리스트
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 16이다.
2
dword
예약
6
hchar
특수 문자 코드
늘 16이다.
전체 길이
8
표 식별 정보
오프셋
자료형
의미
설명
0
byte array[8]
예약
8
byte
구분
0 = 머리말, 1 = 꼬리말
9
byte
종류
0 = 양쪽면, 1 = 짝수면, 2 = 홀수면
전체 길이
10
표 머리말/꼬리말 정보
10.11. 각주/미주 (17)
■ 식별 정보 (8 바이트) → 각주/미주 정보 (14 바이트) → 문단 리스트
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 17이다.
2
dword
예약
6
hchar
특수 문자 코드
늘 17이다.
전체 길이
8
표 식별 정보
오프셋
자료형
의미
설명
0
byte array[8]
예약
8
word
번호
각주/미주 번호. 0부터 시작.
10
word
종류
0 = 각주, 1 = 미주
12
hunit
각주 문단 너비
각주를 정렬할 당시의 단(본문) 너비
전체 길이
14
표 각주/미주 정보
10.12. 번호 코드 넣기 (18)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 18이다.
2
word
종류
0=쪽,1=각주,2=미주,3=그림,4=표,5=수식 번호
4
word
번호값
6
hchar
특수 문자 코드
늘 18이다.
전체 길이
8
표 번호 넣기
10.13. 새 번호로 시작 (번호 바꾸기) (19)
새로 시작할 번호를 지정한다. 번호 코드의 값들이 이 번호를 시작으로 하나씩 증가한다.
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 19이다.
2
word
종류
0=쪽,1=각주,2=미주,3=그림,4=표,5=수식 번호
4
word
새 번호
6
hchar
특수 문자 코드
늘 19이다.
전체 길이
8
표 번호 바꾸기
10.14. 쪽번호달기 (20)
글 97 메뉴의 ‘모양 - 쪽 번호 매기기’로 넣은 특수 문자이다. (쪽에 쪽번호 달기)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 20이다.
2
word
위치
0 - 8
4
word
모양
0 = arabic, 1 = capital roman, 2 = small roman
3-5 = 0-2와 같은 모양에 ‘- ## -’ 형태로 출력
6
hchar
특수 문자 코드
늘 20이다.
전체 길이
8
표 쪽번호달기
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
표 홀수쪽시작/감추기
10.16. 메일머지 표시 (22)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 22이다.
2
kchar array[20]
필드 이름
아스키 문자열로 표현된다.
22
hchar
특수 문자 코드
늘 22이다.
전체 길이
24
표 메일머지 표시
10.17. 글자겹침 (23)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 23이다.
2
hchar array[3]
겹칠 글자
최대 3자까지 가능. 남는 부분은 0으로 채움.
8
hchar
특수 문자 코드
늘 23이다.
전체 길이
10
표 글자겹침
10.18. 하이픈 (24)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 24이다.
2
hunit
너비
하이픈의 너비
4
hchar
특수 문자 코드
늘 24이다.
전체 길이
6
표 하이픈
10.19. 제목/표/그림차례 표시 (25)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 25이다.
2
hunit
종류
0 = 제목차례, 1 = 표차례, 2 = 그림차례
4
hchar
특수 문자 코드
늘 25이다.
전체 길이
6
표 제목/표/그림차례 표시
10.20. 찾아보기 표시 (26)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 26이다.
2
hchar array[60]
첫 번째 키워드
122
hchar array[60]
두 번째 키워드
242
wordr
페이지 번호
Page Num
244
hchar
특수 문자 코드
늘 26이다.
전체 길이
26
표 찾아보기 표시
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
표 개요 모양/번호
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) 바이트
표 상호참조
● 상호참조코드는 대상(0)과 참조이용(1) 두가지로 사용되는데, 대상의 경우 대상이름만 기록되고 나머지는 기록되지 않는다.
● 외부파일은 [연결인쇄]에 연결된 파일에서만 참조한다.
10.23. 묶음빈칸 (30)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 30이다.
2
hchar
특수 문자 코드
늘 30이다.
전체 길이
4
표 묶음빈칸
● 입력시 Ctrl-Space를 누른다.
10.24. 고정폭빈칸 (31)
오프셋
자료형
의미
설명
0
hchar
특수 문자 코드
늘 31이다.
2
hchar
특수 문자 코드
늘 31이다.
전체 길이
4
표 고정폭빈칸
● 입력시 Alt-Space를 누른다.
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
표 틀 헤더
"하이퍼텍스트 정보“는 ”틀 헤더“의 헤더 길이가 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 = HTML
618
byte array[3]
예약
전체 길이
가변
4 + 617 x n 바이트
표 하이퍼텍스트 정보
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 바이트, 생략 가능)
회전, 그라데이션, 비트맵 패턴 속성은 생략 가능하며, 어떤 속성 정보가 존재하는지 생략되었는지는 기본 속성의 기타 옵션으로 알 수 있다. 참고로, 회전 속성은 자료 구조에는 생략 가능하게 되어 있지만, 글 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 바이트
표 그리기 개체 공통 헤더
오프셋
자료형
의미
설명
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
표 그리기 개체 기본 속성
● ᄒᆞᆫ글 97의 점선의 경우 6.0으로 변환시 선의 스타일의 굵기가 2mm이상의 경우 알맞게 수정되어야 비슷한 모양을 유지한다.
오프셋
자료형
의미
설명
0
hunit32
x좌표
회전 중심의 x좌표
4
hunit32
y좌표
회전 중심의 y좌표
8
hunit32 array[6]
평행 사변형
평행 사변형을 표현하는 세 개의 좌표를 각각 x, y 순으로 저장한다. 사각형을 회전시키고 나서 사이즈를 바꾸면 평행 사변행이 된다.
전체 길이
32
표 그리기 개체 회전 속성
오프셋
자료형
의미
설명
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
표 그리기 개체 그라데이션 속성
오프셋
자료형
의미
설명
0
hunit32 array[2]
시작 위치
틀로부터 비트맵 패턴이 출력되는 좌측 상단에 대한 상대 위치
8
hunit32 array[2]
끝 위치
틀로부터 비트맵 패턴이 출력되는 우측 하단에 대한 상대 위치
16
hchar array[261]
파일 이름
비트맵 패턴의 파일 이름 (조합형)
277
byte
옵션
0 = 외부 파일
2 = embedded image
전체 길이
278
표 그리기 개체 비트맵 패턴 속성
오프셋
자료형
의미
설명
0
char
밝기
그림의 밝기 (-100 - 100)
1
char
명암
그림의 명암 (-100 - 100)
2
char
그림 효과
0 = 원래 그림으로
1 = 그레이 스케일
2 = 흑백으로
전체 길이
3
표 워터마크 속성
11.3.2. 선 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
4
4
dword
선의 모양 정보
bit 0 = horizontal flip
bit 1 = vertical flip
8
dword
정보 2의 길이
0
전체 길이
12
표 선 세부 정보
11.3.3. 호 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
4
4
dword
호의 모양 정보
bit 0 = horizontal flip
bit 1 = vertical flip
8
dword
정보 2의 길이
0
전체 길이
12
표 호 세부 정보
11.3.4. 변형된 호 (회전을 위해 확장된 호)
변형된 호는 추가로 세부정보를 필요로 하지 않는다. 그리기 회전 속성에 있는 평행사변형의 세 점을 가지고 그린다. 첫 점에서 시작해서 끝 점에서 호가 그려지도록 되어있다.
(x1, y1) (x2, y2) (x3, y3) 라면
(x1, y1)
(x2, y2)
(x3, y3)
11.3.5. 다각형 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
4
4
dword
점의 개수
다각형을 이루는 점의 개수 (np)
8
dword
정보 2의 길이
np×8
12
array
shunit32[np×2]
점의 좌표
다각형을 이루는 점들의 좌표
전체 길이
가변
12 + n 바이트
표 다각형 세부 정보
11.3.6. 글상자 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
0
4
dword
정보 2의 길이
문단 리스트 내용의 길이 (n)
8
byte array[n]
문단 리스트 내용
글상자 내부의 문단 리스트를 바이너리 스트림으로 표현
전체 길이
가변
8 + n 바이트
표 글상자 세부 정보
11.3.7. 곡선 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
4
4
dword
점의 개수
다각형을 이루는 점의 개수 (np)
8
dword
정보 2의 길이
np×8
12
array
shunit32[np×2]
점의 좌표
다각형을 이루는 점들의 좌표
전체 길이
가변
12 + n 바이트
표 커브 세부 정보
11.3.8. 변형된 타원 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
16
4
shunit32 array[4]
호의 좌표
타원을 호로 자를 때의 시작점과 끝점의 좌표
20
dword
정보 2의 길이
0
전체 길이
24
표 변형된 타원 세부 정보
11.3.9. 확장된 다각형 세부 정보
오프셋
자료형
의미
설명
0
dword
정보 1의 길이
4
4
dword
점의 개수
다각형을 이루는 점의 개수 (np)
8
dword
정보 2의 길이
np×8
12
array
shunit32[np×2]
점의 좌표
다각형을 이루는 점들의 좌표
12+np*8
char[np]
선의 속성
char[t]의 값이 0이라면 point[t]와 point[t+1] 사이가 직선이며, 그렇지 않을 경우는 곡선이다.
전체 길이
가변
12 + n 바이트
표 다각형 세부 정보
11.3.10. 닫혀진 다각형 세부 정보
확장된 다각형의 경우는 n개의 점에 대해 n개의 선속성을 가지고 있지만 실제로는 n-1 개 만이 사용된다. 그러나, 닫혀진 다각형에서는 끝점과 시작점에 대한 선속성이 필요하기 때문에 n개가 다 사용된다.
12. OLE 개체 자료 구조
12.1. 기본 구조
문서에 존재하는 OLE 개체들은 특수 문자의 그림 코드에는 이름만 존재하며, 실제 데이터는 모든 OLE 개체를 하나의 스토리지 파일(storage file)에 모아 추가 정보 블록에 저장한다.
오프셋
자료형
길이 (바이트)
의미
0
dword
4
2 = OLE 정보 ID
4
dword
4
OLE 정보 길이 (n)
8
byte array[n]
n
파일에 포함되어 있는 OLE 정보
전체 길이
가변
8 + n 바이트
표 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_ICON
12
byte array[116]
116
예약
전체 길이
24
표 변형된 타원 세부 정보
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
표 차트 연결 정보
linked가 0일 때는 표에 연결되지 않은 독립적인 차트를 뜻하며, 이 경우에는 나머지 모든 값이 의미 없다.
tblid는 문서 중의 모든 표에 각각 부여된 유일한 ID이며, 이 ID를 통해 특정한 차트가 어떤 표와 연결되어 있는지 나타낸다.
entire가 1일 때는 이 차트가 표 전체의 데이터와 연결되었음을 뜻한다. 이 경우에는 범위를 나타내는 값이 의미가 없다. entire가 0일 때는 표의 일부분만 차트와 연결되었음을 뜻하며, 범위를 나타내는 값들이 실제 사용자가 차트를 만들 때 셀 블록으로 지정한 범위를 나타낸다.
chsize는 실제 각 셀의 내용이 순차적으로 ASCIIZ 형식으로 연속되어 배열된 데이터의 총 바이트 수를 나타낸다. 실제 데이터 내용은 ‘HWPChart.Info’가 저장된 동일한 storage에 ‘HWPChart.Data’라는 이름의 stream으로 저장된다.
글은 사용자가 차트와 연결된 표의 내용을 바꿨을 때, 이러한 정보들을 토대로 차트를 업데이트할지 여부를 결정한다.
II. HWPML 구조
1. 개요
HWPML은 ᄒᆞᆫ글 워드 프로세서 문서를 기술하기 위한 W3C XML 기반의 개방형 마크업 언어이다.
2. 형식 설명
HWPML 엘리먼트에 대한 설명은 다음 표 형식을 기본으로 해서 설명한다.
엘리먼트 명
설명
엘리먼트에 대한 설명
부모 엘리먼트
자식 엘리먼트/
엘리먼트 값
속성
속성명1
속성1에 대한 설명
값의 범위
기본값
속성명2
속성2에 대한 설명
값의 범위
기본값
표 각 엘리먼트 설명을 위한 테이블 예
● 값을 가지지 않는 경우에는 공백으로 남겨둔다.
● 속성들이 가질 수 있는 값들의 경우
- 열거형은 값들을 '|'으로 구분해서 표기한다.
- 범위를 가지는 경우에는 ‘최소값 ~ 최대값’과 같은 형식으로 표기한다.
- 일반적인 값의 범위를 가질 경우에는 해당 범위를 서술식으로 표기한다.
● 속성값에 대해서 부가적인 설명이 필요한 경우 ‘속성값 (설명)’과 같은 형식으로 표기한다.
2.1. 기본 속성 값 형식 설명
2.2에서 설명할 기본 속성 값은 다음 표 형식을 기본으로 해서 설명한다.
속성 이름
축약어
축약어
설명
값1
값1에 대한 설명
값2
값2에 대한 설명
값3
값3에 대한 설명
● 제시된 축약어는 본문 내에서 [축약어]와 같은 형식으로 사용된다.
2.2. 기본 속성 값
hwpunit
설명
10 pt = 1000 hwpunit
글꼴 유형
설명
rep
대표 글꼴
ttf
트루타입 글꼴
hft
ᄒᆞᆫ글 전용 글꼴
선 종류 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
-..-..-..
선 두께
축약어
LineWidth
설명
0.1mm
0.12mm
0.15mm
0.2mm
0.25mm
0.3mm
0.4mm
0.5mm
0.6mm
0.7mm
1.0mm
1.5mm
2.0mm
3.0mm
4.0mm
5.0mm
색
축약어
RGB-Color
설명
RGB 값 (0x00bbggrr)을 십진수로 표현한 값
rr
red 1 byte
gg
green 1 byte
bb
blue 1 byte
번호 모양 1
축약어
NumberType1
설명
Digit
1, 2, 3
CircledDigit
동그라미 쳐진 1, 2, 3
RomanCapital
I, II, III
RomanSmall
i, ii, iii
LatinCapital
A, B, C
LatinSmall
a, b, c
CircledLatinCapital
동그라미 쳐진 A, B, C
CircledLatinSmall
동그라미 쳐진 a, b, c
HangulSyllable
가, 나, 다
CircledHangulSyllable
동그라미 쳐진 가, 나, 다
HangulJamo
ㄱ, ㄴ, ㄷ
CircledHangulJamo
동그라미 쳐진 ㄱ, ㄴ, ㄷ
HangulPhonetic
일, 이, 삼
Ideograph
一, 二, 三
CircledIdeograph
동그라미 쳐진 一, 二, 三
번호 모양 2
축약어
NumberType2
설명
Digit
1, 2, 3
CircledDigit
동그라미 쳐진 1, 2, 3
RomanCapital
I, II, III
RomanSmall
i, ii, iii
LatinCapital
A, B, C
LatinSmall
a, b, c
CircledLatinCapital
동그라미 쳐진 A, B, C
CircledLatinSmall
동그라미 쳐진 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
속이 채워진 사각 모양
화살표 시작/끝 크기
축약어
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
확대
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
메모
RevisionChange
RevisionSign
RevisionDelete
RevisionAttach
RevisionClipping
RevisionSawtooth
RevisionThinking
RevisionPraise
RevisionLine
RevisionSimpleChange
RevisionHyperlink
RevisionLineAttach
RevisionLineLink
RevisionLineTransfer
RevisionRightmove
RevisionLeftmove
RevisionTransfer
RevisionSplit
3. 루트 엘리먼트
HWPML
설명
HWPML의 시작을 알리는 루트 엘리먼트.
부모 엘리먼트
자식 엘리먼트
HEAD, BODY, TAIL
속성
Version
HWPML의 버전.
2.8
2.8
SubVersion
8.0.0.0
8.0.0.0
Style2
embed | export
embed
표 HWPML 엘리먼트
4. 헤더 엘리먼트
HEAD
설명
문서요약정보 외에 글꼴, 글자속성, 문단속성에 대한 테이블 등 문서에 대한 전반적인 정보를 담고 있다.
부모 엘리먼트
HWPML
자식 엘리먼트
DOCSUMMARY, DOCSETTING, MAPPINGTABLE
속성
SecCnt
구역의 개수
0 이상의 정수형
표 HEAD 엘리먼트
4.1. 문서 요약 정보 엘리먼트
DOCSUMMARY
설명
문서요약정보를 담는다.
부모 엘리먼트
HEAD
자식 엘리먼트
TITLE, SUBJECT, AUTHOR, DATE, KEYWORDS, COMMENTS, FORBIDDENSTRING
표 DOCSUMMARY 엘리먼트
TITLE
설명
문서 제목
부모 엘리먼트
DOCSUMMARY
엘리먼트 값
문자열 형태의 문서 제목
표 TITLE 엘리먼트
SUBJECT
설명
문서 주제
부모 엘리먼트
DOCSUMMARY
엘리먼트 값
문자열 형태의 문서 주제
표 SUBJECT 엘리먼트
AUTHOR
설명
문서 저자
부모 엘리먼트
DOCSUMMARY
엘리먼트 값
문자열 형태의 문서 저자
표 AUTHOR 엘리먼트
DATE
설명
작성 날짜
부모 엘리먼트
DOCSUMMARY
엘리먼트 값
문자열 형태의 문서 작성 날짜
표 DATE 엘리먼트
KEYWORDS
설명
키워드
부모 엘리먼트
DOCSUMMARY
엘리먼트 값
문자열 형태의 문서 키워드
표 KEYWORDS 엘리먼트
COMMENTS
설명
기타 설명
부모 엘리먼트
DOCSUMMARY
엘리먼트 값
문자열 형태의 기타 설명
표 COMMENTS 엘리먼트
FORBIDDENSTRING
설명
금칙 문자
부모 엘리먼트
DOCSUMMARY
자식 엘리먼트
FORBIDDEN
표 FORBIDDENSTRING 엘리먼트
FORBIDDEN
설명
금지 문자열
부모 엘리먼트
FORBIDDENSTRING
엘리먼트 값
문자열
속성
id
한정자
문자열
표 HEAD 엘리먼트
4.2. 문서 설정 정보 엘리먼트
DOCSETTING
설명
각종 설정 정보를 담는다.
부모 엘리먼트
HEAD
자식 엘리먼트
BEGINNUMBER, CARETPOS
표 DOCSETTING 엘리먼트
BEGINNUMBER
설명
문서 내 각종 시작번호에 대한 정보
부모 엘리먼트
DOCSETTING
엘리먼트 값
속성
Page
페이지 시작 번호
1 이상의 정수형
1
Footnote
각주 시작 번호
1 이상의 정수형
1
Endnote
미주 시작 번호
1 이상의 정수형
1
Picture
그림 시작 번호
1 이상의 정수형
1
Table
표 시작 번호
1 이상의 정수형
1
Equation
수식 시작 번호
1 이상의 정수형
1
TotalPage
전체 페이지 수
1 이상의 정수형
1
표 BEGINNUMBER 엘리먼트
CARETPOS
설명
문서 내 캐럿의 위치 정보
부모 엘리먼트
DOCSETTING
엘리먼트 값
속성
List
리스트 아이디
문자열
Para
문단 아이디
문자열
Pos
문단 내에서의 글자단위 위치
문자열
표 CARETPOS 엘리먼트
4.3. 문서 글꼴/스타일 정보
MAPPINGTABLE
설명
본문에 사용 중인 글꼴, 글자속성, 문단속성, 탭, 스타일 등등에 대한 세부정보를 담고 있다.
부모 엘리먼트
HEAD
자식 엘리먼트
BINDATALIST, FACENAMELIST,
BORDERFILLLIST, CHARSHAPELIST,
TABDEFLIST, NUMBERINGLIST, BULLETLIST,
PARASHAPELIST, STYLELIST, MEMOSHAPELIST
표 MAPPINGTABLE 엘리먼트
4.3.1. 문서 내 그림/OLE 정보
BINDATALIST
설명
그림, OLE등의 바이너리 데이터 리스트.
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
BINITEM
속성
Count
BINITEM의 갯수
0 이상의 정수형
0
표 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"일때, 연결 파일의 상대 경로
BinData
Type이 "Embedding"이거나 "Storage"일때,
BINDATASTORAGE에 저장된 바이너리 데이터의 아이디
Format
Type이 "Embedding"일때, 바이너리 데이터의 포맷종류
그림의 경우 "jpg", "bmp", "gif" 중 선택.
OLE의 경우 "ole"만 가능.
jpg | bmp | gif | ole
표 BINITEM 엘리먼트
4.3.2. 글꼴 정보
FACENAMELIST
설명
글꼴 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
FONTFACE
표 FACENAMELIST 엘리먼트
FONTFACE
설명
언어별 글꼴 그룹
부모 엘리먼트
FACENAMELIST
자식 엘리먼트
FONT
속성
Lang
글꼴에 대한 언어 종류.
[LangType]
Count
글꼴의 갯수
0 이상의 정수형
표 FONTFACE 엘리먼트
FONT
설명
각각의 글꼴
부모 엘리먼트
FONTFACE
자식 엘리먼트
SUBSTFONT, TYPEINFO
속성
Id
글꼴 아이디
0 이상의 정수형
Type
글꼴의 유형.
rep | ttf | hft
Name
글꼴 이름
문자열
표 FONT 엘리먼트
SUBSTFONT
설명
대체 글꼴
부모 엘리먼트
FONT
엘리먼트 값
속성
Type
대체 글꼴의 유형.
rep | ttf | hft
Name
글꼴 이름
문자열
표 SUBSTFONT 엘리먼트
TYPEINFO
설명
글꼴속성에 따라 글꼴을 대체하는 PANOSE시스템의 폰트 분류 속성들에 대한 정보
부모 엘리먼트
FONT
엘리먼트 값
속성
FamilyType
글꼴 계열
SerifStyle
세리프 유형
Weight
굵기
Proportion
비례
Contrast
대조
StrokeVariation
스트로크 편차
ArmStyle
자획유형
Letterform
글자형
Midline
중간선
XHeight
X-높이
표 TYPEINFO 엘리먼트
4.3.3. 테두리/배경/채우기 정보
BORDERFILLLIST
설명
테두리/배경/채우기 정보 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
BORDERFILL
속성
Count
테두리/배경 항목의 갯수
0 이상의 정수형
표 BORDERFILLLIST 엘리먼트
BORDERFILL
설명
문단, 표의 셀, 그림 및 그리기 개체에서 사용하는 테두리/배경/채우기 에 대한 각각의 세부 정보
부모 엘리먼트
BORDERFILLLIST
자식 엘리먼트
LEFTBORDER, RIGHTBORDER, TOPBORDER,
BOTTOMBORDER, DIAGONAL, FILLBRUSH
속성
Id
테두리/채우기 항목 아이디
1 이상의 정수
ThreeD
3D효과 on/off (미구현)
true | false
false
Shadow
그림자 효과 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
0
CounterBackSlash
0
BreakCellSeparateLine
0
표 BORDERFILL 엘리먼트
LEFTBORDER
RIGHTBORDER
TOPBORDER
BOTTOMBORDER
DIAGONAL
설명
왼쪽/오른쪽/위/아래/대각선 테두리 정보
부모 엘리먼트
BORDERFILL
엘리먼트 값
속성
Type
테두리선 종류
[LineType1]
Sold
Width
테두리선 굵기.
[LineWidth]
0.12mm
Color
테두리선 색상.
[RGB-Color]
0
표 LEFTBORDER, RIGHTBORDER, TOPBORDER, BOTTOMBORDER, DIAGONAL 엘리먼트
FILLBRUSH
설명
채우기 정보
부모 엘리먼트
BORDERFILL
자식 엘리먼트
WINDOWBRUSH, GRADATION, IMAGEBRUSH
표 FILLBRUSH 엘리먼트
WINDOWBRUSH
설명
면 채우기
부모 엘리먼트
FILLBRUSH
엘리먼트 값
속성
FaceColor
면색
[RGB-Color]
HatchColor
무늬색
[RGB-Color]
HatchStyle
무늬종류
[HatchStyle]
Alpha
표 WINDOWBRUSH 엘리먼트
GRADATION
설명
그라데이션 효과
부모 엘리먼트
FILLBRUSH
자식 엘리먼트
COLOR
속성
Type
그라데이션 유형.
Linear (줄무늬형) | Radial (원형) | Conical (원뿔형) | Square (사각형)
Angle
그러데이션의 기울임(시작각)
90
CenterX
그러데이션의 가로중심(중심 X 좌표)
0
CenterY
그러데이션의 세로중심(중심 Y 좌표)
0
Step
그러데이션 번짐 정도
0 ~ 100
50
ColorNum
그러데이션의 색수
워디안/글2002/SE에서는 항상 2이다.
2
StepCenter
그러데이션 번짐 정도의 중심
0 ~ 100
50
Alpha
표 GRADATION 엘리먼트
COLOR
설명
그라데이션 색
부모 엘리먼트
GRADATION
엘리먼트 값
속성
Value
색
[RGB-Color]
표 COLOR 엘리먼트
IMAGEBRUSH
설명
그림으로 채우기
부모 엘리먼트
FILLBRUSH
자식 엘리먼트
IMAGE
속성
Mode
채우기 유형
[InfillMode]
Tile
표 IMAGEBRUSH 엘리먼트
IMAGE
설명
그림 정보
부모 엘리먼트
IMAGEBRUSH
엘리먼트 값
속성
Bright
밝기
0
Contrast
명암
0
Effect
그림 효과
RealPic (원래 그림에서) | GrayScale (그레이스케일로) | BlackWhite (흑백으로)
BinItem
BINDATALIST의 BINITEM엘리먼트의 아이디 참조값
Alpha
표 IMAGE 엘리먼트
4.3.4. 글자 모양 정보
CHARSHAPELIST
설명
글자 모양 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
CHARSHAPE
속성
Count
글자 모양 항목 갯수
0 이상의 정수
표 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]
0
ShadeColor
음영색
[RGB-Color]
4294967295
UseFontSpace
글꼴에 어울리는 빈칸
true | false
false
UseKerning
커닝
true | false
false
SymMark
강조점 종류
0
BorderFillId
글자테두리 기능
표 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 속성값
표 FONTID 엘리먼트
RATIO
설명
언어별 장평
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Hangul
한글글꼴에서의 장평
50% ~ 200%
100
Latin
영문글꼴에서의 장평
50% ~ 200%
100
Hanja
한자글꼴에서의 장평
50% ~ 200%
100
Japanese
일본어글꼴에서의 장평
50% ~ 200%
100
Other
외국어글꼴에서의 장평
50% ~ 200%
100
Symbol
기호글꼴에서의 장평
50% ~ 200%
100
User
사용자글꼴에서의 장평
50% ~ 200%
100
표 RATIO 엘리먼트
CHARSPACING
설명
언어별 자간
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Hangul
한글글꼴에서의 자간
-50% ~ 50%
0
Latin
영문글꼴에서의 자간
-50% ~ 50%
0
Hanja
한자글꼴에서의 자간
-50% ~ 50%
0
Japanese
일본어글꼴에서의 자간
-50% ~ 50%
0
Other
외국어글꼴에서의 자간
-50% ~ 50%
0
Symbol
기호글꼴에서의 자간
-50% ~ 50%
0
User
사용자글꼴에서의 자간
-50% ~ 50%
0
표 RATIO 엘리먼트
RELSIZE
설명
언어별 글자의 상대크기
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Hangul
한글글꼴에서의 상대크기
10% ~ 250%
100
Latin
영문글꼴에서의 상대크기
10% ~ 250%
100
Hanja
한자글꼴에서의 상대크기
10% ~ 250%
100
Japanese
일본어글꼴에서의 상대크기
10% ~ 250%
100
Other
외국어글꼴에서의 상대크기
10% ~ 250%
100
Symbol
기호글꼴에서의 상대크기
10% ~ 250%
100
User
사용자글꼴에서의 상대크기
10% ~ 250%
100
표 RELSIZE 엘리먼트
CHAROFFSET
설명
언어별 글자위치(상하위치)
0%을 기준으로 하여 100%에 가까울수록 글자위치가 아래로 내려가고 -100%에 가까울수록 위로 올라간다.
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Hangul
한글글꼴에서의 글자위치
-100% ~ 100%
0
Latin
영문글꼴에서의 글자위치
-100% ~ 100%
0
Hanja
한자글꼴에서의 글자위치
-100% ~ 100%
0
Japanese
일본어글꼴에서의 글자위치
-100% ~ 100%
0
Other
외국어글꼴에서의 글자위치
-100% ~ 100%
0
Symbol
기호글꼴에서의 글자위치
-100% ~ 100%
0
User
사용자글꼴에서의 글자위치
-100% ~ 100%
0
표 CHAROFFSET 엘리먼트
ITALIC
설명
글자 속성 : 기울임
부모 엘리먼트
CHARSHAPE
엘리먼트 값
표 ITALIC 엘리먼트
BOLD
설명
글자 속성 : 진하게
부모 엘리먼트
CHARSHAPE
엘리먼트 값
표 BOLD 엘리먼트
UNDERLINE
설명
글자 속성 : 밑줄
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Type
밑줄 종류
Bottom (글자 아래) | Center (글자 중간) | Top (글자 위)
Bottom
Shape
밑줄 모양
[LineType2]
Solid
Color
밑줄 색
[RGB-Color]
0
표 UNDERLINE 엘리먼트
STRIKEOUT
설명
글자 속성 : 취소선
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Type
취소선 종류
None (없음) |
Continuous (연속선)
Continuous
Shape
[LineType2]
Solid
Color
취소선 색
[RGB-Color]
0
표 STRIKEOUT 엘리먼트
OUTLINE
설명
글자 속성 : 외곽선
부모 엘리먼트
CHARSHAPE
엘리먼트 값
속성
Type
외곽선 종류
[LineType3]
Solid
표 OUTLINE 엘리먼트
SHADOW
설명
글자 속성 : 그림자
부모 엘리먼트
CHARSHAPE, DRAWINGOBJECT, TEXTARTSHAPE
엘리먼트 값
속성
Type
그림자 종류
Drop (비연속) | Cont (연속)
Color
그림자 색
[RGB-Color]
OffsetX
그림자 간격 X
-100% - 100%
10
OffsetY
그림자 간격 Y
-100% - 100%
10
Alpha
표 SHADOW 엘리먼트
EMBOSS
설명
글자 속성 : 양각
부모 엘리먼트
CHARSHAPE
엘리먼트 값
표 EMBOSS 엘리먼트
ENGRAVE
설명
글자 속성 : 음각
부모 엘리먼트
CHARSHAPE
엘리먼트 값
표 ENGRAVE 엘리먼트
SUPERSCRIPT
설명
글자 속성 : 위 첨자
부모 엘리먼트
CHARSHAPE
엘리먼트 값
표 SUPERSCRIPT 엘리먼트
SUBSCRIPT
설명
글자 속성 : 아래 첨자
부모 엘리먼트
CHARSHAPE
엘리먼트 값
표 SUBSCRIPT 엘리먼트
4.3.5. 탭 정보
TABDEFLIST
설명
탭 정의 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
TABDEF
속성
Count
탭 정의 개수
0 이상의 정수
표 TABDEFLIST 엘리먼트
TABDEF
설명
탭 정의 정보
부모 엘리먼트
TABDEFLIST
자식 엘리먼트
TABITEM
속성
Id
탭 정의 아이디
0 이상의 정수
AutoTabLeft
문단 왼쪽 끝 자동탭 (내어 쓰기용 자동탭)
true | false
false
AutoTabRight
문단 오른쪽 끝 자동탭
true | false
false
표 TABDEF 엘리먼트
TABITEM
설명
탭 항목
부모 엘리먼트
TABDEF
엘리먼트 값
속성
Pos
탭의 위치
[hwpunit]
Type
탭의 종류
Left (왼쪽) | Right (오른쪽) | Center (가운데) | Decimal (소수점)
Left
Leader
채움 종류
[LineType2]
Solid
표 TABITEM 엘리먼트
NUMBERINGLIST
설명
번호 문단 모양 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
NUMBERING
속성
Count
번호 문단 모양의 갯수
0 이상의 정수
표 NUMBERINGLIST 엘리먼트
NUMBERING
설명
번호 문단 모양 정보
부모 엘리먼트
NUMBERINGLIST
자식 엘리먼트
PARAHEAD
속성
Id
번호 문단 모양 아이디
1 이상의 정수
Start
시작 번호
1
표 NUMBERING 엘리먼트
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
true
WidthAdjust
번호 너비 보정값
[hwpunit]
0
TextOffsetType
수준별 본문과의 거리 단위 종류
percent | hwpunit
percent
TextOffset
본문과의 거리
50
NumFormat
번호 포맷
(불릿 문단의 경우에는 사용되지 않는다.)
[NumberType1]
Digit
CharShape
글자 모양 아이디 참조
표 PARAHEAD 엘리먼트
4.3.6. 글머리표 정보
BULLETLIST
설명
글머리표 문단 모양 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
BULLET
속성
Count
글머리표 문단 모양의 개수
0 이상의 정수
표 BULLETLIST 엘리먼트
BULLET
설명
글머리표 문단 모양 정보
부모 엘리먼트
BULLETLIST
엘리먼트 값
PARAHEAD
속성
Id
글머리표 문단 모양 아이디
1 이상의 정수
Char
글머리표 문자
Image
true | false
false
표 BULLET 엘리먼트
4.3.7. 문단 모양 정보
PARASHAPELIST
설명
문단 모양 리스트
부모 엘리먼트
MAPPINGTABLE
엘리먼트 값
PARASHAPE
속성
Count
문단 모양의 개수
0 이상의 정수
표 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
0
TabDef
탭정의 아이디 참조값
BreakLatinWord
줄 나눔 단위 (라틴 문자)
KeepWord (단어) | Hyphenation (하이픈) | BreakWord (글자)
KeepWord
BreakNonLatinWord
줄 나눔 단위 (비라틴 문자)
true (글자) | false (어절)
true
Condense
공백 최소값
0% ~ 75%
0
WidowOrphan
외톨이줄 보호
true | false
false
KeepWithNext
다음 문단과 함께
true | false
false
KeepLines
문단 보호
true | false
false
PageBreakBefore
문단 앞에서 항상 쪽나눔
true | false
false
FontLineHeight
글꼴에 어울리는 줄높이
true | false
false
SnapToGrid
편집 용지의 줄격자 사용
true | false
true
LineWrap
한줄로 입력
[LineWrapType]
Break
AutoSpaceEAsianEng
한글과 영어 간격을 자동 조절
true | false
true
AutoSpaceEAsianNum
한글과 숫자 간격을 자동 조절
true | false
true
표 PARASHAPE 엘리먼트
PARAMARGIN
설명
문단 여백
부모 엘리먼트
PARASHAPE
엘리먼트 값
속성
Indent
들여쓰기/내어쓰기.
숫자 다음에 "ch"가 붙어 있으면 글자수로 표시된 것이고 그 외 숫자만으로 된 경우는 hwpunit단위이다.
hwpunit 또는 글자수.
n > 0 : 들여쓰기 n
n == 0 : 보통
n < 0 : 내어쓰기 n
0
Left
왼쪽 여백
[hwpunit] 또는 글자수
0
Right
오른쪽 여백
[hwpunit] 또는 글자수
0
Prev
문단 간격 위
[hwpunit] 또는 글자수
0
Next
문단 간격 아래
[hwpunit] 또는 글자수
0
LineSpacingType
줄 간격 종류
Percent (글자에 따라) |
Fixed (고정값) |
BetweenLines (여백만 지정) |
AtLeast (최소)
Percent
LineSpacing
줄 간격 값
0% ~ 500% (Type이 “Percent”일 때),
[hwpunit] 또는 글자수 (Type이 “Fixed”일 때),
[hwpunit] 또는 글자수 (Type이 “BetweenLines”일 때)
160
표 PARAMARGIN 엘리먼트
PARABORDER
설명
문단 테두리/배경
부모 엘리먼트
PARASHAPE
엘리먼트 값
속성
BorderFill
테두리/배경 모양 아이디 참조값
BORDERFILL엘리먼트의 Id속성 값
OffsetLeft
문단 테두리 왼쪽 간격
[hwpunit]
OffsetRight
문단 테두리 오른쪽 간격
[hwpunit]
OffsetTop
문단 테두리 위쪽 간격
[hwpunit]
OffsetBottom
문단 테두리 아래쪽 간격
[hwpunit]
Connect
문단 테두리 연결 여부
true | false
false
IgnoreMargin
문단 테두리 여백 무시 여부
true | false
false
표 PARABORDER 엘리먼트
4.3.8. 스타일 정보
STYLELIST
설명
스타일 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
STYLE
속성
Count
스타일 갯수
0 이상의 정수
표 STYLELIST 엘리먼트
STYLE
설명
스타일 정보
부모 엘리먼트
STYLELIST
엘리먼트 값
속성
Id
스타일 아이디
Type
스타일 종류
Para (문단 스타일) | Char (글자 스타일)
Para
Name
로컬 스타일 이름.
한글윈도우에서는 한글 스타일 이름.
EngName
영문 스타일 이름.
ParaShape
문단 모양 아이디 참조값.
스타일의 종류가 문단인 경우 반드시 지정해야 한다.
PARASHAPE엘리먼트의 Id속성값
CharShape
글자 모양 아이디 참조값.
스타일의 종류가 글자인 경우 반드시 지정해야 한다.
CHARSHAPE엘리먼트의 Id속성값
NextStyle
다음 스타일 아이디 참조값.
문단 스타일에서 사용자가 리턴키를 입력하여 다음 문단으로 이동하였을때 적용될 문단 스타일을 지정한다.
LangId
언어 아이디
LockForm
양식모드에서 Style 보호하기
표 STYLE 엘리먼트
4.3.9. 메모 정보
MEMOSHAPELIST
설명
메모 리스트
부모 엘리먼트
MAPPINGTABLE
자식 엘리먼트
MEMO
속성
Count
메모 개수
0 이상의 정수
표 MEMOSHAPELIST 엘리먼트
MEMO
설명
메모
부모 엘리먼트
MEMOSHAPELIST
엘리먼트 값
속성
Id
메모 아이디
Width
메모의 선 두께
0
LineType
메모의 선 종류
LineColor
메모의 선의 색
[RGB-Color]
FillColor
메모의 색
[RGB-Color]
ActiveColor
메모가 활성화 되었을 때 색
[RGB-Color]
MemoType
표 MEMO 엘리먼트
5. 본문 엘리먼트
BODY
설명
본문
부모 엘리먼트
HWPML
자식 엘리먼트
SECTION
표 BODY 엘리먼트
SECTION
설명
구역
부모 엘리먼트
BODY
엘리먼트 값
P
속성
Id
구역 아이디
표 SECTION 엘리먼트
P
설명
문단
부모 엘리먼트
SECTION
엘리먼트 값
TEXT
속성
ParaShape
문단 모양 아이디 참조값
PARASHAPE 엘리먼트의 Id 값
Style
문단 스타일 아이디 참조값
STYLE 엘리먼트의 Id 값
InstId
개요 문단일 경우 문서내 유일한 아이디.
개요 문단이 아닐 때는 사용되지 않는다.
PageBreak
현재 문단에서 쪽 나눔(CTRL-ENTER)이 되었는지 여부
true | false
false
ColumnBreak
현재 문단에서 단 나눔(CTRL-SHIFT-ENTER)이 되었는지 여부
true | false
false
표 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값
표 TEXT 엘리먼트
5.1. 글자 엘리먼트
CHAR
설명
글자
부모 엘리먼트
TEXT
자식 엘리먼트
문자열, TAB, LINEBREAK, HYPEN, NBSPACE, FWSPACE, TITLEMARK, MARKPENBEGIN, MARKPENEND
속성
Style
스타일 아이디 참조값
표 CHAR 엘리먼트
MARKPENBEGIN
설명
형광펜 시작
부모 엘리먼트
CHAR
엘리먼트 값
속성
Color
형광펜 색
[RGB-Color]
표 MARKPENBEGIN 엘리먼트
MARKPENEND
설명
형광펜 끝
부모 엘리먼트
CHAR
엘리먼트 값
표 MARKPENEND 엘리먼트
TITLEMARK
설명
제목 차례 표시
부모 엘리먼트
CHAR
엘리먼트 값
속성
Ignore
제목 차례를 표시 = false
차례 만들기 무시 = true
true | false
표 TITLEMARK 엘리먼트
TAB
설명
탭
부모 엘리먼트
CHAR
자식 엘리먼트
표 TAB 엘리먼트
LINEBREAK
설명
강제 줄 나눔 (SHIFT-ENTER)
부모 엘리먼트
CHAR
자식 엘리먼트
표 LINEBREAK 엘리먼트
HYPEN
설명
하이픈 (CTRL-SHIFT-'-')
부모 엘리먼트
CHAR
자식 엘리먼트
표 HYPEN 엘리먼트
NBSPACE
설명
묶음 빈 칸 (CTRL-ALT-SPACE)
부모 엘리먼트
CHAR
자식 엘리먼트
표 NBSPACE 엘리먼트
FWSPACE
설명
고정폭 빈 칸 (ALT-SPACE)
부모 엘리먼트
CHAR
자식 엘리먼트
표 FWSPACE 엘리먼트
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
0
MemoShapeId
TextVerticalWidthHead
표 SECDEF 엘리먼트
PARAMETERSET
설명
Parameter Set. 글 내부에서 모듈 간 데이터 전달을 위해 사용하는 데이터 구조로 정의되었으나, 컨트롤 개체에 따라 특정 데이터를 Parameter Set 형태로 저장하는 경우가 있다. 극히 드물게 사용된다.
부모 엘리먼트
SECDEF, ITEM, COLDEF, SHAPECOMPONENT, FORMOBJECT
자식 엘리먼트
ITEM
속성
SetId
Parameter Set 아이디
Count
Set안의 Item 개수
0 이상의 정수
표 PARAMETERSET 엘리먼트
PARAMETERARRAY
설명
Parameter Array. Parameter Set에서 배열을 표현하기 위한 구조. 자식 엘리먼트인 ITEM 엘리먼트가 배열의 각 원소에 해당한다.
부모 엘리먼트
ITEM
자식 엘리먼트
ITEM
속성
Count
Set안의 Item 개수
0 이상의 정수
표 PARAMETERARRAY 엘리먼트
ITEM
설명
Parameter Set 및 Parameter Array에서 각 아이템을 표시하는 단위.
부모 엘리먼트
PARAMETERSET, PARAMETERARRAY
엘리먼트 값
문자열, PARAMETERSET, PARAMETERARRAY
속성
ItemId
Item 아이디
Type
Item의 종류
Bstr (문자열) | Integer (정수) |
Set (Parameter Set) | Array (Parameter Array) | BinBata (binary data)
표 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
표 STARTNUMBER 엘리먼트
5.2.2. 감추기 정보
HIDE
설명
감추기 옵션들.
부모 엘리먼트
SECDEF
엘리먼트 값
속성
Header
첫쪽에만 머리말 감추기 여부
true | false
false
Footer
첫쪽에만 꼬리말 감추기 여부
true | false
false
MasterPage
첫쪽에만 바탕쪽 감추기 여부
true | false
false
Border
첫쪽에만 테두리 감추기 여부
true | false
false
Fill
첫쪽에만 배경 감추기 여부
true | false
false
PageNumPos
첫쪽에만 쪽번호 감추기 여부
true | false
false
EmptyLine
빈줄 감추기 여부
true | false
false
표 HIDE 엘리먼트
5.2.3. 용지 설정 정보
PAGEDEF
설명
용지 설정 정보.
용지 크기의 디폴트는 'A4'(210 mm X 297 mm)이다.
이때, 용지 가로 크기인 210 mm = 59529 hwpunit 이나 ᄒᆞᆫ글97과의 호환을 위해 59528 hwpunit을 사용한다.
부모 엘리먼트
SECDEF
자식 엘리먼트
PAGEMARGIN
속성
Landscape
용지 방향
0 (좁게) | 1 (넓게)
0
Width
용지 가로 크기
[hwpunit]
59528
Height
용지 세로 크기
[hwpunit]
84188
GutterType
제책 방법
LeftOnly (한쪽 편집) | LeftRight (맞쪽 편집) | TopBottom (위로 넘기기)
LeftOnly
표 PAGEDEF 엘리먼트
PAGEMARGIN
설명
용지 여백.
부모 엘리먼트
PAGEDEF
엘리먼트 값
속성
Left
왼쪽 여백
[hwpunit]
8504
Right
오른쪽 여백
[hwpunit]
8504
Top
위 여백
[hwpunit]
5668
Bottom
아래 여백
[hwpunit]
4252
Header
머리말 여백
[hwpunit]
4252
Footer
꼬리말 여백
[hwpunit]
4252
Gutter
제본 여백
[hwpunit]
0
표 PAGEMARGIN 엘리먼트
5.2.4. 각주/미주 모양 정보
FOOTNOTESHAPE
ENDNOTESHAPE
설명
각주모양 / 미주모양 정보
부모 엘리먼트
SECDEF
자식 엘리먼트
AUTONUMFORMAT, NOTELINE, NOTESPACING, NOTENUMBERING, NOTEPLACEMENT
표 FOOTNOTESHAPE, ENDNOTESHAPE 엘리먼트
AUTONUMFORMAT
설명
번호 서식
부모 엘리먼트
FOOTNOTESHAPE, ENDNOTESHAPE
엘리먼트 값
속성
Type
번호 모양 종류
[NumberType2]
Digit
UserChar
사용자 기호
PrefixChar
앞 장식 문자
SuffixChar
뒤 장식 문자
)
Superscript
각주 내용중 번호 코드의 모양을 윗첨자 형식으로 할지 여부
true | false
false
표 AUTONUMFORMAT 엘리먼트
NOTELINE
설명
구분선
부모 엘리먼트
FOOTNOTESHAPE, ENDNOTESHAPE
엘리먼트 값
속성
Length
구분선 길이
0 (구분선 없음) | 5cm (5cm) | 2cm (2cm) |
Column/3 (단 크기의 1/3) | Column (단 크기) |
그 외 (사용자 지정 길이, hwpunit)
Type
구분선 종류
[LineType1]
Solid
Width
구분선 굵기
[LineWidth]
0.12mm
Color
구분선 색
[RGB-Color]
표 NOTELINE 엘리먼트
NOTESPACING
설명
여백
부모 엘리먼트
FOOTNOTESHAPE, ENDNOTESHAPE
엘리먼트 값
속성
AboveLine
구분선 위 여백
[hwpunit]
567(2mm)
BelowLine
구분선 아래 여백
[hwpunit]
567(2mm)
BetweenNotes
주석 사이 여백
[hwpunit]
850(3mm)
표 NOTESPACING 엘리먼트
NOTENUMBERING
설명
번호 매기기
부모 엘리먼트
FOOTNOTESHAPE, ENDNOTESHAPE
엘리먼트 값
속성
Type
번호 매기기
Continuous (앞 구역에 이어서) | OnSection (현재 구역부터 새로 시작) | OnPage (쪽마다 새로 시작, 각주 전용)
Continuous
NewNumber
시작 번호
(Type이 "OnSection"일 때만 사용한다.)
1 이상의 정수
1
표 NOTENUMBERING 엘리먼트
NOTEPLACEMENT
설명
위치
부모 엘리먼트
FOOTNOTESHAPE, ENDNOTESHAPE
엘리먼트 값
속성
Place
한 페이지 내에서 미주/각주를 다단에 어떻게 위치시킬지를 표시한다.
- 각주일 때
EachColumn (각 단마다 따로 배열) | MergedColumn (통단으로 배열) | RightMostColumn (가장 오른쪽 단에 배열)
- 미주일 때
EndOfDocument (문서의 마지막) | EndOfSection (구역의 마지막)
- 각주일 때 :
EachColumn
- 미주일 때 :
EndOfDocument
BeneathText
텍스트에 이어 바로 출력할지 여부
true | false
false
표 NOTEPLACEMENT 엘리먼트
5.2.5. 쪽 테두리/배경 정보
PAGEBORDERFILL
설명
쪽 테두리/배경
부모 엘리먼트
SECDEF
자식 엘리먼트
PAGEOFFSET
속성
Type
종류
Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)
Both
BorderFill
테두리/배경 아이디 참조값
BORDERFILL엘리먼트의 Id속성값
TextBorder
쪽 테두리 위치 기준
true (본문 기준) |
false (종이 기준)
false
HeaderInside
머리말 포함
true | false
false
FooterInside
꼬리말 포함
true | false
false
FillArea
채울 영역
Paper (종이) | Page (쪽) | Border (테두리)
Paper
표 PAGEBORDERFILL 엘리먼트
PAGEOFFSET
설명
테두리/배경 위치
부모 엘리먼트
PAGEBORDERFILL
엘리먼트 값
속성
Left
왼쪽 간격
[hwpunit]
1417(5mm)
Right
오른쪽 간격
[hwpunit]
1417(5mm)
Top
위쪽 간격
[hwpunit]
1417(5mm)
Bottom
아래쪽 간격
[hwpunit]
1417(5mm)
표 PAGEOFFSET 엘리먼트
5.2.6. 바탕쪽 정보
MASTERPAGE
설명
바탕쪽
부모 엘리먼트
SECDEF
자식 엘리먼트
PARALIST
속성
Type
종류
Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)
Both
TextWidth
텍스트 영역의 폭
TextHeight
텍스트 영역의 높이
HasTextRef
각 비트가 해당 레벨의 텍스트에 대한 참조를 했는지 여부
true | false
false
HasNumRef
각 비트가 해당 레벨의 번호에 대한 참조를 했는지 여부
true | false
false
표 MASTERPAGE 엘리먼트
PARALIST
설명
문단 리스트
부모 엘리먼트
MASTERPAGE, EXT_MASTERPAGE, CELL, DRAWTEXT, CAPTION, HEADER, FOOTER, FOOTNOTE, ENDNOTE, HIDDENCOMMENT
자식 엘리먼트
P
속성
TextDirection
텍스트 방향
0 (가로) | 1 (세로)
0
LineWrap
경계에서 줄나눔 방식
[LineWrapType]
Break
VertAlign
세로 정렬
Top (위) | Center (가운데) | Bottom (아래)
Top
LinkListID
LinkListIDNext
표 PARALIST 엘리먼트
5.2.7. 확장 바탕쪽 정보
EXT_MASTERPAGE
설명
확장 바탕쪽
부모 엘리먼트
SECDEF
자식 엘리먼트
PARALIST
속성
Type
종류
LastPage (마지막쪽) | OptionalPage (임의쪽)
PageNumber
(Type이 "OptionalPage"일 때) 임의의 쪽 번호
1 이상의 정수
PageDuplicate
기존 바탕쪽(양쪽, 홀수쪽, 짝수쪽)과 확장바탕쪽 겹침
true | false
PageFront
바탕쪽 앞으로 보내기
true | false
표 EXT_MASTERPAGE 엘리먼트
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
표 COLDEF 엘리먼트
COLUMNLINE
설명
단 구분선
부모 엘리먼트
COLDEF
엘리먼트 값
속성
Type
구분선 종류
[LineType]
Solid
Width
구분선 굵기
[LineWidth]
0.12mm
Color
구분선 색
[RGB-Color]
표 COLUMNLINE 엘리먼트
COLUMNTABLE
설명
단 테이블
부모 엘리먼트
COLDEF
자식 엘리먼트
COLUMN
표 COLUMNTABLE 엘리먼트
COLUMN
설명
단
부모 엘리먼트
COLUMNTABLE
엘리먼트 값
속성
Width
단의 폭
[hwpunit]
Gap
단 사이 간격
[hwpunit]
표 COLUMN 엘리먼트
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속성값
표 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
표 SHAPEOBJECT 엘리먼트
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
표 SIZE 엘리먼트
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
표 POSITION 엘리먼트
OUTSIDEMARGIN
설명
바깥 여백
부모 엘리먼트
SHAPEOBJECT
엘리먼트 값
속성
Left
오브젝트의 바깥 왼쪽 여백
[hwpunit]
TABLE일때 : 283
PICTURE일때 : 0
EQUATION일때 : 56
그리기개체일때 : 0
OLE일때 : ?
Right
오브젝트의 바깥 오른쪽 여백
[hwpunit]
Top
오브젝트의 바깥 위쪽 여백
[hwpunit]
Bottom
오브젝트의 바깥 아래쪽 여백
[hwpunit]
표 OUTSIDEMARGIN 엘리먼트
CAPTION
설명
캡션
부모 엘리먼트
SHAPEOBJECT
자식 엘리먼트
PARALIST
속성
Side
방향
Left | Right | Top | Bottom
Left
FullSize
캡션 폭에 마진을 포함할지 여부.
(Side가 가로 방향일 때만 사용)
true | false
false
Width
캡션 폭.
(Side가 세로 방향일 때만 사용)
Gap
캡션과 틀 사이 간격
850
LastWidth
텍스트의 최대 길이 (=개체의 폭)
표 CAPTION 엘리먼트
SHAPECOMMENT
설명
주석
부모 엘리먼트
SHAPEOBJECT
엘리먼트 값
문자열
표 SHAPECOMMENT 엘리먼트
INSIDEMARGIN
설명
안쪽 여백
부모 엘리먼트
TABLE, PICTURE
엘리먼트 값
속성
Left
왼쪽 여백
[hwpunit]
TABLE일때 : 141
PICTURE일때 : 0
Right
오른쪽 여백
[hwpunit]
Top
위쪽 여백
[hwpunit]
Bottom
아래쪽 여백
[hwpunit]
표 INSIDEMARGIN 엘리먼트
CELLZONELIST
설명
셀존 리스트
부모 엘리먼트
TABLE
자식 엘리먼트
CELLZONE
속성
Count
셀존의 개수
0 이상의 정수
표 CELLZONELIST 엘리먼트
CELLZONE
설명
셀존
부모 엘리먼트
CELLZONELIST
엘리먼트 값
속성
StartRowAddr
셀존의 Row의 시작주소
StartColAddr
셀존의 Column의 시작주소
EndRowAddr
셀존의 Row의 끝주소
EndColAddr
셀존의 Column의 끝주소
BorderFill
테두리/배경 아이디
표 CELLZONE 엘리먼트
ROW
설명
표의 행
부모 엘리먼트
TABLE
자식 엘리먼트
CELL
표 ROW 엘리먼트
CELL
설명
표의 셀
부모 엘리먼트
ROW
자식 엘리먼트
CELLMARGIN, PARALIST
속성
Name
셀 필드 이름
ColAddr
셀 주소 (Column, 맨 왼쪽 셀이 0부터 시작하여 1씩 증가)
RowAddr
셀 주소 (Row, 맨 위쪽 셀이 0부터 시작하여 1씩 증가)
ColSpan
열의 병합 갯수
1
RowSpan
행의 병합 갯수
1
Width
셀의 폭
[hwpunit]
Height
셀의 높이
[hwpunit]
Header
제목 셀인지 여부
true | false
false
HasMargin
테이블의 기본 셀마진이 아닌 독자적인 마진을 사용할지 여부
true | false
false
Protect
사용자 편집을 막을지 여부
true | false
false
Editable
읽기 전용 상태에서도 수정 가능한지 여부
true | false
false
Dirty
마지막으로 업데이트된 이후 사용자가 내용을 변경했는지 여부
true | false
false
BorderFill
테두리/배경 아이디 참조값
BORDERFILL엘리먼트의 Id속성값
표 CELL 엘리먼트
CELLMARGIN
설명
셀 여백
부모 엘리먼트
CELL
엘리먼트 값
속성
Left
왼쪽 여백
[hwpunit]
0
Right
오른쪽 여백
[hwpunit]
0
Top
위쪽 여백
[hwpunit]
0
Bottom
아래쪽 여백
[hwpunit]
0
표 CELLMARGIN 엘리먼트
5.5. 그림
PICTURE
설명
그림
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, SHAPECOMPONENT, LINESHAPE, IMAGERECT, IMAGECLIP, EFFECTS, INSIDEMARGIN, IMAGE
속성
Reverse
true | false
false
표 PICTURE 엘리먼트
SHAPECOMPONENT
설명
개체 요소 속성
부모 엘리먼트
PICTURE, DRAWINGOBJECT
자식 엘리먼트
PARAMETERSET, ROTATIONINFO, RENDERINGINFO
속성
HRef
하이퍼링크 속성.
하이퍼링크 필드 컨트롤의 Command속성과 동일.
XPos
개체가 속한 그룹내에서의 X offset
[hwpunit]
0
YPos
개체가 속한 그룹내에서의 Y offset
[hwpunit]
0
GroupLevel
그룹으로 묶인 횟수
0
OriWidth
개체 생성시 최초 폭
[hwpunit]
OriHeight
개체 생성시 최초 높이
[hwpunit]
CurWidth
개체의 현재 폭
[hwpunit]
CurHeight
개체의 현재 높이
[hwpunit]
HorzFlip
좌/우로 뒤집어진 상태인지 여부
true | false
false
VertFlip
상/하로 뒤집어진 상태인지 여부
true | false
false
InstID
표 SHAPECOMPONENT 엘리먼트
ROTATIONINFO
설명
개체 회전
부모 엘리먼트
SHAPECOMPONENT
엘리먼트 값
속성
Angle
회전각
0
CenterX
회전중심의 x좌표
개체 좌표계-개체 width의 반
CenterY
회전중심의 y좌표
개체 좌표계-개체 height의 반
표 ROTATIONINFO 엘리먼트
RENDERINGINFO
설명
랜더링 정보
부모 엘리먼트
SHAPECOMPONENT
자식 엘리먼트
TRANSMATRIX, SCAMATRIX, ROTMATRIX
표 RENDERINGINFO 엘리먼트
TRANSMATRIX
SCAMATRIX
ROTMATRIX
설명
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)
표 TRANSMATRIX, SCAMATRIX, ROTMATRIX 엘리먼트
LINESHAPE
설명
테두리 선 모양
부모 엘리먼트
PICTURE, DRAWINGOBJECT, OLE
엘리먼트 값
속성
Color
선 색상
[RGB-Color]
Width
선 굵기
[hwpunit]
Style
선 종류
[LineType1]
Solid
EndCap
선 끝 모양.
그림 일때는 "Round", 그리기개 체들일 때는 "Flat"이 디폴트.
Round (둥근 모양) | Flat (편평한 모양)
Flat
HeadStyle
화살표 시작 모양
[ArrowType]
Normal
TailStyle
화살표 끝 모양
[ArrowType]
Normal
HeadSize
화살표 시작 크기
[ArrowSize]
SmallSmall
TailSize
화살표 끝 크기
[ArrowSize]
SmallSmall
OutlineStyle
Normal | Outer | Inner
Normal
Alpha
표 LINESHAPE 엘리먼트
IMAGERECT
설명
이미지 좌표 정보
부모 엘리먼트
PICTURE
엘리먼트 값
속성
X0
이미지의 테두리 사각형의 좌표 (최초 그림 삽입시 크기)
(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3)
Y0
X1
Y1
X2
Y2
표 IMAGERECT 엘리먼트
IMAGECLIP
설명
이미지 자르기 정보
부모 엘리먼트
PICTURE
엘리먼트 값
속성
Left
(Left, Top) (Right, Bottom) : 자르기한후 사각형
Top
Right
Bottom
표 IMAGECLIP 엘리먼트
EFFECTS
설명
이미지 효과 정보
부모 엘리먼트
PICTURE
자식 엘리먼트
SHADOWEFFECT, GLOW, SOFTEDGE, REFLECTION
표 EFFECTS 엘리먼트
SHADOWEFFECT
설명
그림자 효과
부모 엘리먼트
EFFECTS
자식 엘리먼트
EFFECTSCOLOR
속성
Style
그림자 스타일 (바깥쪽/안쪽)
Alpha
시작 투명도
Radius
흐릿하게
Direction
방향 각도
Distance
거리
AlignStyle
그림자 정렬
SkewX
기울기 각도(X)
SkewY
기울기 각도(Y)
ScaleX
확대 비율(X)
ScaleY
확대 비율(Y)
RotationStyle
도형과 함께 그림자 회전
표 SHADOWEFFECT 엘리먼트
GLOW
설명
네온 효과
부모 엘리먼트
EFFECTS
자식 엘리먼트
EFFECTSCOLOR
속성
Alpha
시작 투명도
Radius
네온 크기
표 GLOW 엘리먼트
SOFTEDGE
설명
부드러운 가장자리 효과
부모 엘리먼트
EFFECTS
엘리먼트 값
속성
Radius
부드러운 가장자리 크기
표 SOFTEDGE 엘리먼트
REFLECTION
설명
반사 효과
부모 엘리먼트
EFFECTS
엘리먼트 값
속성
AlignStyle
그림자 정렬
Radius
흐릿하게
Direction
방향 각도
Distance
거리
SkewX
기울기 각도(X)
SkewY
기울기 각도(Y)
ScaleX
확대 비율(X)
ScaleY
확대 비율(Y)
RotationStyle
도형과 함께 그림자 회전
StartAlpha
시작 투명도
StartPos
시작 위치
EndAlpha
끝 투명도
EndPos
끝 위치
FadeDirection
오프셋 방향
표 REFLECTION 엘리먼트
EFFECTSCOLOR
설명
도형엔진용 색상
부모 엘리먼트
SHADOWEFFECT, GLOW
자식 엘리먼트
COLOREFFECT
속성
Type
컬러 종류. rgb, cmyk, scheme, system.
SchemeIndex
Scheme Index
SystemIndex
System Index
PresetIndex
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 컬러
표 EFFECTSCOLOR 엘리먼트
COLOREFFECT
설명
도형엔진용 색상 효과
부모 엘리먼트
EFFECTSCOLOR
엘리먼트 값
속성
Type
ColorEffect Type
Value
Value
표 COLOREFFECT 엘리먼트
5.6. 그리기 개체
DRAWINGOBJECT
설명
그리기 개체 공통 속성
부모 엘리먼트
LINE, RECTANGLE, ELLIPSE, ARC, POLYGON, CURVE
자식 엘리먼트
SHAPECOMPONENT, LINESHAPE, FILLBRUSH, DRAWTEXT, SHADOW
표 DRAWINGOBJECT 엘리먼트
DRAWTEXT
설명
그리기 개체 글상자용 텍스트
부모 엘리먼트
DRAWINGOBJECT
자식 엘리먼트
TEXTMARGIN, PARALIST
속성
LastWidth
텍스트 문자열의 최대 폭.
(보통 그리기 개체의 가로 크기와 동일)
Name
글상자 이름
Editable
편집 가능 여부
true | false
false
표 DRAWTEXT 엘리먼트
TEXTMARGIN
설명
글상자 텍스트 여백
부모 엘리먼트
DRAWTEXT
엘리먼트 값
속성
Left
왼쪽 여백
[hwpunit]
238(1mm)
Right
오른쪽 여백
[hwpunit]
238(1mm)
Top
위쪽 여백
[hwpunit]
238(1mm)
Bottom
아래쪽 여백
[hwpunit]
238(1mm)
표 TEXTMARGIN 엘리먼트
5.6.1. 선
LINE
설명
그리기 개체 : 선
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, DRAWINGOBJECT
속성
StartX
시작점 X좌표
[hwpunit]
StartY
시작점 Y좌표
[hwpunit]
EndX
끝점 X좌표
[hwpunit]
EndY
끝점 Y좌표
[hwpunit]
IsReverseHV
처음 생성시 수직 또는 수평선일때, 선의 방향이 언제나 오른쪽(위쪽)으로 잡힘으로 인한 현상때문에, 방향을 바로 잡아주기 위한 플래그
true | false
false
표 LINE 엘리먼트
5.6.2. 사각형
RECTANGLE
설명
그리기 개체 : 사각형
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, DRAWINGOBJECT
속성
Ratio
사각형 모서리 곡률 (%).
직각은 0, 둥근모양은 20, 반원은 50, 그외는 적당한 값을 %단위로 사용한다.
X0
(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3) : 사각형의 좌표
Y0
X1
Y1
X2
Y2
표 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좌표값
Start1X
Start1Y
End1X
End1Y
Start2X
interval of curve (effective only when it is an arc)
Start2Y
End2X
End2Y
표 ELLIPSE 엘리먼트
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좌표값
표 ARC 엘리먼트
5.6.5. 다각형
POLYGON
설명
그리기 개체 : 다각형
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, DRAWINGOBJECT, POINT
표 POLYGON 엘리먼트
POINT
설명
다각형 개체를 이루는 포인트
부모 엘리먼트
POLYGON, OUTLINEDATA
엘리먼트 값
속성
X
X 좌표
Y
Y 좌표
표 POINT 엘리먼트
5.6.6. 곡선
CURVE
설명
그리기 개체 : 곡선
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, DRAWINGOBJECT, SEGMENT
표 CURVE 엘리먼트
SEGMENT
설명
곡선 개체를 이루는 세그먼트
부모 엘리먼트
CURVE
엘리먼트 값
속성
Type
세그먼트의 타입
Line (직선) | Curve (곡선)
Curve
X1
세그먼트의 시작점 X좌표
Y1
세그먼트의 시작점 Y좌표
X2
세그먼트의 끝점 X좌표
Y2
세그먼트의 끝점 Y좌표
표 SEGMENT 엘리먼트
5.6.7. 연결선
CONNECTLINE
설명
그리기 개체 : 연결선
부모 엘리먼트
TEXT
엘리먼트 값
SHAPEOBJECT, DRAWINGOBJECT
속성
Type
StartX
StartY
EndX
EndY
StartSubjectID
StartSubjectIndex
EndSubjectID
EndSubjectIndex
표 CONNECTLINE 엘리먼트
5.7. Unknown Object
UNKNOWNOBJECT
설명
Unknown Object
부모 엘리먼트
TEXT
엘리먼트 값
SHAPEOBJECT, DRAWINGOBJECT
속성
Ctrlid
ID
X0
(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3) : master 좌표
Y0
X1
Y1
X2
Y2
X3
Y3
표 UNKNOWNOBJECT 엘리먼트
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
경계선 종류
0
DrawFrame
true | false
true
Printable
출력 가능 여부
true | false
true
표 FORMOBJECT 엘리먼트
FORMCHARSHAPE
설명
양식 개체의 글자 속성
부모 엘리먼트
FORMOBJECT
엘리먼트 값
속성
CharShape
글자 모양
0
FollowContext
true | false
false
AutoSize
자동 크기 설정 여부
true | false
false
WordWrap
줄 내림 여부
true | false
false
표 FORMCHARSHAPE 엘리먼트
BUTTONSET
설명
버튼 개체 공통 속성
부모 엘리먼트
FORMOBJECT
엘리먼트 값
속성
Caption
Value
RadioGroupName
TriState
true | false
BackStyle
표 BUTTONSET 엘리먼트
BUTTON
설명
양식 개체 : 버튼
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, FORMOBJECT
표 BUTTON 엘리먼트
5.8.1. 라디오 버튼
RADIOBUTTON
설명
양식 개체 : 라디오 버튼
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, FORMOBJECT
표 RADIOBUTTON 엘리먼트
5.8.2. 체크 버튼
CHECKBUTTON
설명
양식 개체 : 체크 버튼
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, FORMOBJECT
표 CHECKBUTTON 엘리먼트
5.8.3. 콤보 박스
COMBOBOX
설명
양식 개체 : 콤보 박스
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, FORMOBJECT
속성
ListBoxRows
ListBoxWidth
넓이
Text
내용
EditEnable
텍스트로 수정 가능 여부
표 COMBOBOX 엘리먼트
5.8.4. 에디트
EDIT
설명
양식 개체 : 에디트
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, FORMOBJECT, EDITTEXT
속성
MultiLine
다중 라인
PasswordChar
비밀번호
MaxLength
최대 길이
ScrollBars
스크롤바 활성화
TabKeyBehavior
Number
true | false
ReadOnly
읽기 전용 여부
true | false
AlignText
표 EDIT 엘리먼트
EDITTEXT
설명
에디트의 텍스트 데이터
부모 엘리먼트
EDIT
엘리먼트 값
문자열
표 EDITTEXT 엘리먼트
5.8.5. 리스트 박스
LISTBOX
설명
양식 개체 : 리스트 박스
부모 엘리먼트
TEXT
엘리먼트 값
SHAPEOBJECT, FORMOBJECT
속성
Text
ItemHeight
TopIndex
표 LISTBOX 엘리먼트
5.8.6. 스크롤바
SCROLLBAR
설명
양식 개체 : 스크롤바
부모 엘리먼트
TEXT
엘리먼트 값
SHAPEOBJECT, FORMOBJECT
속성
Delay
LargeChange
SmallChange
Min
Max
Page
Value
Type
표 SCROLLBAR 엘리먼트
5.9. 묶음 객체
CONTAINER
설명
묶음 개체
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, SHAPECOMPONENT, CONTAINER, LINE, RECTANGLE, ELLIPSE, ARC, POLYGON, CURVE, CONNECTLINE, PICTURE, OLE
표 CONTAINER 엘리먼트
5.10. OLE 객체
OLE
설명
OLE
부모 엘리먼트
TEXT
자식 엘리먼트
SHAPEOBJECT, SHAPECOMPONENT, LINESHAPE
속성
ObjetType
OLE개체의 종류
Unknown | Embedded | Link | Static |
Equation (수식 ocx)
ExtentX
ExtentY
BinItem
DrawAspect
Content | ThumbNail | Icon | DocPrint
HasMoniker
true | false
false
EqBaseLine
표 OLE 엘리먼트
5.11. ᄒᆞᆫ글 97 수식
EQUATION
설명
ᄒᆞᆫ글 97 수식
부모 엘리먼트
TEXT
엘리먼트 값
SHAPEOBJECT, SCRIPT
속성
LineMode
차지 범위
true (줄 단위) | false (글자 단위)
false
BaseUnit
수식 글자 크기
[hwpunit]
1000
TextColor
글자 색상
[RGB-Color]
0
BaseLine
Version
표 EQUATION 엘리먼트
SCRIPT
설명
수식 스트립트 내용
부모 엘리먼트
EQUATION
엘리먼트 값
ᄒᆞᆫ글 97 수식 스크립트 문자열이 온다.
표 SCRIPT 엘리먼트
5.12. 글맵시
TEXTART
설명
글맵시
부모 엘리먼트
TEXT
자식 엘리먼트
TEXTARTSHAPE, OUTLINEDATA
속성
Text
내용
X0
(X0, Y0) (X1, Y1) (X2, Y2) (X3, Y3) : master 좌표
Y0
X1
Y1
X2
Y2
X3
Y3
표 TEXTART 엘리먼트
TEXTARTSHAPE
설명
TEXTARTSHAPE
부모 엘리먼트
TEXTART
자식 엘리먼트
SHADOW
속성
FontName
폰트 이름
FontStyle
폰트 스타일
Regular
FontType
HFDT_TTF or HFDT_HFT
ttf | htf
ttf
TextShape
0(shape 1) ~ 39(shape 40)
0 ~ 39
0
LineSpacing
50 ~ 500
120
CharSpacing
50 ~ 500
100
Align
Left | Right | Center | Full | Table
Left
표 TEXTARTSHAPE 엘리먼트
OUTLINEDATA
설명
외각선
부모 엘리먼트
TEXTART
자식 엘리먼트
POINT
속성
Count
외각선 포인트 개수
0 이상의 정수
표 OUTLINEDATA 엘리먼트
5.13. 필드 시작
FIELDBEGIN
설명
필드 시작
부모 엘리먼트
TEXT
엘리먼트 값
속성
Type
필드의 종류
[FieldType]
Name
필드 이름
InstId
인스턴스 아이디 (문서내 고유 아이디)
Editable
읽기 전용 상태에서도 수정 가능한지 여부
true | false
true
Dirty
필드 내용이 수정되었는지 여부
true | false
false
Property
기타 속성
Command
명령 문자열 (각각의 필드 종류마다 처리해야할 고유 정보)
표 FIELDBEGIN 엘리먼트
5.14. 필드 끝
FIELDEND
설명
필드 끝
부모 엘리먼트
TEXT
엘리먼트 값
속성
Type
필드의 종류
[FieldType]
Editable
읽기 전용 상태에서도 수정 가능한지 여부
true | false
true
Property
기타 속성
표 FIELDEND 엘리먼트
5.15. 책갈피
BOOKMARK
설명
책갈피
부모 엘리먼트
TEXT
엘리먼트 값
속성
Name
책갈피 이름
표 BOOKMARK 엘리먼트
5.16. 머리말, 꼬리말
HEADER
FOOTER
설명
머리말, 꼬리말
부모 엘리먼트
TEXT
자식 엘리먼트
PARALIST
속성
ApplyPageType
머리말/꼬리말이 적용될 페이지 종류
Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)
Both
SeriesNum
구역내의 일련번호
표 HEADER, FOOTER 엘리먼트
5.17. 각주, 미주
FOOTNOTE
ENDNOTE
설명
각주, 미주
부모 엘리먼트
TEXT
자식 엘리먼트
PARALIST
표 FOOTNOTE, ENDNOTE 엘리먼트
5.18. 자동 번호, 새 번호
AUTONUM
NEWNUM
설명
자동 번호, 새 번호
부모 엘리먼트
TEXT
자식 엘리먼트
AUTONUMFORMAT
속성
Number
번호
1
NumberType
번호의 종류
Page (쪽) | Footnote (각주) | Endnote (미주) | Figure (그림) | Table (표) | Equation (수식) | TotalPage
표 AUTONUM, NEWNUM 엘리먼트
5.19. 홀/짝수 조정
PAGENUMCTRL
설명
홀/짝수 조정
부모 엘리먼트
TEXT
엘리먼트 값
속성
PageStartsOn
홀/짝수 구분
Both (양쪽) | Even (짝수쪽) | Odd (홀수쪽)
Both
표 PAGENUMCTRL 엘리먼트
5.20. 감추기
PAGEHIDING
설명
감추기
부모 엘리먼트
TEXT
엘리먼트 값
속성
HideHeader
머리말 감추기 여부
true | false
false
HideFooter
꼬리말 감추기 여부
true | false
false
HideMasterPage
바탕쪽 감추기 여부
true | false
false
HideBorder
테두리 감추기 여부
true | false
false
HideFill
배경 감추기 여부
true | false
false
HidePageNum
쪽 번호 감추기 여부
true | false
false
표 PAGEHIDING 엘리먼트
5.21. 쪽번호 위치
PAGENUM
설명
쪽번호 위치
부모 엘리먼트
TEXT
엘리먼트 값
속성
Pos
번호 위치
None (없음) | TopLeft (왼쪽 위) |
TopCenter (가운데 위) | TopRight (오른쪽 위) | BottomLeft (왼쪽 아래) |
BottomCenter (가운데 아래) |
BottomRight (오른쪽 아래) |
OutsideTop (바깥쪽 위) |
OutsideBottom (바깥쪽 아래) |
InsideTop (안쪽 위) | InsideBottom (안쪽 아래)
TopLeft
FormatType
번호 모양 종류
[NumberType1]
Digit
SideChar
줄 표
-
표 PAGENUM 엘리먼트
5.22. 찾아보기 표식
INDEXMARK
설명
찾아보기 표식.
찾아보기 표식을 달수 있고, 찾아보기 만들기에서 참조한다.
부모 엘리먼트
TEXT
자식 엘리먼트
KEYFIRST, KEYSECOND
표 INDEXMARK 엘리먼트
KEYFIRST
설명
찾아보기에 사용할 첫번째 키워드
부모 엘리먼트
INDEXMARK
엘리먼트 값
키워드 내용
표 KEYFIRST 엘리먼트
KEYSECOND
설명
찾아보기에 사용할 두번째 키워드
부모 엘리먼트
INDEXMARK
엘리먼트 값
키워드 내용
표 KEYSECOND 엘리먼트
5.23. 글자 겹침
COMPOSE
설명
글자 겹침
부모 엘리먼트
TEXT
자식 엘리먼트
COMPCHARSHAPE
속성
CircleType
테투리 타입
CharSize
내부 글자 크기
ComposeType
겹치기 종류
CharShapeSize
글자 모양 갯수
표 COMPOSE 엘리먼트
COMPCHARSHAPE
설명
글자 겹침 글자 모양
부모 엘리먼트
COMPOSE
엘리먼트 값
속성
ShapeID
글자 모양 식별자
표 COMPCHARSHAPE 엘리먼트
5.24. 덧말
DUTMAL
설명
덧말
부모 엘리먼트
TEXT
자식 엘리먼트
MAINTEXT, SUBTEXT
속성
PosType
덧말의 위치
Top (위쪽) | Bottom (아래쪽)
Top
SizeRatio
Option
StyleNo
Align
정렬 기준
[AlignmentType1]
Center
표 DUTMAL 엘리먼트
MAINTEXT
설명
덧말넣기의 본말 내용
부모 엘리먼트
DUTMAL
엘리먼트 값
덧말넣기의 본말 내용이 온다.
표 MAINTEXT 엘리먼트
SUBTEXT
설명
덧말넣기의 덧말 내용
부모 엘리먼트
DUTMAL
엘리먼트 값
덧말넣기의 덧말 내용이 온다.
표 SUBTEXT 엘리먼트
5.25. 숨은 설명
HIDDENCOMMENT
설명
숨은 설명
부모 엘리먼트
TEXT
자식 엘리먼트
PARALIST
표 HIDDENCOMMENT 엘리먼트
6. 부가 정보 엘리먼트
TAIL
설명
헤더와 본문정보 외에 기타 정보를 담고 있다.
부모 엘리먼트
HWPML
자식 엘리먼트
BINDATASTORAGE, SCRIPTCODE, XMLTEMPLATE
표 TAIL 엘리먼트
BINDATASTORAGE
설명
바이너리 데이타 저장소
부모 엘리먼트
TAIL
자식 엘리먼트
BINDATA
표 BINDATASTORAGE 엘리먼트
BINDATA
설명
바이너리 데이타
부모 엘리먼트
BINDATASTORAGE
엘리먼트 값
문자열
속성
Id
바이너리 데이타 아이디
Size
바이너리 데이타 크기
Encoding
인코딩 방식. Base64로 고정되어 있다.
Base64
Base64
Compress
압축 여부
true | false
true
표 BINDATA 엘리먼트
SCRIPTCODE
설명
스크립트 코드
부모 엘리먼트
TAIL
엘리먼트 값
SCRIPTHEADER, SCRIPTSOURCE, PRESCRIPT, POSTSCRIPT
속성
Type
스크립트 코드 종류
JScript
JScript
Version
스크립트 코드 버전
표 SCRIPTCODE 엘리먼트
SCRIPTHEADER
설명
스크립트 코드 헤더
부모 엘리먼트
SCRIPTCODE
엘리먼트 값
문자열
표 SCRIPTHEADER 엘리먼트
SCRIPTSOURCE
설명
스크립트 코드 소스
부모 엘리먼트
SCRIPTCODE
엘리먼트 값
문자열
표 SCRIPTSOURCE 엘리먼트
PRESCRIPT
POSTSCRIPT
설명
PRESCRIPT, POSTSCRIPT
부모 엘리먼트
SCRIPTCODE
자식 엘리먼트
SCRIPTFUNCTION
속성
Count
SCRIPTFUNCTION의 개수
0 이상의 정수
표 PRESCRIPT, POSTSCRIPT 엘리먼트
SCRIPTFUNCTION
설명
스크립트 코드 함수
부모 엘리먼트
PRESCRIPT, POSTSCRIPT
엘리먼트 값
문자열
표 SCRIPTFUNCTION 엘리먼트
XMLTEMPLATE
설명
XML 템플릿
부모 엘리먼트
TAIL
자식 엘리먼트
SCHEMA, INSTANCE
표 XMLTEMPLATE 엘리먼트
SCHEMA
설명
XML 스키마
부모 엘리먼트
XMLTEMPLATE
엘리먼트 값
문자열
표 SCHEMA 엘리먼트
INSTANCE
설명
XML 인스턴스
부모 엘리먼트
XMLTEMPLATE
엘리먼트 값
문자열
표 INSTANCE 엘리먼트
COMPATIBLEDOCUMENT
설명
호환문서
부모 엘리먼트
HEAD
자식 엘리먼트
LAYOUTCOMPATIBILITY
속성
TargetProgram
None | Hwp70 | Word
None
표 COMPATIBLEDOCUMENT 엘리먼트
LAYOUTCOMPATIBILITY
설명
서식
부모 엘리먼트
COMPATIBLEDOCUMENT
엘리먼트 값
속성
ApplyFontWeightToBold
true | false
false
UseInnerUnderline
true | false
false
FixedUnderlineWidth
true | false
false
DoNotApplyStrikeout
true | false
false
UseLowercaseStrikeout
true | false
false
ExtendLineheightToOffset
true | false
false
TreatQuotationAsLatin
true | false
false
DoNotAlignWhitespaceOnRight
true | false
false
DoNotAdjustWordInJustify
true | false
false
BaseCharUnitOnEAsian
true | false
false
BaseCharUnitOfIndentOnFirstChar
true | false
false
AdjustLineheightToFont
true | false
false
AdjustBaselineInFixedLinespacing
true | false
false
ExcludeOverlappingParaSpacing
true | false
false
ApplyNextspacingOfLastPara
true | false
false
ApplyAtLeastToPercent100Pct
true | false
false
DoNotApplyAutoSpaceEAsianEng
true | false
false
DoNotApplyAutoSpaceEAsianNum
true | false
false
AdjustParaBorderfillToSpacing
true | false
false
ConnectParaBorderfillOfEqualBorder
true | false
false
AdjustParaBorderOffsetWithBorder
true | false
false
ExtendLineheightToParaBorderOffset
true | false
false
ApplyParaBorderToOutside
true | false
false
BaseLinespacingOnLinegrid
true | false
false
ApplyCharSpacingToCharGrid
true | false
false
DoNotApplyGridInHeaderfooter
true | false
false
ExtendHeaderfooterToBody
true | false
false
AdjustEndnotePositionToFootnote
true | false
false
DoNotApplyImageEffect
true | false
false
DoNotApplyShapeComment
true | false
false
DoNotAdjustEmptyAnchorLine
true | false
false
OverlapBothAllowOverlap
true | false
false
DoNotApplyVertOffsetOfForward
true | false
false
ExtendVertLimitToPageMargins
true | false
false
DoNotHoldAnchorOfTable
true | false
false
DoNotFormattingAtBeneathAnchor
true | false
false
DoNotApplyExtensionCharCompose
true | false
false
표 LAYOUTCOMPATIBILITY 엘리먼트
변경 사항 이력
■ revision 1.2:20141105
- 구 5.0 내용 삭제
- 회사 주소 정보 수정
■ revision 1.1:20110124
- 저작권 내용 수정
- 내용 중 일부 오타 수정
■ revision 1.0:20100701
- ᄒᆞᆫ글 문서 파일 형식 공개
한글 문서 파일 구조
발행처
(주) 한글과컴퓨터
주 소
(우) 463-400
경기도 성남시 분당구 대왕판교로 644번길 49 한컴타워 10층
전화: (031) 627-7000
팩스: (031) 627-7709