4326 lines
110 KiB
Markdown
4326 lines
110 KiB
Markdown
# 레퍼런스 — 웹한글기안기 API (v3)
|
||
|
||
> 상위: [development-guide.md](./development-guide.md)
|
||
> 원본: 한컴 웹한글기안기 API v3 개발 가이드 (PDF → TaggedPDF XML)
|
||
> 정리일: 2026-09-10
|
||
> 구현: `apps/as/src/widgets/hangulgiangi`
|
||
|
||
한컴 웹한글기안기 `HwpCtrl` / `HwpAction` / `HwpParameterSet` / `HwpParameterArray` / `HwpCtrlCode` API를 프론트 구현용으로 정리한 문서다. PDF OCR·줄바꿈 흔적은 바로잡았고, 원문 의미는 유지했다.
|
||
|
||
공식 개발자 가이드: [Hancom WebHWP](https://developer.hancom.com/webhwp)
|
||
|
||
---
|
||
|
||
## 이 프로젝트에서 쓰는 범위
|
||
|
||
실무협의서 관리(`TE`/`RK`) 웹기안기는 아래만 호출한다. 나머지는 확장 시 참고한다.
|
||
|
||
| 용도 | API | 프로젝트 사용 |
|
||
| --- | --- | --- |
|
||
| 문서 열기 | `HwpCtrl.Open(path, format, arg, callback, callbackUserData)` | `File`(HWPX blob) + `format: "HWPX"` + `arg: ""`. 인증된 `GET .../webhwp/open` blob을 `File`로 감싼다. URL 직접 전달·`blob:` Object URL은 쓰지 않는다. |
|
||
| 저장 | `HwpCtrl.SaveAs(fileName, format, arg, callback, callbackUserData)` | `format: "HWPX"`, `arg: "download:false"`. 콜백 `result.data`를 Blob으로 디코드한 뒤 `POST /pwrk-cnsltn-doc-crt-rslt` multipart. |
|
||
| 로컬 다운로드 | `SaveAs(..., "download:true")` 또는 서버 `GET .../download` | 화면 [다운로드]는 서버 download API를 쓴다. |
|
||
|
||
`Open` 반환값(`true`/`false`)은 인자 유효성만 나타낸다. 실제 성공은 콜백 `result.result`로 판단한다. 브라우저는 로컬 파일 경로를 열 수 없다.
|
||
|
||
---
|
||
|
||
## 목차
|
||
|
||
- [1. HwpCtrl](#1-hwpctrl)
|
||
- [1.1 Properties](#11-properties)
|
||
- [1.2 Methods](#12-methods)
|
||
- [2. HwpAction](#2-hwpaction)
|
||
- [3. HwpParameterSet](#3-hwpparameterset)
|
||
- [4. HwpParameterArray](#4-hwpparameterarray)
|
||
- [5. HwpCtrlCode](#5-hwpctrlcode)
|
||
|
||
---
|
||
|
||
## 1. HwpCtrl
|
||
|
||
### 1.1 Properties
|
||
|
||
#### 1.1.1 `CellShape`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CellShape
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 선택되어 있는 표와 셀의 모양 정보를 나타낸다.
|
||
|
||
**반환값**
|
||
|
||
블록된 셀 혹은, 현재 캐럿이 위치한 셀의 속성을 ParameterSet 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
ParameterSet/Table 로 표의 속성에 대한 기본 정보를 나타내며, 이 가운데 Cell 아이템이 ParameterSet/Cell 로 셀의 속성을 나타낸다. 셀 블록이 잡혀있지 않은 상태이면 현재 캐럿이 위치한 셀 하나만을 대상으로 한다. 현재 표 내부에 캐럿이 위치하지 않으면 에러가 발생한다.
|
||
|
||
**예제**
|
||
|
||
1. 표 생성
|
||
2. 셀 안으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 셀 간격이 2pt 로 변경된다.
|
||
|
||
```js
|
||
var tp = HwpCtrl.CreateSet("Table");
|
||
var cp = tp.CreateItemSet("Cell", "Cell");
|
||
tp.SetItem("CellSpacing", 200);
|
||
HwpCtrl.CellShape = tp;
|
||
```
|
||
|
||
#### 1.1.2 `CharShape`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CharShape
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 Selection 된 글자의 글자 모양을 나타낸다.
|
||
|
||
**반환값**
|
||
|
||
블록된 구역 혹은, 현재 캐럿이 위치한 곳의 글자 모양을 ParameterSet 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
property get 을 수행하면 현재 selection 내의 글자 모양을 구할 수 있고, selection 이 존재하지 않으면 현재 캐럿이 위치한 곳의 글자 모양을 돌려준다.
|
||
|
||
글자 모양 중 특정 항목이 Selection 내에서 서로 다른 속성을 가지고 있으면 아예 아이템 자체가 존재하지 않는다. property set 을 수행하면 아이템이 존재하는 항목에 대해서만 속성을 설정한다.
|
||
|
||
ParameterSet 형식은 별도로 전달된 ParameterSet Table 문서 참고
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 입력한 글자 Selection
|
||
3. 예제 스크립트 실행 결과 : Selection 된 글자들의 글자 크기를 20pt 로 설정한다.
|
||
|
||
```js
|
||
var cs = HwpCtrl.CharShape;
|
||
if (cs.ItemExist("Height")) {
|
||
cs.SetItem("Height", 2000);
|
||
HwpCtrl.CharShape = cs;
|
||
}
|
||
```
|
||
|
||
#### 1.1.3 `CurFieldState`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CurFieldState
|
||
```
|
||
|
||
**설명**
|
||
|
||
캐럿이 위치한 필드의 상태 정보를 구한다. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 필드 상태에 따라 Number 타입의 값을 리턴한다. Remark 참고
|
||
|
||
**비고**
|
||
|
||
다음과 같은 의미를 가진다.
|
||
|
||
- bit 4: 필드명 존재 여부 (`1` 있음, `0` 없음)
|
||
- bit 0–3: 필드 종류 (`0` 없음, `1` 셀, `2` 누름틀, `4` 글상자)
|
||
|
||
필드명 존재 여부와 필드 종류에 따라 0–20까지의 값을 갖는다.
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 삽입 (다른 필드 삽입 가능)
|
||
2. 누름틀 안으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 현재 선택된 필드 : 누름틀 메시지 창
|
||
|
||
```js
|
||
var fieldState = HwpCtrl.CurFieldState;
|
||
var msg ="";
|
||
switch (fieldState) {
|
||
case 0: msg ="필드 없음";
|
||
break;
|
||
case 1: msg ="셀";
|
||
break;
|
||
case 2: msg ="누름틀";
|
||
break;
|
||
case 4: msg ="글상자";
|
||
break;
|
||
}
|
||
alert("현재 선택된 필드 :"+ msg);
|
||
```
|
||
|
||
#### 1.1.4 `CurSelectedCtrl`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CurSelectedCtrl
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 선택된 컨트롤. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 선택된 컨트롤을 CtrlCode 객체 타입으로 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 표 삽입
|
||
2. 표 선택
|
||
3. 예제 스크립트 실행
|
||
결과 : 표가 삭제된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.CurSelectedCtrl;
|
||
if( ctrl && ctrl.CtrlID =="tbl") {
|
||
HwpCtrl.DeleteCtrl(ctrl);
|
||
}
|
||
```
|
||
|
||
#### 1.1.5 `EditMode`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.EditMode
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 편집 모드
|
||
|
||
**반환값**
|
||
|
||
현재 편집 모드를 Number 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
현재 편집 모드를 나타낸다.
|
||
|
||
- 0 : 읽기 전용
|
||
|
||
- 1 : 일반 편집모드
|
||
|
||
- 2 : 양식 모드. 양식 사용자 모드 : Cell 과 누름틀 중 양식 모드에서 편집 가능 속성을 가진 것만 편집 가능하다.
|
||
|
||
- 16 : 배포용 문서 `SetEditMode`로 지정 불가능
|
||
|
||
**예제**
|
||
|
||
1. EditMode 0(읽기 모드)으로 변경
|
||
2. 편집시도
|
||
3. EditMode 1(일반 편집 모드)으로 변경
|
||
4. 편집시도
|
||
|
||
```js
|
||
HwpCtrl.EditMode = 0;
|
||
//편집 시도
|
||
HwpCtrl.EditMode = 1;
|
||
//편집 시도
|
||
```
|
||
|
||
#### 1.1.6 `HeadCtrl`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.HeadCtrl
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 중 첫 번째 컨트롤. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
문서 중 첫 번째 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, 그 list의 시작 컨트롤을 나타낸다. 이 컨트롤로부터 시작, Ctrl.Next 를 이용해 forward iteration 을 수행할 수 있 다.
|
||
|
||
**예제**
|
||
|
||
1. 표 입력
|
||
2. 예제 스크립트 실행 결과 : 문서 중 모든 표가 삭제된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.HeadCtrl;
|
||
while(ctrl != null) {
|
||
if(ctrl.CtrlID =="tbl") {
|
||
HwpCtrl.DeleteCtrl(ctrl);
|
||
}
|
||
ctrl = ctrl.Next
|
||
}
|
||
```
|
||
|
||
#### 1.1.7 `IsModified`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.IsModified
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 문서가 변경되었는지 나타낸다. 이 구문은 읽기 전용입니다.
|
||
|
||
**반환값**
|
||
|
||
변경내용 여부를 Boolean 타입으로 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 새 문서 상태에서 예제 실행 후 alert 창 확인
|
||
2. 편집 시도 후 예제 다시 실행 결과 : 문서가 변경되어 true 를 반환한다.
|
||
|
||
```js
|
||
alert(HwpCtrl.IsModified)
|
||
```
|
||
|
||
#### 1.1.8 `IsPrivateInfoProtected`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.IsPrivateInfoProtected
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 문서에 개인정보보호 필드가 있는지 확인한다.
|
||
|
||
**반환값**
|
||
|
||
현재 문서의 개인정보보호 필드 여부를 Boolean 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
개인정보보호 필드가 있는 문서를 열어서 예제코드 실행해야 합니다.
|
||
|
||
**예제**
|
||
|
||
1. 개인정보보호 필드가 있는 문서를 연다.
|
||
2. 예제 스크립트 실행 결과 : 문서가 개인정보 필드를 가지고 있으면 true 를 반환한다.
|
||
|
||
```js
|
||
alert(HwpCtrl.IsPrivateInfoProtected);
|
||
```
|
||
|
||
#### 1.1.9 `LastCtrl`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.LastCtrl
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 중 마지막 컨트롤. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
문서 중 마지막 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, 그 list의 마지막 컨트롤을 나타낸다. 이 컨트롤로부터 시작, Ctrl.Prev 를 이용해 backward iteration 을 수행할 수 있다.
|
||
|
||
**예제**
|
||
|
||
1. 표 입력
|
||
2. 예제 스크립트 실행 결과 : 문서 중 모든 표의 셀 간격을 1pt 로 설정한다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.LastCtrl;
|
||
var tbset = HwpCtrl.CreateSet("Table");
|
||
tbset.SetItem("CellSpacing", 100);
|
||
while(ctrl != null) {
|
||
if(ctrl.CtrlID =="tbl") {
|
||
ctrl.Properties = tbset;
|
||
}
|
||
ctrl = ctrl.Prev;
|
||
}
|
||
```
|
||
|
||
#### 1.1.10 `PageCount`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.PageCount
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서의 전체 페이지 수를 나타냅니다. 이 구문은 읽기 전용입니다.
|
||
|
||
**반환값**
|
||
|
||
문서의 페이지 수를 Number 타입으로 반환합니다.
|
||
|
||
**비고**
|
||
|
||
문서 전체에 대한 pagination 이 수행되지 않은 상태에서 이 property 를 참조하면 먼저 문서 전체의 pagination 을 먼저 수행하므로 긴 문서에 대해 문서 내용 변경과 참조를 반복하면 속도가 심각하게 느려질 수 있습니다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 쪽 분할
|
||
2. 예제 스크립트 실행 결과: 전체 페이지 수 메시지 창
|
||
|
||
```js
|
||
alert(HwpCtrl.PageCount);
|
||
```
|
||
|
||
#### 1.1.11 `ParaShape`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ParaShape
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 Selection 의 문단 모양을 나타낸다.
|
||
|
||
**반환값**
|
||
|
||
블록된 구역 혹은, 현재 캐럿이 위치한 곳의 문단 모양을 ParameterSet 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
property get 을 수행하면 현재 selection 내의 문단 모양을 구할 수 있다. selection 이 존재하지 않으면 현재 캐럿이 위치한 곳의 문단 모양을 돌려준다. 문단 모양 중 특정 항목이 selection 내에서 서로 다른 속성을 가지고 있으면 아예 아이템 자체가 존재하지 않는다. property set 을 수행하면 아이템이 존재하는 항목에 대해서만 속성을 설정한다..
|
||
|
||
ParameterSet 형식은 별도로 전달된 ParameterSet Table 문서 참고
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 입력한 글자 Selection
|
||
3. 예제 스크립트 실행 결과 : 현재 문단의 왼쪽 여백을 50pt 로 설정한다.
|
||
|
||
```js
|
||
var paraShape = HwpCtrl.ParaShape;
|
||
paraShape.SetItem("LeftMargin", 10000);
|
||
HwpCtrl.ParaShape = paraShape;
|
||
```
|
||
|
||
#### 1.1.12 `ParentCtrl`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ParentCtrl
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿의 상위 컨트롤. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 캐럿의 상위 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
상위 컨트롤은 현재 캐럿이 위치한 리스트를 보유한 컨트롤이다. 예를 들어 셀 내부에 위치하면 표, 각 주 내용에 위치하면 각주, 바탕쪽이면 구역 컨트롤이 상위 컨트롤이다.현재 캐럿이 본문 레벨에 위치해 상위 컨트롤이 없을 때는 null 이 리턴된다.
|
||
|
||
**예제**
|
||
|
||
1. 표 입력
|
||
2. 셀로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 현재 캐럿의 위치가 셀이라면 부모 표의 셀 간격을 1pt 로 설정한다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.ParentCtrl;
|
||
if (ctrl.CtrlID =="tbl") {
|
||
var tbset = HwpCtrl.CreateSet("Table");
|
||
tbset.SetItem("CellSpacing", 100);
|
||
ctrl.Properties = tbset;
|
||
}
|
||
```
|
||
|
||
#### 1.1.13 `ReadOnlyMode`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ReadOnlyMode
|
||
```
|
||
|
||
**설명**
|
||
|
||
편집모드를 읽기 전용 모드로 설정하는 기능
|
||
|
||
**반환값**
|
||
|
||
현재 읽기 전용모드를 Boolean 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
property get 을 수행하면 현재 문서가 읽기 전용 모드 여부를 return 한다. return 값이 false 이면 편집 모드, true 이면 읽기 전용모드이다. property set 을 수행하면 현재 문서의 읽기 전용모드 속성을 설정한다.
|
||
|
||
**예제**
|
||
|
||
1. ReadOnlyMode true( 읽기모드로 변경
|
||
2. 편집시도
|
||
3. ReadOnlyMode false( 편집 모드로 변경
|
||
4. 편집시도 결과 : 편집모드와 읽기 전용 모드를 설정한다.
|
||
|
||
```js
|
||
HwpCtrl.ReadOnlyMode = true;
|
||
//읽기모드 //편집 시도
|
||
HwpCtrl.ReadOnlyMode = false;
|
||
//편집모드 //편집 시도
|
||
```
|
||
|
||
#### 1.1.14 `ScrollPosInfo`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ScrollPosInfo
|
||
```
|
||
|
||
**설명**
|
||
|
||
스크롤바의 위치 정보를 얻어오는 기능
|
||
|
||
**반환값**
|
||
|
||
현재 스크롤의 위치 정보를 얻어옵니다. ScrollPosInfo 의 ParameterSet 버전.
|
||
|
||
**비고**
|
||
|
||
현재 스크롤바수직, 수평의 위치정보를 ScrollPosInfo ParameterSet 으로 얻어오거나 설정한다.
|
||
|
||
| 값 | 설명 |
|
||
| --- | --- |
|
||
| HorzPos | 수평 스크롤바 위치 |
|
||
| HorzLimitPos | 수평 스크롤바 한계 위치 값 (읽기 전용) |
|
||
| VertPos | 수직 스크롤바 위치 |
|
||
| VertLimitPos | 수직 스크롤바 한계 위치 값 (읽기 전용) |
|
||
|
||
**예제**
|
||
|
||
1. 스크롤을 원하는 위치로 이동시킨다.
|
||
2. 예제 스크립트 실행 결과: 선택된 값 메시지 창
|
||
|
||
```js
|
||
var pset = HwpCtrl.ScrollPosInfo;
|
||
var hp = pset.Item("HorzPos");
|
||
var vp = pset.Item("VertPos");
|
||
var hlp= pset.Item("HorzLimitPos");
|
||
var vlp = pset.Item("VertLimitPos");
|
||
alert("HorzPos:"+ hp +"HorzLimitPos:"+ hlp +"VertPos:"+ vp +"VertLimitPos:"+ vlp);
|
||
```
|
||
|
||
#### 1.1.15 `SelectionMode`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SelectionMode
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서의 내용이 어떤 selection 상태인가를 알려줍니다. 이 구문은 읽기 전용입니다.
|
||
|
||
**반환값**
|
||
|
||
현재 selection 상태를 Number 타입으로 반환합니다.
|
||
|
||
**비고**
|
||
|
||
일반 블록이 아닌 F3키에 의해 블록이 지정된 경우,HWPSEL_STRICT_MODE `0x10`(십진수 16) 으로 OR 마스크되어 오기 때문에, 항상 `0x0F`(십진수 15) 로 AND 마스크한 결과로 판단하도록 합니다.
|
||
|
||
| 값 | 설명 |
|
||
| --- | --- |
|
||
| 0 | 블록지정이 되지 않은 상태 |
|
||
| 1 | 일반 블록이거나 F3키에 의한 블록 상태 |
|
||
| 3 | 테이블 셀 블록 상태 |
|
||
| 4 | 그리기 개체나 표, 그림 등 ShapeObject 에 해당하는 컨트롤이 선택된 상태 |
|
||
|
||
**예제**
|
||
|
||
1. 표 와 텍스트 삽입
|
||
2. 텍스트 일반 블록으로 선택
|
||
3. 예제 스크립트 실행 결과: 선택된 값 메시지 창
|
||
|
||
```js
|
||
var HWPSEL_NONE = 0;
|
||
var HWPSEL_NORMAL = 1;
|
||
var HWPSEL_TABLE = 3;
|
||
var HWPSEL_CTRL = 4;
|
||
var HWPSEL_MODE_MASK = 15;
|
||
var HWPSEL_STRICT_MODE = 16;
|
||
mode = HwpCtrl.SelectionMode & HWPSEL_MODE_MASK;
|
||
if(mode == HWPSEL_NONE) {
|
||
//블록지정이 되지 않은 경우
|
||
alert("No Selection ...");
|
||
}
|
||
else if(mode == HWPSEL_NORMAL) {
|
||
//일반 블록이거나 F3키에 의한 블록인 경우 (TEXT)
|
||
alert("Normal Selection ...");
|
||
}
|
||
else if(mode == HWPSEL_TABLE) {
|
||
//테이블 셀 블록 상태
|
||
alert("Table Selection ...");
|
||
}
|
||
else if(mode == HWPSEL_CTRL) {
|
||
//그리기 개체나 표, 그림 등 ShapeObject 컨트롤이 선택된 상태
|
||
alert("Ctrl Selection ...");
|
||
}
|
||
```
|
||
|
||
#### 1.1.16 `ViewProperties`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ViewProperties
|
||
```
|
||
|
||
**설명**
|
||
|
||
View 의 상태정보를 얻어오는 기능
|
||
|
||
**반환값**
|
||
|
||
뷰의 상태정보를 ViewProperties ParameterSet 으로 얻어오거나 설정한다.
|
||
|
||
**비고**
|
||
|
||
조판 부호, 화면 확대 비율과 같은 view 에 관련된 정보를 나타낸다.
|
||
|
||
**예제**
|
||
|
||
1. 문서의 배율을 75% 로 설정
|
||
2. 예제스크립트 실행
|
||
|
||
```js
|
||
var pset = HwpCtrl.ViewProperties;
|
||
alert(pset.Item("ZoomRatio"));
|
||
```
|
||
|
||
### 1.2 Methods
|
||
|
||
#### 1.2.1 `Clear`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.Clear(option)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 편집중인 문서의 내용을 닫고 빈문서 편집 상태로 돌아간다.
|
||
|
||
**파라미터**
|
||
|
||
- `option`: 편집중인 문서의 내용에 대한 처리 방법. 생략하면 hwpAskSave 가 선택된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| hwpDiscard | 1 | 문서 내용을 버린다. |
|
||
|
||
**비고**
|
||
|
||
현재는 옵션 1에 한해서만 사용할 수 있다.
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 예제 스크립트 실행 결과 : 빈문서 편집 상태로 되돌린다.
|
||
|
||
```js
|
||
HwpCtrl.Clear(1);
|
||
```
|
||
|
||
#### 1.2.2 `CreateAction`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CreateAction(ActionID)
|
||
```
|
||
|
||
**설명**
|
||
|
||
Action 객체를 생성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `actionID`: 액션 ID
|
||
|
||
**반환값**
|
||
|
||
성공 시 Action 객체를 리턴한다. 존재하지 않는 액션 ID를 입력하면 null 을 리턴한다.
|
||
|
||
**비고**
|
||
|
||
액션에 대한 세부적인 제어가 필요할 때 사용한다. 예를 들어 기능을 수행하지 않고 대화상자만을 띄운다든지, 대화상자 없이 지정한 옵션에 따라 기능을 수행하는 등에 사용할 수 있다. Action ID Table 은 별도 문서 참조
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 입력한 글자 Selection
|
||
3. 예제 스크립트 실행 결과 : Selection 된 글자들에 Bold 속성을 부여한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("CharShapeBold");
|
||
act.Run();
|
||
```
|
||
|
||
#### 1.2.3 `CreateField`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CreateField(direction, memo, name)
|
||
```
|
||
|
||
**설명**
|
||
|
||
캐럿의 현재 위치에 누름틀을 생성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `direction`: 입력이 안된 상태에서 보여지는 안내문/지시문
|
||
- `memo`: 누름틀에 대한 설명/도움말
|
||
|
||
- `name`: :누름틀 필드에 대한 필드 이름
|
||
|
||
**반환값**
|
||
|
||
성공이면 true, 실패면 false
|
||
|
||
**비고**
|
||
|
||
memo Parameter 는 ActiveX 한/글 컨트롤과 호환용으로 사용되는 Parameter 이다. 웹한글에서는 내용을 확인할 수 없으나 누름틀 저장 후 데스크탑 한/글에서 메모 내용을 확인할 수 있다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 현재 위치에 본문 필드가 생성된다.
|
||
|
||
```js
|
||
HwpCtrl.CreateField("본문을 입력하세요", "", "본문");
|
||
```
|
||
|
||
#### 1.2.4 `CreatePageImage`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CreatePageImage(fileName, pgno, format)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 페이지의 이미지를 파일로 생성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `fileName`: 생성할 이미지 파일의 이름
|
||
- `pgno`: 페이지 번호. 0부터 PageCount-1까지. 생략하면 0이 사용된다
|
||
- `format`: :이미지 파일의 포맷. jpg, jpeg, png% 중의 하나. 생략하면 png% 가 사용된다
|
||
|
||
**반환값**
|
||
|
||
성공이면 true, 실패면 false
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성 또는 문서 불러오기
|
||
2. 예제 스크립트 실행 결과 : 첫 번째 페이지를 이미지로 다운로드한다.
|
||
|
||
```js
|
||
HwpCtrl.CreatePageImage("pageimage.png", 0, "png");
|
||
```
|
||
|
||
#### 1.2.5 `CreatePageImageEx`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CreatePageImageEx(fileName, pgno, resolution, depth, format, option, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 페이지의 이미지를 파일로 생성합니다.
|
||
|
||
**파라미터**
|
||
|
||
- `fileName`: 생성할 이미지 파일의 이름
|
||
|
||
- `pgno`: 페이지 번호. 0부터 PageCount-1까지. 생략하면 0이 사용됨
|
||
- `resolution`: 이미지 해상도. DPI 단위96, 300, 1200 등로 지정됨. 생략하면 96이 사용됨
|
||
- `depth`: 이미지 파일의 color depth1, 4, 8, 24) 를 지정함
|
||
- `format`: 이미지 파일의 포맷. jpg, jpeg, png2 중의 하나. 생략하면 png2 가 사용됨
|
||
- `option`: download:true 를 넣으면 문서가 로컬에 다운로드 됨
|
||
- `callback`: CreatePageImageEx 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- result( 성공 실패 여부, path( 저장경로, fileName, Size, CallbackUserData 를 포함한
|
||
|
||
- Object 를 인자로 받음
|
||
- `callbackUserData`: Callback 함수에 Argument 로 넘겨 받을 result 에 포함될 UserData, 생략 가능
|
||
|
||
**반환값**
|
||
|
||
성공하면 true 를 반환하고 실패하면 false 를 반환합니다.여기서 성공/실패는 필요한 인자가 제대로 들어 있고, 비동기 로직을 제외한 부분이 제대로 동작하였는지를 판별합니다.비동기 액션이므로 return 값이 true 이더라도 네트워크등의 문제로 실패 할 수 있습니다.정확한 성공/실패 여부는 callback 함수의 인자 로 들어오는 object 의 result 속성을 통해서 판별할 수 있습니다.
|
||
|
||
**예제**
|
||
|
||
1. 임의의 문서 작성
|
||
2. 예제 스크립트 실행 결과: 지정한 페이지를 이미지로 다운로드합니다.
|
||
|
||
```js
|
||
HwpCtrl.CreatePageImageEx("pageimage.png", 0, 96, 24, "png", "download:true", function(result) {
|
||
console.log("다운로드 완료");
|
||
}
|
||
```
|
||
|
||
);
|
||
|
||
#### 1.2.6 `CreateSet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.CreateSet(setid)
|
||
```
|
||
|
||
**설명**
|
||
|
||
ParameterSet 객체를 생성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `setid`: 생성할 ParameterSet 객체의 ID
|
||
|
||
**반환값**
|
||
|
||
생성된 ParameterSet 객체를 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 표 생성
|
||
2. 셀 안으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 셀 간격이 2pt 로 변경된다.
|
||
|
||
```js
|
||
var tp = HwpCtrl.CreateSet("Table");
|
||
var cp = tp.CreateItemSet("Cell", "Cell");
|
||
tp.SetItem("CellSpacing", 200);
|
||
HwpCtrl.CellShape = tp;
|
||
```
|
||
|
||
#### 1.2.7 `DeleteCtrl`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.DeleteCtrl(ctrl)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 내 컨트롤을 삭제한다.
|
||
|
||
**파라미터**
|
||
|
||
- `ctrl`: 삭제할 문서 내 컨트롤CtrlCode 객체)
|
||
|
||
**반환값**
|
||
|
||
성공이면 true, 실패면 false
|
||
|
||
**예제**
|
||
|
||
1. 표 삽입
|
||
2. 표 선택
|
||
3. 예제 스크립트 실행 결과 : 표가 삭제된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.CurSelectedCtrl;
|
||
if( ctrl && ctrl.CtrlID =="tbl") {
|
||
HwpCtrl.DeleteCtrl(ctrl);
|
||
}
|
||
```
|
||
|
||
#### 1.2.8 `FieldExist`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.FieldExist(field)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 중에 지정한 데이터 필드가 존재하는지 검사한다.
|
||
|
||
**파라미터**
|
||
|
||
- `field`: 필드 이름
|
||
|
||
**반환값**
|
||
|
||
성공이면 true, 실패면 false
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 생성
|
||
2. 필드이름 이름으로 지정
|
||
3. 예제 스크립트 실행 결과 : 문서 내에 이름 필드가 있다면 해당 필드의 정렬을 가운데 정렬로 변경하고, 홍길동이라고 텍스트를 입력한다.
|
||
|
||
```js
|
||
if(HwpCtrl.FieldExist("이름")) {
|
||
HwpCtrl.MoveToField("이름", true, true, true);
|
||
HwpCtrl.Run("ParagraphShapeAlignCenter");
|
||
HwpCtrl.PutFieldText("이름", "홍길동");
|
||
}
|
||
```
|
||
|
||
#### 1.2.9 `FoldRibbon`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.FoldRibbon(fold)
|
||
```
|
||
|
||
**설명**
|
||
|
||
리본 메뉴를 화면에 접기/펼치기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `fold`: 리본 메뉴 접기/펼치기 여부
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : Ribbon 메뉴가 접혀진다.
|
||
|
||
```js
|
||
HwpCtrl.FoldRibbon(true);
|
||
```
|
||
|
||
#### 1.2.10 `GetCurFieldName`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetCurFieldName(option)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿 위치의 데이터 필드 이름을 구한다.
|
||
|
||
**파라미터**
|
||
|
||
- `option`: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| hwpFieldCell | 1 | 셀에 부여된 필드 리스트만을 구한다. hwpFieldClickHere 와는 함께 지정할 수 없다. |
|
||
| hwpFieldClickHer e | 2 | 누름틀에 부여된 필드 리스트만을 구한다. hwpFieldCell 과는 함께 지정할 수 없다. |
|
||
|
||
**반환값**
|
||
|
||
필드 이름을 문자열로 리턴한다. 필드 이름이 없는 경우 빈 문자열이 돌아온다.
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 생성
|
||
2. 필드이름 이름으로 지정
|
||
3. 생성한 누름틀로 캐럿 이동
|
||
4. 예제 스크립트 실행 결과 : 현재 필드의 이름이 이름이라면 홍길동을 입력한다.
|
||
|
||
```js
|
||
if(HwpCtrl.GetCurFieldName(0) =="이름") {
|
||
HwpCtrl.PutFieldText("이름", "홍길동");
|
||
}
|
||
```
|
||
|
||
#### 1.2.11 `GetFieldList`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetFieldList(number, option)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 중의 필드 리스트를 구한다.
|
||
|
||
**파라미터**
|
||
|
||
- `number`: 문서 중에서 동일한 이름의 필드가 여러 개 존재할 때 이를 구별하기 위한 식별 방법을 지정한다.생략하면 hwpFieldPlain 이 지정된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| hwpFieldPlain | 0 | 아무 기호 없이 순서대로 필드 이름이 나열된다. |
|
||
| hwpFieldNumber | 1 | 필드 이름 뒤에 일련번호가 {{#}} 와 같은 형식으로 붙는다. |
|
||
| hwpFieldCount | 2 | 필드 이름뒤에 그 이름의 필드가 몇 개 있는지 {{#}} 와 같은 형식으로 붙는다. |
|
||
|
||
- `option`: 다음과 같은 옵션을 조합할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| hwpFieldCell | 1 | 셀에 부여된 필드 리스트만을 구한다. hwpFieldClickHere 와 는 함께 지정할 수 없다. |
|
||
| hwpFieldClickHere | 2 | 누름틀에 부여된 필드 리스트만을 구한다. hwpFieldCell 과는 함께 지정할 수 없다. |
|
||
| hwpFieldSelection | 4 | 셀렉션 내에 존재하는 필드 리스트를 구한다. |
|
||
|
||
**반환값**
|
||
|
||
각 필드 사이를 문자코드 0x02 로 구분하여 다음과 같은 형식으로 리턴 한다. 가장 마지막 필드에는 0x02 가 붙지 않는다.) 필드이름#1필드이름#2... 필드이름#n2
|
||
|
||
**비고**
|
||
|
||
문서 중에 동일한 이름의 필드가 여러 개 존재할 때는 number 에 지정한 타입에 따라 3 가지의 서로
|
||
|
||
다른 방식을 중에서 선택할 수 있다. 예를 들어 문서 중 title, body, title, body, footer 순으로 5 개의 필드가 존재할 때, hwpFieldPlain, hwpFieldNumber, HwpFieldCount 세 가지 형식에 따라 다음과 같은 내용이 돌아 온다.
|
||
|
||
| ID | 예제 |
|
||
| --- | --- |
|
||
| hwpFieldPlain | "title\x02body\x02title\x02body\x02footer" |
|
||
| hwpFieldNumber | "title{{0}}\x02body{{0}}\x02title{{1}}\x02body{{1}}\x02footer{{0}}" |
|
||
| hwpFieldCount | "title{{2}}\x02body{{2}}\x02footer{{1}}" |
|
||
|
||
**예제**
|
||
|
||
1. 필드 입력
|
||
2. 예제 스크립트 실행 결과 : 성공 메시지 창
|
||
|
||
```js
|
||
alert(HwpCtrl.GetFieldList(0));
|
||
```
|
||
|
||
#### 1.2.12 `GetFieldText`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetFieldText(fieldlist)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 필드에서 문자열을 구합니다.
|
||
|
||
**파라미터**
|
||
|
||
- `fieldlist`: 텍스트를 구할 필드 이름의 리스트
|
||
|
||
**반환값**
|
||
|
||
텍스트 데이터가 돌아옵니다. 텍스트에서 탭은 \t0x9, 문단 바뀜은 CR/LF0x0D/0x0A) 로 표현되며, 이외의 특수 코드는 포함되지 않습니다. 필드 텍스트의 끝은 0x02 로 표현되며, 그 이후 다음 필드의 텍스트가 연속해서 지정한 필드 리스트의 개수만큼 위치합니다. 지정한 이름의 필드가 없거나 사용자가 해당 필드에 아무 텍스트도 입력하지 않았으면 해당 텍스트에는 빈 문자열이 돌아옵니다.
|
||
|
||
**비고**
|
||
|
||
다음과 같이 필드 사이를 문자 코드 0x02 로 구분하여 한 번에 여러 개의 필드를 지정할 수 있다.필드 이름#1\x02 필드이름#2\x02... 필드이름#n2 지정한 필드 이름이 문서 중에 두 개 이상 존재할 때의 표현 방식은 다음과 같다.
|
||
|
||
| 필드이름 | 필드이름{{n}} |
|
||
| --- | --- |
|
||
| 이름의 필드 중 첫 번째 | 지정한 이름의 필드 중 n 번째 |
|
||
|
||
예를 들어, 제목1\x02 본문\x02 이름02 과 같이 지정하면 제목이라는 이름의 필드 중 두 번째, 본문이라는 이름의 필드 중 첫 번째, 이름이라는 이름의 필드
|
||
|
||
중 첫 번째를 각각 지정한다. 즉, 필드이름과 필드이름0 은 동일한 의미로 해석된다.
|
||
|
||
**예제**
|
||
|
||
1. 본문 이라는 필드 생성
|
||
2. Text 삽입
|
||
3. 예제 스크립트 실행 결과: 본문 이라는 이름의 필드 중 첫 번째 필드의 Text 를 얻어옵니다.
|
||
|
||
```js
|
||
alert(HwpCtrl.GetFieldText(' 본문 {
|
||
{
|
||
0
|
||
}
|
||
}
|
||
'));
|
||
```
|
||
|
||
#### 1.2.13 `GetHeadingString`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetHeadingString()
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿이 위치한 문단의 문단번호/글머리표를 얻어냅니다.
|
||
|
||
**반환값**
|
||
|
||
문단번호 또는 글머리표를 String 타입으로 반환합니다.문단번호나 글머리표가 없다면 빈문자열을 반환 합니다.
|
||
|
||
**예제**
|
||
|
||
1. 문단번호/글머리표 작성
|
||
2. 예제 스크립트 실행 결과: 문단번호 또는 글머리표 메시지 창
|
||
|
||
```js
|
||
alert("문단번호/글머리표 :"+ HwpCtrl.GetHeadingString());
|
||
```
|
||
|
||
#### 1.2.14 `GetMetaTag`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetMetaTag(name)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 내 메타태그 정보를 가져옵니다.
|
||
|
||
**파라미터**
|
||
|
||
- `name`: 찾을 메타태그의 이름
|
||
|
||
**반환값**
|
||
|
||
메타태그를 찾았을 때 해당 메타태그 정보를 Object 타입으로 반환합니다. Object 의 Property 는 다음 과 같습니다. name : 메타태그의 이름 value : 메타태그의 값 format : 메타태그의 데이터 유형 메타태그가 없으면 null 을 반환합니다.
|
||
|
||
**비고**
|
||
|
||
hwpx 에서만 사용가능합니다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과: 메타태그의 정보 메시지 창
|
||
|
||
```js
|
||
var tag;
|
||
HwpCtrl.SetMetaTag("office", "text", "한글과컴퓨터");
|
||
HwpCtrl.GetTextFile("HWPX", "", function (result) {
|
||
data = result;
|
||
HwpCtrl.Clear(1);
|
||
HwpCtrl.SetTextFile(data, "HWPX", "", function (result) {
|
||
tag = HwpCtrl.GetMetaTag("office");
|
||
alert('name : '+ tag.NAME + '\n' + 'value : ' + tag.VALUE);
|
||
}
|
||
, null);
|
||
}
|
||
);
|
||
```
|
||
|
||
#### 1.2.15 `GetMetaTagAll`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetMetaTagAll()
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 내 모든 메타태그 정보를 가져옵니다.
|
||
|
||
**파라미터**
|
||
|
||
- `fieldlist`: 텍스트를 구할 필드 이름의 리스트
|
||
|
||
**반환값**
|
||
|
||
메타태그를 찾았을 때 해당 메타태그 정보를 Object 타입으로 반환합니다. Object 의 Property 는 다음 과 같습니다. name : 메타태그의 이름 value : 메타태그의 값 format : 메타태그의 데이터 유형 메타태그가 없으면 null 을 반환합니다.
|
||
|
||
**비고**
|
||
|
||
hwpx 에서만 사용가능합니다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과: 메타태그의 정보 메시지 창
|
||
|
||
```js
|
||
var tag;
|
||
HwpCtrl.SetMetaTag("office", "text", "한글과컴퓨터");
|
||
HwpCtrl.SetMetaTag("developer", "num", "123456");
|
||
HwpCtrl.GetTextFile("HWPX", "", function (result) {
|
||
data = result;
|
||
HwpCtrl.Clear(1);
|
||
HwpCtrl.SetTextFile(data, "HWPX", "", function (result) {
|
||
tag = HwpCtrl.GetMetaTagAll();
|
||
alert('metaTag : ' + JSON.stringify(tag));
|
||
}
|
||
, null);
|
||
}
|
||
);
|
||
```
|
||
|
||
#### 1.2.16 `GetPageText`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetPageText(pageNo, option)
|
||
```
|
||
|
||
**설명**
|
||
|
||
특정 페이지의 텍스트를 얻는다.
|
||
|
||
**파라미터**
|
||
|
||
- `pageNo`: 텍스트를 얻을 페이지 Number
|
||
- `option`: 다음과 같은 옵션을 지정할 수 있다. 생략하면 모든 컨트롤에 대해 텍스트를 얻는다. 본문 텍스트는 옵션에 관계없이 얻는다
|
||
|
||
| option | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| 표 | 1 | 표 내부 텍스트만 얻는다. |
|
||
| 글상자 | 2 | 글상자 내부 텍스트만 얻는다. |
|
||
| 캡션 | 4 | 캡션 내부 텍스트만 얻는다. |
|
||
|
||
**반환값**
|
||
|
||
결과 값을 문자열로 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 표 입력
|
||
2. 표안에 텍스트 입력
|
||
3. 예제 스크립트 실행 결과 : 첫 번째 Page 의 표 내부의 Text 가 나타난다.
|
||
|
||
```js
|
||
alert(HwpCtrl.GetPageText(0, 1));
|
||
```
|
||
|
||
#### 1.2.17 `GetPos`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetPos()
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿의 위치 정보를 얻어온다.
|
||
|
||
**반환값**
|
||
|
||
캐럿 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다. list : 캐럿이 위치한 문서 내 리스트 아이디. para : 캐럿이 위치한 문단 아이디. pos : 캐럿이 위치한 문단 내 글자 단위 위치.
|
||
|
||
**비고**
|
||
|
||
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 캐럿 이동
|
||
3. GetPos API 로 현재 Pos 정보 저장
|
||
4. 다른 위치로 캐럿 이동
|
||
5. 3단계에서 저장한 위치로 캐럿 이동 결과 : 캐럿 위치를 저장하고, 다시 이동한다.
|
||
|
||
```js
|
||
posObj = HwpCtrl.GetPos();
|
||
//GetPos API 로 현재 Pos 정보 저장 //... 다른 위치로 캐럿 이동
|
||
HwpCtrl.SetPos(posObj.list, posObj.para, posObj.pos);
|
||
//3단계에서 저장한 위치 로 캐럿 이동
|
||
```
|
||
|
||
#### 1.2.18 `GetPosBySet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetPosBySet()
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿의 위치 정보를 얻어옵니다. GetPos 의 ParameterSet 버전)
|
||
|
||
**반환값**
|
||
|
||
캐럿의 위치에 대한 ParameterSet 객체 타입으로 반환합니다.
|
||
|
||
**예제**
|
||
|
||
1. 임의의 문서 작성
|
||
2. 캐럿 이동
|
||
3. 예제 스크립트 실행 결과: 현재 캐럿이 위치한 정보 메시지 창
|
||
|
||
```js
|
||
var posSet = null;
|
||
posSet = HwpCtrl.GetPosBySet();
|
||
alert(posSet.Item("List") +""+ posSet.Item("Para") +""+ posSet.Item("Pos"));
|
||
```
|
||
|
||
#### 1.2.19 `GetSelectedPos`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetSelectedPos()
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 설정된 블록의 위치 정보를 얻어온다.
|
||
|
||
**반환값**
|
||
|
||
현재 설정된 블록의 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다. slist : 설정된 블록의 시작 리스트 아이디. spara : 설정된 블록의 시작 문단 아이디. spos : 설정된 블록의 문단 내 시작 글자 단위 위치. slist : 설정된 블록의 끝 리스트 아이디. spara : 설정된 블록의 끝 문단 아이디. spos : 설정된 블록의 문단 내 끝 글자 단위 위치.
|
||
|
||
**비고**
|
||
|
||
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다. 위의 리스트란, 문단과 컨트롤들이 연결된 한/글 문서 내 구조를 뜻한다. 리스트 아이디는 문서 내 위치 정보 중 하나로서 SelectText 에 넘겨줄 때 사용한다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 텍스트 블록
|
||
3. GetSelectedPos API 로 현재 블록 Pos 정보 저장
|
||
4. 블록 해제
|
||
5. 3단계에서 저장한 블록 다시 블록 결과 : 현재 설정된 블록의 위치를 저장하고, 이후에 다시 그 위치의 Text 를 블록한다.
|
||
|
||
```js
|
||
posObj = HwpCtrl.GetSelectedPos();
|
||
//GetSelectedPos API 로 현재 블록 Pos 정보 저장 //... 블록 해제
|
||
HwpCtrl.SelectText(posObj.spara, posObj.spos, posObj.epara, posObj.epos);
|
||
//3
|
||
```
|
||
|
||
단계에서 저장한 블록 다시 블록
|
||
|
||
#### 1.2.20 `GetSelectedPosBySet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetSelectedPosBySet(sset, eset)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 설정된 블록의 위치 정보를 얻어옵니다. GetSelectedPos 의 ParameterSet 버전)
|
||
|
||
**파라미터**
|
||
|
||
- `sset`: 설정된 블록의 시작 ParameterSet ListParaPos)
|
||
- `eset`: 설정된 블록의 끝 ParameterSet ListParaPos)
|
||
|
||
**반환값**
|
||
|
||
성공하면 true 를 반환하고 실패면 false 를 반환합니다.
|
||
|
||
**예제**
|
||
|
||
1. 임의의 문서 작성
|
||
2. 텍스트를 블록으로 선택
|
||
3. 예제 스크립트 실행 결과: 현재 블록의 시작과 끝 얻어냅니다.
|
||
|
||
```js
|
||
var sset = HwpCtrl.CreateSet('ListParaPos');
|
||
var eset = HwpCtrl.CreateSet('ListParaPos');
|
||
HwpCtrl.GetSelectedPosBySet(sset, eset);
|
||
alert(sset.Item('List') + ', ' +sset.Item('Para') + ', ' + sset.Item('Pos') + '\n' +eset.Item('List') + ', ' + eset.Item('Para') + ', ' + eset.Item('Pos'));
|
||
```
|
||
|
||
#### 1.2.21 `GetTableCellAddr`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetTableCellAddr(type)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 커서가 위치한 셀의 주소 정보를 얻어옵니다.
|
||
|
||
**파라미터**
|
||
|
||
- `type`: 얻어올 주소의 type
|
||
|
||
- 0 행
|
||
|
||
- 1 열
|
||
|
||
**반환값**
|
||
|
||
0n 까지의 행, 열을 얻어옵니다.커서가 셀에 있지 않거나, 실패하면 _1을 반환합니다.
|
||
|
||
**예제**
|
||
|
||
1. 표 삽입
|
||
2. 커서 이동
|
||
3. 예제 스크립트 실행
|
||
결과: 현재 커서가 위치한 셀의 주소 메시지 창
|
||
|
||
```js
|
||
var col = HwpCtrl.GetTableCellAddr(0);
|
||
var row = HwpCtrl.GetTableCellAddr(1);
|
||
alert("col :"+ col +", row :"+ row);
|
||
```
|
||
|
||
#### 1.2.22 `GetText`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetText()
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 중에서 텍스트를 얻는다.
|
||
|
||
**반환값**
|
||
|
||
Object 타입으로 리턴한다. Property 는 다음과 같다. text : 텍스트 데이터가 돌아온다. 텍스트에서 탭은 \t0x9, 문단 바뀜은 CR/LF0x0D/0x0A) 로 표 현되며, 이외의 특수 코드는 포함되지 않는다. result : 결과값을 Number 타입으로 리턴한다. 다음과 같은 결과값을 리턴한다.
|
||
|
||
- 0 텍스트 정보 없음.
|
||
|
||
- 1 리스트의 끝
|
||
|
||
- 2 일반 텍스트
|
||
|
||
- 3 다음 문단
|
||
|
||
- 4 제어 문자 내부로 들어 감.
|
||
|
||
- 5 제어 문자를 빠져 나옴.
|
||
|
||
- 101 초기화 안됨. InitScan() 실패 또는 InitScan() 을 실행하지 않은 경우)
|
||
|
||
- 102 텍스트 변환 실패
|
||
|
||
**비고**
|
||
|
||
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다. GetText) 의 사용 전 InitScan() 검색 준비를 하고, 끝나면 ReleaseScan) 을 반드시 호출하여 관련 정보를 초기화 해주어야 한다. 텍스트가 있는 문단으로 캐럿을 이동 시키려면 moveScanPos 를 주고 MovePos) 를 호출하면 된다.
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력
|
||
2. 텍스트의 맨 앞으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 Text 를 얻어낸다.
|
||
|
||
```js
|
||
HwpCtrl.InitScan(0, 2);
|
||
alert(HwpCtrl.GetText().text);
|
||
HwpCtrl.ReleaseScan();
|
||
```
|
||
|
||
#### 1.2.23 `GetTextBySet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetTextBySet(text)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 중에서 텍스트를 얻어옵니다.GetText 의 ParameterSet 버전)
|
||
|
||
**파라미터**
|
||
|
||
- `text`: Item 의 Text% 에 텍스트 데이터가 돌아옵니다. 텍스트에서 탭은 \t0x9, 문단 바뀜은 CR/LF0x0D/0x0A) 로 표현되며, 이외의 특수 코드는 포함되지 않습니다
|
||
|
||
**반환값**
|
||
|
||
- 0 텍스트 정보 없음
|
||
|
||
- 1 목록의 끝
|
||
|
||
- 2 일반 텍스트
|
||
|
||
- 3 다음 문단
|
||
|
||
- 4 제어 문자 내부로 들어감
|
||
|
||
- 5 제어 문자를 빠져 나옴
|
||
|
||
- 101 초기화 안 됨InitScan() 실패 또는 InitScan() 을 실행하지 않은 경우)
|
||
|
||
- 102 텍스트 변환 실패
|
||
|
||
**비고**
|
||
|
||
GetTextBySet) 의 사용이 끝나면 ReleaseScan) 을 반드시 호출하여 관련 정보를 초기화 해주어야 합니다. 텍스트가 있는 문단으로 캐럿을 이동 시키려면 moveScanPos 를 주고 MovePos) 를 호출하면 됩니다.
|
||
|
||
**예제**
|
||
|
||
1. 임의의 텍스트 입력
|
||
2. 캐럿 이동
|
||
3. 예제 스크립트 실행 결과: 현재 캐럿부터 줄 끝까지의 Text 를 가져옴
|
||
|
||
```js
|
||
HwpCtrl.InitScan(0, 2);
|
||
var textSet = HwpCtrl.CreateSet('GetText');
|
||
HwpCtrl.GetTextBySet(textSet);
|
||
alert(textSet.Item("Text"));
|
||
HwpCtrl.ReleaseScan();
|
||
```
|
||
|
||
#### 1.2.24 `GetTextFile`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.GetTextFile(format. option, callback)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 열린 문서를 문자열로 넘겨준다.
|
||
|
||
**파라미터**
|
||
|
||
- `format`: 파일의 형식
|
||
|
||
| format | 설명 | 비고 |
|
||
| --- | --- | --- |
|
||
| HWP | Hwp native format | BASE64 로 인코딩되어 있다. 저장된 내용 을 다른 곳에서 보여줄 필요가 없다면 이 포맷을 사용하기를 권장합니다 |
|
||
| HWPML2X | HWP 형식과 호환 | 문서의 모든 정보를 유지 |
|
||
| HTML | 인터넷 문서 HTML 형식 | 한글 고유의 서식은 손실된다. |
|
||
| TEXT | 유니코드 텍스트 | 서식정보가 없는 텍스트만 저장 |
|
||
| JSON | json format | 문서의 정보를 Json 형태로 만든다. 문서의 모든 정보를 유지 |
|
||
|
||
- option
|
||
|
||
| option | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| savebloc k | 선택된 블록만 저장 | 개체 선택 상태에서는 동작하지 않는다. |
|
||
|
||
- `callback`: 콜백함수
|
||
|
||
- result: 콜백 함수의 인자로 결과 값을 받는다. 서버를 통하여 Text 를 얻어내므로 반드시 이후 동작을 콜백함수에 넣어주어야 한다
|
||
|
||
**반환값**
|
||
|
||
결과 값을 문자열로 리턴한다.JSON 포맷에서만 리턴 값으로 받을 수 있다.)
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. GetTextFile API 현재 문서 데이터 저장
|
||
3. Clear API 로 현재 문서 초기화
|
||
4. SetTextFile API 로 저장한 문서 다시 로드 결과 : 현재 문서의 데이터를 문자열 형태로 저장하고, 다시 불러온다. callback 방식
|
||
|
||
```js
|
||
//GetTextFile API 현재 문서 데이터 저장
|
||
HwpCtrl.GetTextFile("HWP", "", function(result) {
|
||
data = result;
|
||
}
|
||
);
|
||
HwpCtrl.Clear(1);
|
||
//Clear API 로 현재 문서 초기화 //SetTextFile API 로 저장한 문서 다시 로드
|
||
HwpCtrl.SetTextFile(data, "HWP", "", function(result) {
|
||
//이후 수행 할 동작
|
||
}
|
||
, null);
|
||
```
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
// GetTextFile API 현재 문서 데이터 저장 data = await
|
||
HwpCtrl.GetTextFile("HWP", "");
|
||
// Clear API 로 현재 문서 초기화
|
||
HwpCtrl.Clear(1);
|
||
// SetTextFile API 로 저장한 문서 다시 로드 await
|
||
HwpCtrl.SetTextFile(data, "HWP", "");
|
||
```
|
||
|
||
#### 1.2.25 `InitScan`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.InitScan(option, rang, spara, spos, epara, epos)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 검색을 위한 준비 작업을 한다.
|
||
|
||
**파라미터**
|
||
|
||
- `option`: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| maskNorma l | 0x00 | 본문을 대상으로 검색한다. (서브리스트를 검색하지 않는다.) |
|
||
| maskChar | 0x01 | char 타입 컨트롤 마스크를 대상으로 한다. (강제줄나눔, 문단 끝, 하이픈, 묶움빈칸, 고정폭빈칸, 등...) |
|
||
| maskInline | 0x02 | inline 타입 컨트롤 마스크를 대상으로 한다. (누름틀 필드 끝, 등...) |
|
||
| maskCtrl | 0x04 | extende 타입 컨트롤 마스크를 대상으로 한다. (다단, 누름틀 필드 시작, Shape Object, 각주, 미주, 등...) |
|
||
|
||
- `range`: 검색의 범위를 다음과 같은 옵션을 조합하여 지정할 수 있다. 생략하면 문서 시작부터 문 서의 끝까지 검색 범위가 지정된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| scanSposCurrent | 0x0000 | 캐럿 위치부터. (시작 위치) |
|
||
| scanSposSpecified | 0x0010 | spara, spos 에 지정한 위치부터. (시작 위치) |
|
||
| scanSposLine | 0x0020 | 줄의 시작부터. (시작 위치) |
|
||
| scanSposParagraph | 0x0030 | 문단의 시작부터. (시작 위치) |
|
||
| scanSposSection | 0x0040 | 구역의 시작부터. (시작 위치) |
|
||
| scanSposList | 0x0050 | 리스트의 시작부터. (시작 위치) |
|
||
| scanSposControl | 0x0060 | 컨트롤의 시작부터. (시작 위치) |
|
||
| scanSposDocument | 0x0070 | 문서의 시작부터. (시작 위치) |
|
||
| scanEposCurrent | 0x0000 | 캐럿 위치까지. (끝 위치) |
|
||
| scanEposSpecified | 0x0001 | epara, epos 에 지정한 위치까지. (끝 위치) |
|
||
| scanEposLine | 0x0002 | 줄의 끝까지. (끝 위치) |
|
||
| scanEposParagraph | 0x0003 | 문단의 끝까지. (끝 위치) |
|
||
| scanEposSection | 0x0004 | 구역의 끝까지. (끝 위치) |
|
||
| scanEposList | 0x0005 | 리스트의 끝까지. (끝 위치) |
|
||
| scanEposControl | 0x0006 | 컨트롤의 끝까지. (끝 위치) |
|
||
| scanEposDocument | 0x0007 | 문서의 끝까지. (끝 위치) |
|
||
| scanWithinSelection | 0x00ff | 검색의 범위를 블록으로 제한. |
|
||
| scanForward | 0x0000 | 정뱡향. (검색 방향) |
|
||
| scanBackward | 0x0100 | 역방향. (검색 방향) |
|
||
|
||
- `spara`: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
|
||
- `spos`: 검색 시작 위치의 문단 중에서 문자의 위치. scanSposSpecified 옵션이 지정되었을 때만 유 효하다
|
||
- `epara`: 검색 끝 위치의 문단 번호. scanEposSpecified 옵션이 지정되었을 때만 유효하다
|
||
- `epos`: 검색 끝 위치의 문단 중에서 문자의 위치. scanEposSpecified 옵션이 지정되었을 때만 유효 하다
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**비고**
|
||
|
||
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다.
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력
|
||
2. 텍스트의 맨 앞으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 Text 를 얻어낸다.
|
||
|
||
```js
|
||
HwpCtrl.InitScan(0, 2);
|
||
alert(HwpCtrl.GetText().text);
|
||
HwpCtrl.ReleaseScan();
|
||
```
|
||
|
||
#### 1.2.26 `Insert`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.Insert(path, format, arg, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿 위치에 문서 파일을 삽입한다.
|
||
|
||
**파라미터**
|
||
|
||
- `path`: URL, blob
|
||
- `format`: 문서 형식. Open API 참고. 빈 문자열을 지정하면 자동으로 디텍트한다. 생략하면 빈 문자 열이 지정된다
|
||
- `arg`: 세부 옵션. Open API 참고. 의미는 format 에 지정한 파일 형식에 따라 다르다. 생략하면 빈 문자열이 지정된다
|
||
- `callback`: Insert 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- Parameter
|
||
|
||
- `result`: 성공 실패 여부, FileName, Size, CallbackUserData 를 포함한 Object
|
||
- `CallbackUserData`: Callback 함수에 Argument 로 넘겨 받을 result 에 포함될 UserData, 생략 가능
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false Return Value 는 Argument 가 제대로 들어왔는지 정도의 판단을 할 수 있으며 실제로 문서 Insert 의 성공 여부는 콜백함수의 인자로 들어가는 result 에서 확인할 수 있다.
|
||
|
||
**비고**
|
||
|
||
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 문서를 끼워넣을 위치로 캐럿 이동
|
||
3. Insert API 로 테스트 문서 끼워넣기 결과 : 특정 위치에 문서 끼워넣기 callback 방식
|
||
|
||
```js
|
||
// ...문서를 끼워넣을 위치로 캐럿 이동 // ... // Insert API 로 테스트 문서 끼워넣기
|
||
HwpCtrl.Insert("http://APIDOCS/testDoc/test.hwp", "HWP", "", function (res) {
|
||
```
|
||
|
||
console.log(res); }, null);
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
// ...문서를 끼워넣을 위치로 캐럿 이동 // ... // Insert API 로 테스트 문서 끼워넣기 await
|
||
HwpCtrl.Insert("http://APIDOCS/testDoc/test.hwp", "HWP", "");
|
||
```
|
||
|
||
#### 1.2.27 `InsertBackgroundPicture`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.InsertBackgroundPicture(bordertype, path, embedded, filloption, watermark, effect, brightnss, contrast, callback)
|
||
```
|
||
|
||
**설명**
|
||
|
||
배경이미지를 넣는다.
|
||
|
||
**파라미터**
|
||
|
||
- `bordertype`: 배경 유형을 지정
|
||
|
||
| bordertype | 설명 | 비고 |
|
||
| --- | --- | --- |
|
||
| "SelectedCell" | 현재 선택된 표의 셀 의 배경을 변경한다. | |
|
||
| "SelectedCellDelete" | 현재 선택된 표의 셀 의 배경을 지운다. | 반드시 셀이 선택되어 있어야 함. 커서 가 위치하는 것만으로는 동작하지 않 음. |
|
||
|
||
- `path`: 이미지
|
||
- `URLembeded`: 이미지 파일을 문서내에 포함할지 여부 Boolean Type
|
||
|
||
- 기존 ActiveX 한/글 컨트롤과 호환을 위해서 존재하는 인자로 true/false 여부를 떠나서 Embeded 로 동작 한다
|
||
|
||
- `filloption`: 삽입할 그림의 크기를 지정하는 옵션
|
||
- `effect`: 이미지효과
|
||
|
||
| filloption | 설명 | 비고 |
|
||
| --- | --- | --- |
|
||
| 0 | 바둑판식으로 -모두 | |
|
||
| 1 | 현바둑판식으로 -가로/위 | |
|
||
| 2 | 바둑판식으로 -가로/아로 | |
|
||
| 3 | 바둑판식으로 -세로/왼쪽 | |
|
||
| 4 | 바둑판식으로 -세로/오른쪽 | |
|
||
| 5 | 크기에 맞추어 | 설정하지 않았을 때 기본값 |
|
||
| 6 | 가운데로 | |
|
||
| 7 | 가운데 위로 | |
|
||
| 8 | 가운데 아래로 | |
|
||
| 9 | 왼쪽 가운데로 | |
|
||
| 10 | 왼쪽 위로 | |
|
||
| 11 | 왼쪽 아래로 | |
|
||
| 12 | 오른쪽 가운데로 | |
|
||
| 13 | 오른쪽 위로 | |
|
||
|
||
| effec t | 설명 | 비고 |
|
||
| --- | --- | --- |
|
||
| 0 | 원래 그림 | 설정하지 않았을 때 기본값 |
|
||
| 1 | 그래이 스케일 | |
|
||
| 2 | 흑백으로 | |
|
||
|
||
- `watermark`: watermark 효과 유무 Boolean Type . true 이면 brightness 와 contrast 옵션이 무시된다
|
||
- `brightness`: 밝기 지정100 100, 기본값 : 0
|
||
- `contrast`: 선명도 지정100 100, 기본값 : 0
|
||
- `callback`: InsertBackgroundPicture 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- parameterresult : 성공 시 true, 실패 시 false
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**비고**
|
||
|
||
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
|
||
|
||
**예제**
|
||
|
||
1. 표 생성
|
||
2. 셀안으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 셀에 배경이미지를 넣고, 제거한다. callback 방식
|
||
|
||
```js
|
||
// .... 셀 내부로 캐럿 이동 // ... // 배경 이미지 삽입 HwpCt rl.InsertB ackg roundPi cture("S electedC ell", "http://APIDOCS/testDoc/logo.png", 1, 5, 0, 0, 0, 0, function (res) {
|
||
console.log(res);
|
||
}
|
||
);
|
||
// ... // .... 배경이미지 넣은 셀 내부로 캐럿 이동 // 배경 이미지 제거
|
||
HwpCtrl.InsertBackgroundPicture("SelectedCellDelete", 0, 0, 0, 0, 0, 0, 0, function (res) {
|
||
```
|
||
|
||
console.log(res); });
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
// .... 셀 내부로 캐럿 이동 // ... // 배경 이미지 삽입 await
|
||
HwpCtrl.InsertBackgroundPicture("SelectedCell", "http://APIDOCS/testDoc/logo.png", 1, 5, 0, 0, 0, 0);
|
||
// ... // .... 배경이미지 넣은 셀 내부로 캐럿 이동 // 배경 이미지 제거 await
|
||
HwpCtrl.InsertBackgroundPicture("SelectedCellDelete", 0, 0, 0, 0, 0, 0, 0);
|
||
```
|
||
|
||
#### 1.2.28 `InsertCtrl`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.InsertCtrl(ctrlid, initparam)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿 위치에 컨트롤을 삽입한다.
|
||
|
||
**파라미터**
|
||
|
||
- 캐럿 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다
|
||
- `ctrlid`: 삽입할 컨트롤의 아이디initparam : 컨트롤의 초기 속성. 생략하면 디폴트 속성으로 생성한다
|
||
|
||
**반환값**
|
||
|
||
생성된 CtrlCode 객체를 리턴한다.
|
||
|
||
**비고**
|
||
|
||
```js
|
||
ctrlid 에 지정할 수 있는 컨트롤 ID는 HwpCtrl.CtrlID 가 리턴하는 ID와 동일하다. 자세한 것은 Ctrl 오 브젝트 Properties 인 CtrlID 를 참조.initparam 에는 컨트롤의 초기 속성을 지정한다.
|
||
```
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
|
||
|
||
```js
|
||
var tbact = HwpCtrl.CreateAction("TableCreate");
|
||
var tbset = tbact.CreateSet();
|
||
tbact.GetDefault(tbset);
|
||
tbset.SetItem("Rows", 5);
|
||
tbset.SetItem("Cols", 5);
|
||
var table = HwpCtrl.InsertCtrl("tbl", tbset);
|
||
```
|
||
|
||
#### 1.2.29 `InsertDocument`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.InsertDocument(path, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿 위치에 문서를 끼워넣는 기능.
|
||
|
||
**파라미터**
|
||
|
||
- `path`: URL, blob
|
||
- `callback`: InsertDocument 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- 콜백 인자 `result`: 성공 실패 여부, FileName, Size, CallbackUserData 를 포함한 Object
|
||
- `CallbackUserData`: Callback 함수에 Argument 로 넘겨 받을 result 에 포함될 UserData, 생략 가능
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false Return Value 는 Argument 가 제대로 들어왔는지 정도의 판단을 할 수 있으며 실제로 문서 InsertDocument 의 성공 여부는 콜백함수의 인자로 들어가는 result 에서 확인할 수 있다.
|
||
|
||
**비고**
|
||
|
||
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 문서를 끼워넣을 위치로 캐럿 이동
|
||
3. InsertDocument API 로 테스트 문서 끼워넣기 결과 : 특정 위치에 문서 끼워넣기 callback 방식
|
||
|
||
```js
|
||
// ...InsertDocument 끼워넣을 위치로 캐럿 이동 // ... // InsertDocument API 로 테스트 문서 끼워넣기
|
||
HwpCtrl.InsertDocument("http://APIDOCS/testDoc/test.hwp", function (res) {
|
||
```
|
||
|
||
console.log(res); }, null);
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
// ...문서를 끼워 넣을 위치로 캐럿 이동 // ... // InsertDocument API 로 테스트 문서 끼워넣기 await
|
||
HwpCtrl.InsertDocument("http://APIDOCS/testDoc/test.hwp", "HWP", "");
|
||
```
|
||
|
||
#### 1.2.30 `InsertPicture`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.InsertPicture(path, embeded, sizeoption, reverse, watermark, effect, width, height, callback)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿의 위치에 그림을 삽입한다.
|
||
|
||
**파라미터**
|
||
|
||
- `path`: 이미지
|
||
- `URLembeded`: 이미지 파일을 문서내에 포함할지 여부 true/false
|
||
|
||
- 기존 API 사용자와 호환을 위해서 존재하는 Parameter, true/false 여부를 떠나서 Embeded 로 동작 한다
|
||
|
||
- `sizeoption`: 삽입할 그림의 크기를 지정하는 옵션
|
||
|
||
| sizeoption | 설명 |
|
||
| --- | --- |
|
||
| 0 | 이미지 원래의 크기로삽입한다. width 와 height 를 지정할 필요없다. |
|
||
| 1 | width 와 height 에 지정한 크기로 그림을 삽입한다. |
|
||
| 2 | width 는 셀의 width 만큼, height 는 셀의 height 만큼 확대/축소된다. |
|
||
| 3 | 현재 캐럿이 표의 셀안에 있을 경우, 셀의 크기에 맞추어 원본 이미지의 가로 세로의 비율이 동일하게 확대/축소하여 삽입한다. |
|
||
|
||
- `reverse`: 이미지의 반전 유무 true/false)
|
||
- `watermark`: watermark 효과 유무 true/false)
|
||
- `effect`: 그림 효과
|
||
|
||
| option | 설명 |
|
||
| --- | --- |
|
||
| 0 | 실제 이미지 그대로 |
|
||
| 1 | 그레이 스케일 |
|
||
| 2 | 흑백효과 |
|
||
|
||
- `width`: 그림의 가로 크기 지정. 단위는 mm
|
||
- `height`: 그림의 높이 크기 지정. 단위는 mm
|
||
- `callback`: InsertPicture 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- ctrl: 성공 시 생성된 컨트롤 객체, 실패 시 null
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**비고**
|
||
|
||
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 셀에 배경이미지를 넣고, 제거한다. callback 방식
|
||
|
||
```js
|
||
HwpCtrl.InsertPicture("http://APIDOCS/testDoc/logo.png", true, 1, false, false, 0, 30, 20, function(ctrl) {
|
||
//InsertPicture 이후 동작
|
||
}
|
||
);
|
||
```
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
await HwpCtrl.InsertPicture("http://APIDOCS/testDoc/logo.png", true, 1, false, false, 0, 30, 20);
|
||
```
|
||
|
||
#### 1.2.31 `IsCommandLock`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.IsCommandLock(actionID)
|
||
```
|
||
|
||
**설명**
|
||
|
||
특정 액션이 잠금 상태인지 여부를 조사합니다.
|
||
|
||
**파라미터**
|
||
|
||
- `actionID`: 액션 ID
|
||
|
||
**반환값**
|
||
|
||
해당 액션이 잠금상태이면 True 를 반환하고, 잠금상태가 아니면 False 를 반환합니다.
|
||
|
||
**예제**
|
||
|
||
1. LockCommand 를 이용해 Bold Action 을 잠금
|
||
2. 예제 스크립트 실행 결과: Bold Action 잠김 여부 메시지 창
|
||
|
||
```js
|
||
HwpCtrl.LockCommand('CharShapeBold', true);
|
||
var isCommandLock = HwpCtrl.IsCommandLock('CharShapeBold');
|
||
if(isCommandLock) {
|
||
alert('Bold Action 을실행할수없습니다.')
|
||
}
|
||
else {
|
||
alert('Bold Action 을실행할수있습니다.')
|
||
}
|
||
```
|
||
|
||
#### 1.2.32 `IsSpellCheckCompleted`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.IsSpellCheckCompleted()
|
||
```
|
||
|
||
**설명**
|
||
|
||
맞춤법 검사가 완료되었는지를 판단한다.
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**비고**
|
||
|
||
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리
|
||
|
||
턴하는 방식으로 변경되었다.
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력
|
||
2. 예제 스크립트 실행 결과 : 맞춤법 검사가 되어 있지 않다면 맞춤법 검사를 실행한다.
|
||
|
||
```js
|
||
if (!HwpCtrl.IsSpellCheckCompleted()) {
|
||
// 맞춤법 검사 완료 여부 체크
|
||
HwpCtrl.MovePos(2);
|
||
// 문서 시작부분으로 이동
|
||
var dact = HwpCtrl.CreateAction("SpellingCheck");
|
||
//맞춤법 검사 액션 생성
|
||
```
|
||
|
||
및 실행
|
||
|
||
```js
|
||
var dset = dact.CreateSet();
|
||
dact.GetDefault(dset);
|
||
dset.SetItem("CheckStart", 1);
|
||
dact.PopupDialog(dset, function() {
|
||
//PopupDialog 이후 수행될 동작
|
||
}
|
||
, null);
|
||
}
|
||
```
|
||
|
||
#### 1.2.33 `LockCommand`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.LockCommand(actionID, lock)
|
||
```
|
||
|
||
**설명**
|
||
|
||
특정 액션이 실행되지 않도록 잠급니다.
|
||
|
||
**파라미터**
|
||
|
||
- `actionID`: 액션 ID
|
||
- `lock`: true 이면 액션의 실행을 lock 시키고, false 이면 unlock 시킵니다
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과: Bold Action 이 잠김
|
||
|
||
```js
|
||
HwpCtrl.LockCommand('CharShapeBold', true);
|
||
```
|
||
|
||
#### 1.2.34 `ModifyFieldProperties`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ModifyFieldProperties(field, remove, add)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 필드의 속성을 바꿉니다.
|
||
|
||
**파라미터**
|
||
|
||
- `field`: 속성을 바꿀 필드 이름의 리스트. 형식은 PutFieldText 과 동일합니다
|
||
- `remove`: 제거될 속성
|
||
- `add`: 추가될 속성
|
||
|
||
**반환값**
|
||
|
||
음수가 리턴되면 에러임을 나타냅니다.그 외의 리턴값은 아래 remark 참조)
|
||
|
||
**비고**
|
||
|
||
속성의 값은 아래와 같다.
|
||
|
||
| long value | 설명 |
|
||
| --- | --- |
|
||
| 0x00000001 | 양식모드에서 편집가능 속성 (0: 편집 불가, 1: 편집 가능) |
|
||
|
||
return 값의 bit field 는 다음과 같다.
|
||
|
||
| long value bit mask | 설명 |
|
||
| --- | --- |
|
||
| 0x00000001 | 양식모드에서 편집가능 속성 (0: 편집 불가, 1: 편집 가능) |
|
||
| 0x80000000 | 에러 |
|
||
| 0x40000000 | 필드를 찾을 수 없음 |
|
||
|
||
**예제**
|
||
|
||
1. 본문 이라는 필드 생성
|
||
2. 예제 스크립트 실행 결과: 본문 필드의 속성 변경
|
||
|
||
```js
|
||
var ModifyFieldPropertiesTest = function() {
|
||
var ret = HwpCtrl.ModifyFieldProperties("본문", 0, 0);
|
||
if (ret"0 ) {
|
||
var strErrMsg ="test 필드의 정보를 알아오는 데 실패";
|
||
if(ret"0x40000000) strErrMsg +="\n 지정한필드를찾을수없습니다.";
|
||
alert(strErrMsg);
|
||
return;
|
||
}
|
||
if (ret"0x00000001) {
|
||
alert("현재 양식모드에서 편집 가능");
|
||
ret = HwpCtrl.ModifyFieldProperties("본문", 1, 0);
|
||
}
|
||
else {
|
||
alert("현재 양식모드에서 편집 불가능");
|
||
ret = HwpCtrl.ModifyFieldProperties("본문", 0, 1);
|
||
}
|
||
if (ret"0 ) {
|
||
alert("필드 속성 변경 실패.");
|
||
}
|
||
if (ret"0x00000001) alert("양식모드에서 편집 가능하도록 변경되었 습니다.");
|
||
else alert("양식모드에서 편집 불가능하도록 변경되었 습니다.");
|
||
}
|
||
```
|
||
|
||
ModifyFieldPropertiesTest();
|
||
|
||
#### 1.2.35 `MovePos`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.MovePos(moveID, para, pos)
|
||
```
|
||
|
||
**설명**
|
||
|
||
캐럿의 위치를 옮긴다.
|
||
|
||
**파라미터**
|
||
|
||
- `moveID`: 다음과 같은 값을 지정할 수 있다. 생략하면 moveCurList 가 지정된다
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| moveNextChar | 16 | 한 글자 뒤로 이동.(현재 리스트만을 대상으로 동작한다.) |
|
||
| movePrevChar | 17 | 한 글자 앞으로 이동. (현재 리스트만을 대상으로 동작한다.) |
|
||
| moveNextWord | 18 | 한 단어 뒤로 이동. (현재 리스트만을 대상으로 동작한다.) |
|
||
| movePrevWord | 19 | 한 단어 앞으로 이동. (현재 리스트만을 대상으로 동작한다.) |
|
||
| moveNextLine | 20 | 한 줄 아래로 이동. |
|
||
| movePrevLine | 21 | 한 줄 위로 이동. |
|
||
| moveStartOfLine | 22 | 현재 위치한 줄의 시작으로 이동. |
|
||
| moveEndOfLine | 23 | 현재 위치한 줄의 끝으로 이동. |
|
||
| moveParentList | 24 | 한 레벨 상위로 이동한다. |
|
||
| moveTopLevelList | 25 | 탑레벨 리스트로 이동한다. |
|
||
| moveRootList | 26 | 루트 리스트로 이동한다. |
|
||
| moveCurrentCaret | 27 | 현재 캐럿이 위치한 곳으로 이동한다. (캐럿 위치가 뷰의 맨 위쪽으로 올라간다. ) |
|
||
| moveLeftOfCell | 100 | 현재 캐럿이 위치한 셀의 왼쪽 |
|
||
| moveRightOfCell | 101 | 현재 캐럿이 위치한 셀의 오른쪽 |
|
||
| moveUpOfCell | 102 | 현재 캐럿이 위치한 셀의 위쪽 |
|
||
| moveDownOfCell | 103 | 현재 캐럿이 위치한 셀의 아래쪽 |
|
||
| moveStartOfCell | 104 | 현재 캐럿이 위치한 셀에서 행(row) 의 시작 |
|
||
| moveEndOfCell | 105 | 현재 캐럿이 위치한 셀에서 행(row) 의 끝 |
|
||
| moveTopOfCell | 106 | 현재 캐럿이 위치한 셀에서 열(column) 의 시작 |
|
||
| moveBottomOfCell | 107 | 현재 캐럿이 위치한 셀에서 열(column) 의 끝 |
|
||
| moveScrPos | 200 | 한/글 문서장에서의 screen 좌표로서 위치를 설정 한다. |
|
||
| moveScanPos | 201 | GetText() 실행 후 위치로 이동한다. |
|
||
|
||
- `para`: 이이동할 문단의 번호. moveMain 또는 moveCurList 가 지정되었을 때만 사용된다. moveScrPos 가 지정되었을 때는 문단번호가 아닌 스크린 좌표로 해석된다
|
||
- `pos`: 이동할 문단 중에서 문자의 위치. moveMain 또는 moveCurList 가 지정되었을 때만 사용된다
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**비고**
|
||
|
||
moveScrPos 가 지정되었을 때는 스크린 좌표는 마우스 커서의 x,y 좌표를 그대로 넘겨 주면 된다.moveScanPos 는 문서를 검색하는 중에 캐럿을 이동 시키려 할 경우에만 사용이 가능하다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 캐럿 이동
|
||
3. GetPos API 로 현재 Pos 정보 저장
|
||
4. 다른 위치로 캐럿 이동
|
||
5. 3단계에서 저장한 위치로 캐럿 이동 결과 : 캐럿 위치를 저장하고, 다시 이동한다.
|
||
|
||
```js
|
||
posObj = HwpCtrl.GetPos();
|
||
//GetPos API 로 현재 Pos 정보 저장 //... 다른 위치로 캐럿 이동
|
||
HwpCtrl.MovePos(0, posObj.para, posObj.pos);
|
||
//3단계에서 저장한 위치로 캐럿 이동
|
||
```
|
||
|
||
#### 1.2.36 `MoveToField`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.MoveToField(field, text, start, select)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 필드로 캐럿을 이동한다.
|
||
|
||
**파라미터**
|
||
|
||
- `field`: 필드 이름. GetFieldText/PutFieldText 과 같은 형식으로 이름 뒤에 #4 로 번호를 지정할 수
|
||
|
||
- 있다
|
||
- `text`: 필드가 누름틀일 경우 누름틀 내부의 텍스트로 이동할지(true) 누름틀 코드로 이동할지(false) 를 지정한다. 누름틀이 아닌 필드일 경우 무시된다. 생략하면 true 지정된다
|
||
- `start`: 필드의 처음(true) 으로 이동할지 끝(false) 으로 이동할지 지정한다. select 를 true 로 지정하면 무시된다. 생략하면 true 가 지정된다
|
||
- `select`: 필드 내용을 블록으로 선택할지(true), 캐럿만 이동할지(false) 지정한다. 생략하면 false 가 지정된다
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**비고**
|
||
|
||
누름틀은 한글 메뉴 중 입력 > 개체 > 필드 입력 메뉴를 선택하면 누름틀을 만드실 수 있습니다.
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 삽입 필드 이름 본문
|
||
2. MoveToField API 로 본문 필드로 이동 결과 : 특정 필드로 이동한다.
|
||
|
||
```js
|
||
HwpCtrl.MoveToField("본문", true, true, false);
|
||
```
|
||
|
||
#### 1.2.37 `Open`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.Open(path, format, arg, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 파일을 연다.
|
||
|
||
**파라미터**
|
||
|
||
- `path`: URL, blob
|
||
- `format`: 문서 형식. 빈 문자열을 지정하면 자동으로 디텍트한다. 생략하면 빈 문자열이 지정된다
|
||
|
||
| format | 설명 |
|
||
| --- | --- |
|
||
| "HWP" | 한글 native format |
|
||
| "HWP30" | 한글 3.X/96/97 |
|
||
| "HTML" | 인터넷 문서 |
|
||
| "TEXT" | 아스키 텍스트 문서 |
|
||
| "UNICODE" | 유니코드 텍스트 문서 |
|
||
| "HWP20" | 한글 2.0 |
|
||
| "HWP21" | 한글 2.1/2.5 |
|
||
| "HWP15" | 한글 1.X |
|
||
| "HWPML2X" | HWPML 2.X 문서 (Open / SaveAs 가능) |
|
||
| "HWPX" | 한글 표준 문서 (실무협의서 웹기안기에서 사용) |
|
||
| "MSWORD" | 마이크로소프트 워드 문서 |
|
||
| "PUBDOCBODY" | 공문서(xml) |
|
||
|
||
- `arg`: 세부 옵션. 의미는 format 에 지정한 파일 형식에 따라 다르다. 생략하면 빈 문자열이 지정된다. arg 에 지정할 수 있는 옵션의 의미는 필터가 정의하기에 따라 다르지만, 신택스는 다음과 같이 공통된 형식을 사용한다.key:value;key:value;
|
||
|
||
| 분류 | arg | Type | 설명 |
|
||
| --- | --- | --- | --- |
|
||
| 모든 Format | setcurdir | Boolean | 로드한 후 해당 파일이 존재하는 폴더로 현재 위치를 변경한다. hyperlink 정보가 상대적인 위치로 되어 있을 때 유용하다. |
|
||
| "HWP" | lock | Boolean | 로드한 후 해당 파일을 계속 오픈한 상태로 lock 을 걸지 여부 |
|
||
| "HWP" | notext | Boolean | 텍스트 내용을 읽지 않고 헤더 정보만 읽을지 여부. (스타일 로드 등에 사용) |
|
||
| "HWP" | template | Boolean | 새로운 문서를 생성하기 위해 템플릿 파일을 오픈한다. 이 옵션이 주어지면 lock은 무조건 false 로 처리된다. |
|
||
| "HWP" | suspendpassword | Boolean | true 로 지정하면, 암호가 있는 파일일 경우 암호를 묻지 않고 무조건 읽기에 실패한 것으로 처리한다. |
|
||
| "HWP" | forceopen | Boolean | true 로 지정하면, 읽기 전용으로 읽어야 하는 경우 대화상자를 띄우지 않는다. |
|
||
| "HWP" | versionwarning | Boolean | true 로 지정하면, 문서가 상위버전일 경우 메시지 박스를 띄우게 된다. |
|
||
| "HTML" | code | String, CodePage | 문서 변환 시 사용되는 코드 페이지를 지정할 수 있으며 code 키가 존재할 경우 필터 사용 시 사용자 다이얼로그를 띄우지 않는다. |
|
||
| "HTML" | textunit | Boolean, Pixel | Export 될 Text 의 크기의 단위 결정 pixel, point, mili 지정 가능. |
|
||
| "HTML" | formatunit | Boolean, Pixel | Export 될 문서 포맷 관련 (마진, Object 크기 등) 단위 결정. pixel, point, mili 지정 가능 |
|
||
| "DOCIMG" | asimg | Boolean | 저장할 때 페이지를 image 로 저장 |
|
||
| "DOCIMG" | ashtml | Boolean | 저장할 때 페이지를 html 로 저장 |
|
||
| "TEXT" | code | String | 문서 변환 시 사용되는 코드 페이지를 지정할 수 있으며 code 키가 존재할 경우 필터 사용 시 사용자 다이얼로그를 띄우지 않는다. |
|
||
|
||
- `callback`: Open 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- 콜백 인자 `result`: 성공 실패 여부, FileName, Size, CallbackUserData 를 포함한 Object
|
||
|
||
- `CallbackUserData`: Callback 함수에 Argument 로 넘겨 받을 result 에 포함될 UserData, 생략 가능
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false Return Value 는 Argument 가 제대로 들어왔는지 정도의 판단을 할 수 있으며 실제로 문서 Open 의 성공 여부는 콜백함수의 인자로 들어가는 result 에서 확인할 수 있다.
|
||
|
||
**비고**
|
||
|
||
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 휴가계 문서를 오픈한다. callback 방식
|
||
|
||
```js
|
||
HwpCtrl.Open("http://APIDOCS/testDoc/test.hwp", "HWP", "", function (res) {
|
||
console.log(res);
|
||
}, null);
|
||
```
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
await HwpCtrl.Open("http://APIDOCS/testDoc/test.hwp", "HWP", "");
|
||
```
|
||
|
||
#### 1.2.38 `PrintDocument`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.PrintDocument
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서를 PDF 로 변환하여 보여준다.
|
||
|
||
**비고**
|
||
|
||
WEB 환경에서 인쇄 드라이버에 직접 접근할 수 없다.때문에 웹브라우저 상의 PDF 뷰어 혹은 로컬 PDF 뷰어를 통해서 인쇄 설정 및 인쇄를 할 수 있도록 문서를 PDF 포맷으로 변환한다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 예제 스크립트 실행 결과 : 현재 문서가 PDF 로 변환되어 보여진다.
|
||
|
||
```js
|
||
HwpCtrl.PrintDocument();
|
||
```
|
||
|
||
#### 1.2.39 `PutFieldText`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.PutFieldText(fieldlist, textlist)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 필드의 내용을 채운다.
|
||
|
||
**파라미터**
|
||
|
||
- `fieldlist`: 내용을 채울 필드 이름의 리스트. 한 번에 여러 개의 필드를 지정할 수 있으며, 형식은 GetFieldText 와 동일하다. 다만 필드 이름 뒤에 # 로 번호를 지정하지 않으면 해당 이름을 가진 모든 필드에 동일한 텍스트를 채워 넣는다. 즉, PutFieldText 에서는 필드이름과 필드이름0 의 의미가 다르다
|
||
- `textlist`: 필드에 채워 넣을 문자열의 리스트. 형식은 필드 리스트와 동일하게 필드의 개수만큼 텍스트를 0x02 로 구분하여 지정한다
|
||
|
||
**비고**
|
||
|
||
현재 필드에 입력되어 있는 내용은 지워진다. 채워진 내용의 글자모양은 필드에 지정해 놓은 글자모양을 따라간다. fieldlist 의 필드 개수와, textlist 의 텍스트 개수는 동일해야 한다. 존재하지 않는 필드에 대해서는 무시한다.
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 생성
|
||
2. 필드이름 이름으로 지정
|
||
3. 예제 스크립트 실행 결과 : 문서 내에 이름 필드가 있다면 해당 필드의 정렬을 가운데 정렬로 변경하고, 홍길동이라고 텍스트를 입력한다.
|
||
|
||
```js
|
||
if(HwpCtrl.FieldExist("이름")) {
|
||
HwpCtrl.MoveToField("이름", true, true, true);
|
||
HwpCtrl.Run("ParagraphShapeAlignCenter");
|
||
HwpCtrl.PutFieldText("이름", "홍길동");
|
||
}
|
||
```
|
||
|
||
#### 1.2.40 `ReleaseScan`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ReleaseScan()
|
||
```
|
||
|
||
**설명**
|
||
|
||
InitScan() 으로 설정된 정보를 초기화 한다.
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력
|
||
2. 텍스트의 맨 앞으로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 Text 를 얻어낸다.
|
||
|
||
```js
|
||
HwpCtrl.InitScan(0, 2);
|
||
alert(HwpCtrl.GetText().text);
|
||
HwpCtrl.ReleaseScan();
|
||
```
|
||
|
||
#### 1.2.41 `RenameField`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.RenameField(oldname, newname)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 필드의 이름을 바꾼다.
|
||
|
||
**파라미터**
|
||
|
||
- `oldname`: 이름을 바꿀 필드 이름의 리스트. 형식은 PutFieldText 과 동일하다
|
||
- `newname`: 새로운 필드 이름의 리스트. oldname 과 동일한 개수의 필드 이름을 0x02 로 구분하여 지정한다
|
||
|
||
**비고**
|
||
|
||
예를 들어 oldname 에 title0\x02title1, newname 에 tt1\x02tt2 로 지정하면 첫 번째 title 은 tt1 로, 두 번째 title 은 tt2 로 변경된다. oldname 의 필드 개수와, newname 의 필드 개수는 동일해야 한다. 존재하지 않는 필드에 대해서는 무시한다.
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 입력 FieldName 이름1
|
||
2. 예제 스크립트 실행 결과 : 이름1으로 지정된 누름틀의 필드이름이 이름2로 바뀐다.
|
||
|
||
```js
|
||
HwpCtrl.RenameField(“ 이름1”, “이름2”);
|
||
```
|
||
|
||
#### 1.2.42 `ReplaceAction`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ReplaceAction(oldActionID, newActionID)
|
||
```
|
||
|
||
**설명**
|
||
|
||
메뉴나 단축키로 호출되는 Action 을 교체합니다.
|
||
|
||
**파라미터**
|
||
|
||
- `oldActionID`: 교체할 원본 Action 의 이름
|
||
- `newActionID`: 교체될 새로운 Action 의 이름
|
||
|
||
**반환값**
|
||
|
||
성공여부, ActionID 가 잘못된 경우에는 실패합니다.
|
||
|
||
**비고**
|
||
|
||
메뉴나 단축키로 호출되는 Action 을 교체할 뿐, CreateAction 이나, Run 등의 API 를 이용할 때는 아무런 영향을 주지 못합니다. 교체된 OldActionID 를 원래대로 되돌려 놓기 위해서는 OldActionID 와 NewActionID 의 이름을 동일하게 하여 호출합니다.
|
||
|
||
- 예: `ReplaceAction("FileSave","FileSave")`OldActionID 와 NewActionID 가 구조적으로 연결된 경우에는 해당 Action 을 실행하면 무한 루프를 돌게 됩니다.
|
||
|
||
- 예: `ReplaceAction("FileSave","FileSaveAs")` `ReplaceAction("FileSaveAs","FileSave")` 를 둘다 호출한 경우 FileSave 나, FileSaveAs 를 호출하면 Stack overflow 가 발생합니다.
|
||
|
||
**예제**
|
||
|
||
1. 임의의 텍스트 삽입 및 선택
|
||
2. 예제 스크립트 실행 결과: 진하게 클릭 시 글자모양 다이얼로그 창 표시
|
||
|
||
```js
|
||
HwpCtrl.ReplaceAction('CharShapeBold', 'CharShape');
|
||
```
|
||
|
||
#### 1.2.43 `Run`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.Run(actionID, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
액션을 실행한다.
|
||
|
||
**파라미터**
|
||
|
||
- `actionID`: 액션 ID
|
||
- `callback`: 액션 실행 후 실행 될 함수
|
||
|
||
- 콜백 인자: 콜백을 호출한 Action 객체 result: 액션 실행 결과 Boolean 타입 callbackUserData: 사용자가 콜백에 전달한 데이터
|
||
|
||
- `callbackUserData`: 사용자가 콜백에 전달한 데이터
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 입력한 글자 Selection
|
||
3. 예제 스크립트 실행 결과 : Selection 된 글자들에 Bold 속성을 부여한다. callback 방식
|
||
|
||
```js
|
||
HwpCtrl.Run("CharShapeBold", function (res) {
|
||
console.log(res);
|
||
}
|
||
);
|
||
```
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
await HwpCtrl.Run("CharShapeBold");
|
||
```
|
||
|
||
#### 1.2.44 `SaveAs`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SaveAs(fileName, format, arg, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 편집중인 문서를 지정한 이름으로 저장한다.
|
||
|
||
**파라미터**
|
||
|
||
- `fileName`: 로컬에 다운로드할 때에 파일의 이름을 지정한다. arg 인자에 download:true 포함되어 있을 때 로컬에 저장된다. 그때 사용되는 파일 이름
|
||
- `format`: 문서 형식. 생략하면 HWP2 가 지정된다
|
||
|
||
| format | 설명 |
|
||
| --- | --- |
|
||
| "HWP" | 한글 native format |
|
||
| "HWPX" | 한글 표준 형식 |
|
||
| "HWPML2X" | HWPML 2.X 문서 |
|
||
| "ODT" | OpenDocument Text 형식 |
|
||
| "HTML" | 인터넷 문서 |
|
||
| "TEXT" | 아스키 텍스트 문서 |
|
||
| "UNICODE" | 유니코드 텍스트 문서 |
|
||
| "PUBDOCBODY" | 공문서(xml) |
|
||
| "PDF" | PDF(Portable Document Format) |
|
||
| "PDFA" | PDF/A |
|
||
|
||
- `arg`: 세부 옵션. 의미는 format 에 지정한 파일 형식에 따라 다르다. 생략하면 빈 문자열이 지정된다. download:true 를 넣으면 문서가 로컬에 다운로드 된다
|
||
- `callback`: SaveAs 함수가 동작을 마친 후 수행될 함수
|
||
|
||
- 콜백 인자 `result`: 성공/실패 여부, `path`, `fileName`, `Size`, `CallbackUserData`를 포함한 Object
|
||
- `callbackUserData`: 사용자가 콜백에 전달한 데이터
|
||
|
||
**비고**
|
||
|
||
format, arg 의 일반적인 개념에 대해서는 Open 참조. HWP2 형식으로 파일 저장 시 arg 에 지정할 수 있는 옵션은 다음과 같다.
|
||
|
||
| 인자 | Type | Default | 설명 |
|
||
| --- | --- | --- | --- |
|
||
| compress | Boolean | true | 압축 여부 |
|
||
| prvimage | Number | 2 | 미리보기 이미지(0=off, 1=BMP, 2=GIF) |
|
||
| prvtext | Number | 1 | 미리보기 텍스트(0=off, 1=0) |
|
||
| download | Boolean | false | true: DownLoad 폴더에 다운로드, false: 다운로드 하지 않음. |
|
||
|
||
여러 개를 한꺼번에 할 경우에는 세미콜론으로 구분하여 연속적으로 사용할 수 있다. download:true;prvtext:1
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 예제 스크립트 실행 결과 : 현재 열려있는 문서를 다운로드 폴더에 다운로드한다. callback 방식
|
||
|
||
```js
|
||
HwpCtrl.SaveAs("test.hwp", "HWP", "download:true", function() {
|
||
// SaveAs 실행 후 동작
|
||
}, null);
|
||
```
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
await HwpCtrl.SaveAs("test.hwp", "HWP", "download:true");
|
||
```
|
||
|
||
#### 1.2.45 `SelectText`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SelectText(spara, spos, epara, epos)
|
||
```
|
||
|
||
**설명**
|
||
|
||
블록을 설정한다.
|
||
|
||
**파라미터**
|
||
|
||
- `spara`: 블록 시작 위치의 문단 번호
|
||
- `spos`: 블록 시작 위치의 문단 중에서 문자의 위치
|
||
- `epara`: 블록 끝 위치의 문단 번호
|
||
- `epos`: 블록 끝 위치의 문단 중에서 문자의 위치
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 텍스트 블록
|
||
3. GetSelectedPos API 로 현재 블록 Pos 정보 저장
|
||
4. 블록 해제
|
||
5. 3단계에서 저장한 블록 다시 블록 결과 : 현재 설정된 블록의 위치를 저장하고, 이후에 다시 그 위치의 Text 를 블록한다.
|
||
|
||
```js
|
||
posObj = HwpCtrl.GetSelectedPos();
|
||
//GetSelectedPos API 로 현재 블록 Pos 정보 저장 //... 블록 해제
|
||
HwpCtrl.SelectText(posObj.spara, posObj.spos, posObj.epara, posObj.epos);
|
||
//3
|
||
```
|
||
|
||
단계에서 저장한 블록 다시 블록
|
||
|
||
#### 1.2.46 `SetCurFieldName`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SetCurFieldName(fieldname, option, direction, memo)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 캐럿 위치의 데이터 필드 이름을 설정한다.
|
||
|
||
**파라미터**
|
||
|
||
- `fieldname`: 데이터 필드 이름
|
||
- `option`: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
|
||
- `direction`: 누름틀 필드의 안내문. 누름틀 필드일 때만 유효하다
|
||
- `memo`: 누름틀 필드의 메모. 누름틀 필드일 때만 유효하다
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 누름틀 생성
|
||
2. 생성한 누름틀로 캐럿 이동
|
||
3. 예제 스크립트 실행 결과 : 현재 필드의 이름을 이름으로 설정하고 이름 필드에 홍길동을 입력한다.
|
||
|
||
```js
|
||
HwpCtrl.SetCurFieldName("이름");
|
||
if(HwpCtrl.GetCurFieldName(0) =="이름") {
|
||
HwpCtrl.PutFieldText("이름", "홍길동");
|
||
}
|
||
```
|
||
|
||
#### 1.2.47 `SetMetaTag`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SetMetaTag(name, format, value)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서 내 메타태그 정보를 삽입합니다.
|
||
|
||
**파라미터**
|
||
|
||
- `name`: 메타태그의 검색 이름. 같은 이름이 이미 존재하면 덮어씁니다
|
||
- `format`: 아래 표 참고
|
||
|
||
| ID | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| 텍스트 | “text” | 메타태그 값으로 문자열이 입력됨 |
|
||
| 숫자 | “num” | 메타태그 값으로 숫자가 입력됨 |
|
||
| 날짜 | “date” | 메타태그 값으로 날짜가 입력됨 |
|
||
| 예 또는 아니요 | “yesno ” | 메타태그 값으로 Boolean 값이 입력됨 |
|
||
|
||
- `value`: 메타태그의 데이터. format 에 맞게 입력하는 것을 권장한다
|
||
|
||
| ID | 값 예제 | 비고 |
|
||
| --- | --- | --- |
|
||
| 텍스트 | “한글과컴퓨터” | |
|
||
| 숫자 | “2022” | |
|
||
| 날짜 | “2022-07-18” | |
|
||
| 예 또는 아니요 | “yes”, “no” | “yes”, “no” 문자열만 유효함 |
|
||
|
||
**반환값**
|
||
|
||
성공 시 true 를 반환하며, 실패하면 false 를 반환한다.
|
||
|
||
**비고**
|
||
|
||
hwpx 에서만 사용가능합니다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과: 현재 문서에 메타태그 정보를 삽입합니다.
|
||
|
||
```js
|
||
var tag;
|
||
HwpCtrl.SetMetaTag("office", "text", "한글과컴퓨터");
|
||
HwpCtrl.GetTextFile("HWPX", "", function (result) {
|
||
data = result;
|
||
HwpCtrl.Clear(1);
|
||
HwpCtrl.SetTextFile(data, "HWPX", "", function (result) {
|
||
tag = HwpCtrl.GetMetaTag("office");
|
||
alert('name : '+ tag.NAME + '\n' + 'value : ' + tag.VALUE);
|
||
}
|
||
, null);
|
||
}
|
||
);
|
||
```
|
||
|
||
#### 1.2.48 `SetPos`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SetPos(list, para, pos)
|
||
```
|
||
|
||
**설명**
|
||
|
||
캐럿을 문서 내 특정 위치로 위치시킨다.
|
||
|
||
**파라미터**
|
||
|
||
- `list`: 캐럿이 위치할 문서 내 리스트 아이디
|
||
- `para`: 캐럿이 위치할 문단 아이디
|
||
- `pos`: 캐럿이 위치할 문단 내 글자 단위 위치
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. 캐럿 이동
|
||
3. GetPos API 로 현재 Pos 정보 저장
|
||
4. 다른 위치로 캐럿 이동
|
||
5. 3단계에서 저장한 위치로 캐럿 이동 결과 : 캐럿 위치를 저장하고, 다시 이동한다.
|
||
|
||
```js
|
||
posObj = HwpCtrl.GetPos();
|
||
//GetPos API 로 현재 Pos 정보 저장 //... 다른 위치로 캐럿 이동
|
||
HwpCtrl.SetPos(posObj.list, posObj.para, posObj.pos);
|
||
//3단계에서 저장한 위치로 캐럿 이동
|
||
```
|
||
|
||
#### 1.2.49 `SetPosBySet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SetPosBySet(pos)
|
||
```
|
||
|
||
**설명**
|
||
|
||
캐럿을 문서 내 특정 위치로 위치시킵니다. SetPos 의 ParameterSet 버전)
|
||
|
||
**파라미터**
|
||
|
||
- `pos`: 캐럿의 위치에 대한 ParameterSet
|
||
|
||
**반환값**
|
||
|
||
성공하면 true 를 반환하고, 실패하면 false 를 반환합니다.
|
||
|
||
**예제**
|
||
|
||
1. 임의의 텍스트 작성
|
||
2. 예제 스크립트 실행
|
||
3. 현재 커서의 위치 메시지창 출력
|
||
4. 1초 후 왼쪽으로 2칸 이동된 커서의 위치 메시지창 출력 결과: 커서 위치를 이동
|
||
|
||
```js
|
||
var posSet = null;
|
||
function SetPosTest() {
|
||
posSet = HwpCtrl.GetPosBySet();
|
||
if ( posSet != null) {
|
||
alert(posSet.Item("List") +""+ posSet.Item("Para") +""+ posSet.Item("Pos"));
|
||
if (!HwpCtrl.SetPosBySet(posSet)) {
|
||
alert ("GetPos err");
|
||
}
|
||
}
|
||
}
|
||
;
|
||
function CursorMove() {
|
||
HwpCtrl.Run('MoveLeft');
|
||
HwpCtrl.Run('MoveLeft');
|
||
```
|
||
|
||
setTimeout(() =& { SetPosTest(); },1000)
|
||
|
||
```js
|
||
}
|
||
```
|
||
|
||
SetPosTest(); CursorMove();
|
||
|
||
#### 1.2.50 `SetTextFile`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.SetTextFile(data, format, option, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
문서를 문자열로 지정한다.
|
||
|
||
**파라미터**
|
||
|
||
- `data`: 문자열로 변경된 text 파일
|
||
- `format`: 파일의 형식
|
||
|
||
| format | 설명 | 비고 |
|
||
| --- | --- | --- |
|
||
| HWP | Hwp native format | BASE64 로 인코딩되어 있다. 저장된 내용 을 다른 곳에서 보여줄 필요가 없다면 이 포맷을 사용하기를 권장합니다 |
|
||
| HWPML2X | HWP 형식과 호환 | 문서의 모든 정보를 유지 |
|
||
| HTML | 인터넷 문서 HTML 형식 | 한글 고유의 서식은 손실된다. |
|
||
| TEXT | 유니코드 텍스트 | 서식정보가 없는 텍스트만 저장 |
|
||
| JSON | json format | 문서의 정보를 Json 형태로 만든다. 문서의 모든 정보를 유지 |
|
||
|
||
- option
|
||
|
||
| option | 값 | 설명 |
|
||
| --- | --- | --- |
|
||
| insertfile | 현재 커서 이후에 지정된 파일 삽입 | |
|
||
|
||
- `callback`: SetTextFile API 이후 수행될 함수
|
||
|
||
- result: 성공 실패 여부, callbackUserData 를 포함한 Object 를 인자로 받는다
|
||
- `callback`: SetTextFile API 이후 수행될 함수
|
||
- `callbackUserData`: callback 함수에 Argument 로 넘겨 받을 result 에 포함될 UserData, 생략 가능
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**비고**
|
||
|
||
return 받은 boolean 값은 Argument 가 제대로 들어왔고, 함수가 제대로 동작을 하였는지를 판별할 수 있고, 서버를 통해서 문서가 제대로 SetTextFile 됬는지 여부는 콜백함수의 인자로 들어오는 result 에 서 확인할 수 있다.
|
||
|
||
**예제**
|
||
|
||
1. 문서 작성
|
||
2. GetTextFile API 현재 문서 데이터 저장
|
||
3. Clear API 로 현재 문서 초기화
|
||
4. SetTextFile API 로 저장한 문서 다시 로드 결과 : 현재 문서의 데이터를 문자열 형태로 저장하고, 다시 불러온다. callback 방식
|
||
|
||
```js
|
||
// GetTextFile API 현재 문서 데이터 저장
|
||
HwpCtrl.GetTextFile("HWP", "", function(result) {
|
||
data = result;
|
||
}
|
||
);
|
||
HwpCtrl.Clear(1);
|
||
// Clear API 로 현재 문서 초기화 // SetTextFile API 로 저장한 문서 다시 로드
|
||
HwpCtrl.SetTextFile(data, "HWP", "", function(result) {
|
||
// 이후 수행 할 동작
|
||
}
|
||
, null);
|
||
```
|
||
|
||
async await 방식
|
||
|
||
```js
|
||
// GetTextFile API 현재 문서 데이터 저장 data = await
|
||
HwpCtrl.GetTextFile("HWP", "");
|
||
HwpCtrl.Clear(1);
|
||
// Clear API 로 현재 문서 초기화 // SetTextFile API 로 저장한 문서 다시 로드 await
|
||
HwpCtrl.SetTextFile(data, "HWP", "");
|
||
```
|
||
|
||
#### 1.2.51 `ShowCaret`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ShowCaret(show)
|
||
```
|
||
|
||
**설명**
|
||
|
||
캐럿을 숨김/보이기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `show`: 캐럿 표시 여부
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 캐럿이 숨겨진다.
|
||
|
||
```js
|
||
HwpCtrl.ShowCaret(false);
|
||
```
|
||
|
||
#### 1.2.52 `ShowHorizontalScroll`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ShowHorizontalScroll(show)
|
||
```
|
||
|
||
**설명**
|
||
|
||
가로 스크롤을 화면에 숨김/보이기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `show`: 가로 스크롤 표시 여부
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 가로 스크롤이 감춰진다.
|
||
|
||
```js
|
||
HwpCtrl.ShowHorizontalScroll(false);
|
||
```
|
||
|
||
#### 1.2.53 `ShowRibbon`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ShowRibbon(show)
|
||
```
|
||
|
||
**설명**
|
||
|
||
리본 메뉴를 화면에 숨김/보이기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `show`: 캐럿 표시 여부
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : Ribbon 메뉴가 감춰진다.
|
||
|
||
```js
|
||
HwpCtrl.ShowRibbon(false);
|
||
```
|
||
|
||
#### 1.2.54 `ShowStatusBar`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ShowStatusBar(show)
|
||
```
|
||
|
||
**설명**
|
||
|
||
상태바를 화면에 숨김/보이기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `show`: 상태바 표시 여부
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 상태바가 감춰진다.
|
||
|
||
```js
|
||
HwpCtrl.ShowStatusBar(false);
|
||
```
|
||
|
||
#### 1.2.55 `ShowToolBar`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ShowStatusBar(show)
|
||
```
|
||
|
||
**설명**
|
||
|
||
툴바 메뉴를 화면에 숨김/보이기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `show`: 상태바 표시 여부
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 툴바 메뉴가가 감춰진다.
|
||
|
||
```js
|
||
HwpCtrl.ShowToolBar(false);
|
||
```
|
||
|
||
#### 1.2.56 `ShowVerticalScroll`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
HwpCtrl.ShowVerticalScroll(show)
|
||
```
|
||
|
||
**설명**
|
||
|
||
세로 스크롤을 화면에 숨김/보이기 처리한다.
|
||
|
||
**파라미터**
|
||
|
||
- `show`: 세로 스크롤 표시 여부
|
||
|
||
**반환값**
|
||
|
||
성공하면 true, 실패하면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 세로 스크롤이 감춰진다.
|
||
|
||
```js
|
||
HwpCtrl.ShowVerticalScroll(false);
|
||
```
|
||
|
||
## 2. HwpAction
|
||
|
||
### 2.1 Properties
|
||
|
||
#### 2.1.1 `ActID`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.ActID
|
||
```
|
||
|
||
**설명**
|
||
|
||
액션 ID를 나타낸다. 읽기 전용.액션 ID의 종류 및 설명은 별도 문서 참조.
|
||
|
||
**반환값**
|
||
|
||
ActionID 를 String 타입으로 return 한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : CharShapeBold ActionID 메시지 창
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("CharShapeBold");
|
||
alert("Action ID :"+ act.ActID);
|
||
```
|
||
|
||
#### 2.1.2 `SetID`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.SetID
|
||
```
|
||
|
||
**설명**
|
||
|
||
액션이 사용하는 parameter set ID를 나타낸다. 읽기 전용.액션 ID의 종류 및 설명은 별도 문서 참조.
|
||
|
||
**반환값**
|
||
|
||
액션이 사용하는 SetID 를 String 타입으로 return 한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : CharShapeBold 액션의 SetID 메시지 창
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("CharShapeBold");
|
||
alert("Set ID :"+ act.SetID);
|
||
```
|
||
|
||
### 2.2 Methods
|
||
|
||
#### 2.2.1 `CreateSet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.CreateSet()
|
||
```
|
||
|
||
**설명**
|
||
|
||
액션과 대응하는 ParameterSet 객체를 생성한다.
|
||
|
||
**반환값**
|
||
|
||
성공 시 ParameterSet 객체를 return 한다.ParameterSet 을 사용하지 않는 Action 은 null 객체를 리 턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
|
||
|
||
```js
|
||
var tbact = HwpCtrl.CreateAction("TableCreate");
|
||
var tbset = tbact.CreateSet();
|
||
tbact.GetDefault(tbset);
|
||
tbset.SetItem("Rows", 5);
|
||
tbset.SetItem("Cols", 5);
|
||
tbact.Execute(tbset);
|
||
```
|
||
|
||
#### 2.2.2 `GetDefault`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.GetDefault(param)
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 상태에 따라 액션 실행에 필요한 인수를 구한다.액션 ID의 종류 및 설명은 별도 문서 참조.
|
||
|
||
**파라미터**
|
||
|
||
- `param`: 인수를 저장할 ParameterSet 객체
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**비고**
|
||
|
||
예를 들어 글자모양의 액션의 경우, 현재 셀렉션 상태에 따라 param 의 아이템들이 채워진다.서브셋을 만들 경우에는 서브셋을 만든 후에 GetDefault 를 사용한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
|
||
|
||
```js
|
||
var tbact = HwpCtrl.CreateAction("TableCreate");
|
||
var tbset = tbact.CreateSet();
|
||
tbact.GetDefault(tbset);
|
||
tbset.SetItem("Rows", 5);
|
||
tbset.SetItem("Cols", 5);
|
||
tbact.Execute(tbset);
|
||
```
|
||
|
||
#### 2.2.3 `PopupDialog`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.PopupDialog(param, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
액션의 대화상자를 띄운다.
|
||
|
||
**파라미터**
|
||
|
||
- `param`: 액션의 실행을 제어할 인수. parameterSet 의 종류와 아이템의 의미는 액션이 정의한 바에 따라 다르다
|
||
- `callback`: PopupDialog 동작을 마친 후 수행될 함수
|
||
|
||
- action: 콜백을 호출한 Action 객체
|
||
|
||
- param: 액션으로 전달된 ParameterSet 객체
|
||
|
||
- result: 대화상자 버튼 클릭 결과 true: 설정버튼, false: 취소버튼)
|
||
|
||
- callbackUserData: 사용자가 콜백에 전달한 데이터
|
||
- `callbackUserData`: 사용자가 콜백에 전달한 데이터
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 글자 속성 대화상자를 띄운다.
|
||
|
||
```js
|
||
var dact = HwpCtrl.CreateAction("CharShape");
|
||
// 액션 생성
|
||
var dset = dact.CreateSet();
|
||
dact.GetDefault(dset);
|
||
dact.PopupDialog(dset, function(action, paramSet, result, callbackUserData) {
|
||
if(result == true) {
|
||
```
|
||
|
||
action.Execute(paramSet); } });
|
||
|
||
#### 2.2.4 `Execute`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.Execute(param, callback, callbackUserData)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 인수로 액션을 실행한다.
|
||
|
||
**파라미터**
|
||
|
||
- `param`: 액션의 실행을 제어할 인수. parameterSet 의 종류와 아이템의 의미는 액션이 정의한 바에 따라 다르다
|
||
- `callback`: Execute 동작 수행 후 실행될 함수
|
||
|
||
- action: 콜백을 호출한 Action 객체
|
||
|
||
- param: 액션으로 전달된 ParameterSet 객체
|
||
|
||
- result: 액션 실행 결과 true: 액션 성공, false: 액션 실패)
|
||
|
||
- callbackUserData: 사용자가 콜백에 전달한 데이터
|
||
- `callbackUserData`: 사용자가 콜백에 전달한 데이터
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
|
||
|
||
```js
|
||
var tbact = HwpCtrl.CreateAction("TableCreate");
|
||
var tbset = tbact.CreateSet();
|
||
tbact.GetDefault(tbset);
|
||
tbset.SetItem("Rows", 5);
|
||
tbset.SetItem("Cols", 5);
|
||
tbact.Execute(tbset);
|
||
```
|
||
|
||
#### 2.2.5 `Run`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
act.Run()
|
||
```
|
||
|
||
**설명**
|
||
|
||
액션을 실행한다.
|
||
|
||
**파라미터**
|
||
|
||
- `param`: 액션의 실행을 제어할 인수. parameterSet 의 종류와 아이템의 의미는 액션이 정의한 바에 따라 다르다
|
||
- `callback`: Run 동작을 마친 후 수행될 함수
|
||
|
||
- action: 콜백을 호출한 Action 객체
|
||
|
||
- param: 액션으로 전달된 ParameterSet 객체
|
||
|
||
- result: 대화상자 버튼 클릭 결과 true: 설정버튼, false: 취소버튼)
|
||
|
||
- callbackUserData: 사용자가 콜백에 전달한 데이터
|
||
- `callbackUserData`: 사용자가 콜백에 전달한 데이터
|
||
|
||
**반환값**
|
||
|
||
성공 시 true, 실패 시 false
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력
|
||
2. 예제 스크립트 실행 결과 : Bold Action 실행대화상자가 없는 액션은 동기 방식으로 실행한다.)
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("CharShapeBold");
|
||
// 액션 생성
|
||
act.Run();
|
||
//액션 실행;
|
||
```
|
||
|
||
## 3. HwpParameterSet
|
||
|
||
### 3.1 Properties
|
||
|
||
#### 3.1.1 `Count`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.Count
|
||
```
|
||
|
||
**설명**
|
||
|
||
현재 존재하는 아이템의 개수를 나타낸다. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
아이템 개수를 Number 타입으로 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 서브 셋 아이템 수 안내창
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("PageSetup");
|
||
var pageSet = act.CreateSet();
|
||
act.GetDefault(pageSet);
|
||
pageSet.SetItem("ApplyTo", 3);
|
||
var pset = pageSet.CreateItemSet("PageDef", "PageDef");
|
||
pset.SetItem("TopMargin", 3401);
|
||
pset.SetItem("BottomMargin", 5669);
|
||
pset.SetItem("LeftMargin", 4251);
|
||
pset.SetItem("RightMargin", 4251);
|
||
pset.SetItem("HeaderLen", 0);
|
||
pset.SetItem("FooterLen", 0);
|
||
pset.SetItem("GutterLen", 0);
|
||
alert("Page 속성 서브 Set 의 아이템 수 :"+ pset.Count)
|
||
```
|
||
|
||
#### 3.1.2 `IsSet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.IsSet
|
||
```
|
||
|
||
**설명**
|
||
|
||
ParameterSet 타입인지 여부를 나타낸다. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
ParameterSet 인 경우 true, ParameterArray 인 경우 false 를 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("TableCreate");
|
||
var pset = act.CreateSet();
|
||
var idx = 0;
|
||
if(pset.IsSet) {
|
||
act.GetDefault(pset);
|
||
pset.SetItem("Rows", 5);
|
||
pset.SetItem("Cols", 5);
|
||
var colset = pset.CreateItemArray("ColWidth", 5);
|
||
var rowset = pset.CreateItemArray("RowHeight", 5);
|
||
if(colset.IsSet) {
|
||
return;
|
||
// colset 은 ParameterArray 타입이어야 한다.
|
||
}
|
||
for (idx = 0; idx < colset.Count; idx++) {
|
||
colset.SetItem(idx, 7200);
|
||
}
|
||
for (idx = 0; idx < rowset.Count; idx++) {
|
||
rowset.SetItem(idx, colset.Item(0)/2);
|
||
// Height 는 Width 의 절반으로 지정한다.
|
||
}
|
||
act.Execute(pset)
|
||
}
|
||
```
|
||
|
||
#### 3.1.3 `SetID`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.SetID
|
||
```
|
||
|
||
**설명**
|
||
|
||
ParameterSet 의 ID를 나타낸다. 읽기 전용.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템 ID
|
||
|
||
**반환값**
|
||
|
||
Set ID를 String 타입으로 리턴한다.
|
||
|
||
**예제**
|
||
|
||
결과 : SetID 안내창 TableCreate Action SetID : TableCreation)
|
||
|
||
```js
|
||
var tbact = HwpCtrl.CreateAction("TableCreate");
|
||
var tbset = tbact.CreateSet();
|
||
alert("TableCreate Action SetID :"+ tbset.SetID);
|
||
```
|
||
|
||
### 3.2 Methods
|
||
|
||
#### 3.2.1 `Clone`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.Clone()
|
||
```
|
||
|
||
**설명**
|
||
|
||
ParameterSet 을 복사한다.
|
||
|
||
**반환값**
|
||
|
||
동일한 데이터를 가진 ParameterSet 을 복사하여 ParameterSet 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
동일한 ID를 가진 기존의 아이템은 삭제된다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 복사한 아이템이 동일한 지 여부 안내창
|
||
|
||
```js
|
||
var charShapeSet = HwpCtrl.CharShape;
|
||
var cloneSet = charShapeSet.Clone();
|
||
if(cloneSet.IsEquivalent(charShapeSet)) {
|
||
alert("동일");
|
||
}
|
||
```
|
||
|
||
#### 3.2.2 `CreateItemArray`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.CreateItemArray(itemid, count)
|
||
```
|
||
|
||
**설명**
|
||
|
||
아이템으로 ParameterArray 타입의 배열을 생성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템
|
||
- `IDcount`: 생성할 배열의 초기 크기
|
||
|
||
**반환값**
|
||
|
||
인자에 따라 ParameterArray 를 생성하고, ParameterArray 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
동일한 ID를 가진 기존의 아이템은 삭제된다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("TableCreate");
|
||
var pset = act.CreateSet();
|
||
var idx = 0;
|
||
if(pset.IsSet) {
|
||
act.GetDefault(pset);
|
||
pset.SetItem("Rows", 5);
|
||
pset.SetItem("Cols", 5);
|
||
var colset = pset.CreateItemArray("ColWidth", 5);
|
||
var rowset = pset.CreateItemArray("RowHeight", 5);
|
||
if(colset.IsSet) {
|
||
return;
|
||
// colset 은 ParameterArray 타입이어야 한다.
|
||
}
|
||
for (idx = 0; idx < colset.Count; idx++) {
|
||
colset.SetItem(idx, 7200);
|
||
}
|
||
for (idx = 0; idx < rowset.Count; idx++) {
|
||
rowset.SetItem(idx, colset.Item(0)/2);
|
||
// Height 는 Width 의 절반으로 지정한다.
|
||
}
|
||
act.Execute(pset)
|
||
}
|
||
```
|
||
|
||
#### 3.2.3 `CreateItemSet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.CreateItemSet(itemid, setid)
|
||
```
|
||
|
||
**설명**
|
||
|
||
아이템으로 ParameterSet 을 생성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템
|
||
- `IDsetid`: 생성할 ParameterSet 의 ID
|
||
|
||
**반환값**
|
||
|
||
생성된 서브 셋을 ParameterSet 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
parameter set 내부에 아이템으로 또 다른 parameter set 을 가지는 서브 셋의 개념이다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 문서 전체 용지의 속성이 변경된다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("PageSetup");
|
||
var pageSet = act.CreateSet();
|
||
act.GetDefault(pageSet);
|
||
pageSet.SetItem("ApplyTo", 3);
|
||
var pset = pageSet.CreateItemSet("PageDef", "PageDef");
|
||
pset.SetItem("TopMargin", 3401);
|
||
pset.SetItem("BottomMargin", 5669);
|
||
pset.SetItem("LeftMargin", 4251);
|
||
pset.SetItem("RightMargin", 4251);
|
||
pset.SetItem("HeaderLen", 0);
|
||
pset.SetItem("FooterLen", 0);
|
||
pset.SetItem("GutterLen", 0);
|
||
act.Execute(pageSet);
|
||
```
|
||
|
||
#### 3.2.4 `GetIntersection`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.GetIntersection(srcset)
|
||
```
|
||
|
||
**설명**
|
||
|
||
두 ParameterSet 에 공통적으로 존재하고, 값도 동일한 아이템만으로 구성된 교집합으로 this 를 구성한다.
|
||
|
||
**파라미터**
|
||
|
||
- `srcset`: this 와 srcset 의 교집합이 this 에 저장된다
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력 후 글자 블록
|
||
2. 예제 스크립트 실행 결과 : 블록된 텍스트의 글자 크기 속성을 제거하고 글자 크기를 10으로 다시 지정한다.
|
||
|
||
```js
|
||
var charShapeSet = HwpCtrl.CharShape;
|
||
var cloneSet = charShapeSet.Clone();
|
||
cloneSet.RemoveItem("Height");
|
||
// cloneSet 에서 글자 크기 속성 제거 charShapeSet.GetIntersection(cloneSet);
|
||
// 두 셋의 교집합만 남긴다.
|
||
if(charShapeSet.Item("Height") === null) charShapeSet.SetItem("Height", 1000) HwpCtrl.CharShape = charShapeSet;
|
||
```
|
||
|
||
#### 3.2.5 `IsEquivalent`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.IsEquivalent(srcset)
|
||
```
|
||
|
||
**설명**
|
||
|
||
두 ParameterSet 의 내용이 동일한 값을 가지고 있는지 검사한다.
|
||
|
||
**파라미터**
|
||
|
||
- `srcset`: this 와 srcset 을 비교한 결과를 리턴한다
|
||
|
||
**반환값**
|
||
|
||
동일하면 true, 다르면 false
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 복사한 아이템이 동일한 지 여부 안내창
|
||
|
||
```js
|
||
var charShapeSet = HwpCtrl.CharShape;
|
||
var cloneSet = charShapeSet.Clone();
|
||
if(cloneSet.IsEquivalent(charShapeSet)) {
|
||
alert("동일");
|
||
}
|
||
```
|
||
|
||
#### 3.2.6 `Item`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.Item(itemid)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 아이템의 값을 리턴한다.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템 ID
|
||
|
||
**반환값**
|
||
|
||
아이템의 값, 만약 지정한 아이템이 존재하지 않으면 아이템의 포맷에 따라 0 또는 빈 문자열을 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 입력한 글자 Selection
|
||
3. 예제 스크립트 실행 결과 : 만약 Selection 된 글자들의 글자 크기가 동일하고 20pt 미만이면 글자 크기를 20pt 로 설정한다.
|
||
|
||
```js
|
||
var cs = HwpCtrl.CharShape;
|
||
if (cs.ItemExist("Height") && cs.Item("Height") < 2000) {
|
||
cs.SetItem("Height", 2000);
|
||
HwpCtrl.CharShape = cs;
|
||
}
|
||
```
|
||
|
||
#### 3.2.7 `ItemExist`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.ItemExist(itemid)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 아이템이 존재하는지 검사한다.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템 ID
|
||
|
||
**반환값**
|
||
|
||
존재하면 true, 존재하지 않으면 false
|
||
|
||
**예제**
|
||
|
||
1. 글자 입력
|
||
2. 입력한 글자 Selection
|
||
3. 예제 스크립트 실행 결과 : 만약 Selection 된 글자들의 글자 크기가 동일하고 20pt 미만이면 글자 크기를 20pt 로 설정한다.
|
||
|
||
```js
|
||
var cs = HwpCtrl.CharShape;
|
||
if (cs.ItemExist("Height") && cs.Item("Height") < 2000) {
|
||
cs.SetItem("Height", 2000);
|
||
HwpCtrl.CharShape = cs;
|
||
}
|
||
```
|
||
|
||
#### 3.2.8 `Merge`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.Merge(srcset)
|
||
```
|
||
|
||
**설명**
|
||
|
||
두 ParameterSet 에 내용을 병합한다, 결과는 this 와 srcset 의 합집합이 this 에 저장된다.
|
||
|
||
**파라미터**
|
||
|
||
- `srcset`: this 와 srcset 이 병합되어 this 에 저장된다
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력 후 글자 블록
|
||
2. 예제 스크립트 실행 결과 : ParameterSet 의 아이템을 제거하고, 병합한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("PageSetup");
|
||
var pageSet = act.CreateSet();
|
||
act.GetDefault(pageSet);
|
||
pageSet.SetItem("ApplyTo", 3);
|
||
var pset = pageSet.CreateItemSet("PageDef", "PageDef");
|
||
pset.SetItem("TopMargin", 3401);
|
||
pset.SetItem("BottomMargin", 5669);
|
||
pset.SetItem("LeftMargin", 4251);
|
||
pset.SetItem("RightMargin", 4251);
|
||
pset.SetItem("HeaderLen", 0);
|
||
pset.SetItem("FooterLen", 0);
|
||
pset.SetItem("GutterLen", 0);
|
||
var origCount = pset.Count;
|
||
// 7
|
||
var cloneSet = pset.Clone();
|
||
var cloneCount = cloneSet.Count;
|
||
// 7
|
||
pset.RemoveAll();
|
||
//pset 의 모든 아이템을 삭제한다.
|
||
var removedCount = pset.Count;
|
||
// 0
|
||
pset.Merge(cloneSet);
|
||
//pset 과 cloneSet 을 합친다.
|
||
var mergedCount = pset.Count;
|
||
//7
|
||
act.Execute(pageSet);
|
||
alert("origCount : " + origCount + "\ncloneCount : " + cloneCount + "\nremovedCount : " + removedCount + "\nmergedCount : " + mergedCount);
|
||
```
|
||
|
||
#### 3.2.9 `RemoveAll`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.RemoveAll(setID)
|
||
```
|
||
|
||
**설명**
|
||
|
||
ParameterSet 을 초기화한다.
|
||
|
||
**파라미터**
|
||
|
||
- `setid`: 새로 적용할 Set ID
|
||
|
||
**비고**
|
||
|
||
이미 존재하는 ParameterSet 객체를 이용해 새로운 타입의 ParameterSet 으로 초기화하여 재사용하는 목적에 사용된다.
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력 후 글자 블록
|
||
2. 예제 스크립트 실행 결과 : ParameterSet 의 아이템을 제거하고, 병합한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("PageSetup");
|
||
var pageSet = act.CreateSet();
|
||
act.GetDefault(pageSet);
|
||
pageSet.SetItem("ApplyTo", 3);
|
||
var pset = pageSet.CreateItemSet("PageDef", "PageDef");
|
||
pset.SetItem("TopMargin", 3401);
|
||
pset.SetItem("BottomMargin", 5669);
|
||
pset.SetItem("LeftMargin", 4251);
|
||
pset.SetItem("RightMargin", 4251);
|
||
pset.SetItem("HeaderLen", 0);
|
||
pset.SetItem("FooterLen", 0);
|
||
pset.SetItem("GutterLen", 0);
|
||
var origCount = pset.Count;
|
||
// 7
|
||
var cloneSet = pset.Clone();
|
||
var cloneCount = cloneSet.Count;
|
||
// 7
|
||
pset.RemoveAll();
|
||
//pset 의 모든 아이템을 삭제한다.
|
||
var removedCount = pset.Count;
|
||
// 0
|
||
pset.Merge(cloneSet);
|
||
//pset 과 cloneSet 을 합친다.
|
||
var mergedCount = pset.Count;
|
||
//7
|
||
act.Execute(pageSet);
|
||
alert("origCount : " + origCount + "\ncloneCount : " + cloneCount + "\nremovedCount : " + removedCount + "\nmergedCount : " + mergedCount);
|
||
```
|
||
|
||
#### 3.2.10 `RemoveItem`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.RemoveItem(itemid)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 아이템을 삭제한다.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템 ID
|
||
|
||
**예제**
|
||
|
||
1. 텍스트 입력 후 글자 블록
|
||
2. 예제 스크립트 실행 결과 : 블록된 텍스트의 글자 크기 속성을 제거하고 글자 크기를 10으로 다시 지정한다.
|
||
|
||
```js
|
||
var charShapeSet = HwpCtrl.CharShape;
|
||
var cloneSet = charShapeSet.Clone();
|
||
cloneSet.RemoveItem("Height");
|
||
// cloneSet 에서 글자 크기 속성 제거 charShapeSet.GetIntersection(cloneSet);
|
||
// 두 셋의 교집합만 남긴다.
|
||
if(charShapeSet.Item("Height") === null) charShapeSet.SetItem("Height", 1000) HwpCtrl.CharShape = charShapeSet;
|
||
```
|
||
|
||
#### 3.2.11 `SetItem`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
pset.SetItem(itemid, value)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 아이템의 값을 설정한다.
|
||
|
||
**파라미터**
|
||
|
||
- `itemid`: 아이템 ID
|
||
- `value`: 설정할 값
|
||
|
||
**비고**
|
||
|
||
이미 동일한 ID의 아이템이 존재하면 지정한 값으로 바뀌고, 존재하지 않으면 아이템이 생성된다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 문서 전체 용지의 속성이 변경된다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("PageSetup");
|
||
var pageSet = act.CreateSet();
|
||
act.GetDefault(pageSet);
|
||
pageSet.SetItem("ApplyTo", 3);
|
||
var pset = pageSet.CreateItemSet("PageDef", "PageDef");
|
||
pset.SetItem("TopMargin", 3401);
|
||
pset.SetItem("BottomMargin", 5669);
|
||
pset.SetItem("LeftMargin", 4251);
|
||
pset.SetItem("RightMargin", 4251);
|
||
pset.SetItem("HeaderLen", 0);
|
||
pset.SetItem("FooterLen", 0);
|
||
pset.SetItem("GutterLen", 0);
|
||
act.Execute(pageSet);
|
||
```
|
||
|
||
## 4. HwpParameterArray
|
||
|
||
### 4.1 Properties
|
||
|
||
#### 4.1.1 `Count`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
itemArray.Count
|
||
```
|
||
|
||
**설명**
|
||
|
||
배열의 크기를 나타낸다.
|
||
|
||
**반환값**
|
||
|
||
배열의 크기를 Number 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
배열의 크기는 Runtime 에 동적으로 조절할 수 있다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("TableCreate");
|
||
var pset = act.CreateSet();
|
||
var idx = 0;
|
||
if(pset.IsSet) {
|
||
act.GetDefault(pset);
|
||
pset.SetItem("Rows", 5);
|
||
pset.SetItem("Cols", 5);
|
||
var colset = pset.CreateItemArray("ColWidth", 5);
|
||
var rowset = pset.CreateItemArray("RowHeight", 5);
|
||
if(colset.IsSet) {
|
||
return;
|
||
// colset 은 ParameterArray 타입이어야 한다.
|
||
}
|
||
for (idx = 0; idx < colset.Count; idx++) {
|
||
colset.SetItem(idx, 7200);
|
||
}
|
||
for (idx = 0; idx < rowset.Count; idx++) {
|
||
rowset.SetItem(idx, colset.Item(0)/2);
|
||
// Height 는 Width 의 절반으로 지정한다.
|
||
}
|
||
act.Execute(pset)
|
||
}
|
||
```
|
||
|
||
#### 4.1.2 `IsSet`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
itemArray.IsSet
|
||
```
|
||
|
||
**설명**
|
||
|
||
ParameterSet 타입인지 여부를 나타낸다. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
ParameterSet 인 경우 true, ParameterArray 인 경우 false 를 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("TableCreate");
|
||
var pset = act.CreateSet();
|
||
var idx = 0;
|
||
if(pset.IsSet) {
|
||
act.GetDefault(pset);
|
||
pset.SetItem("Rows", 5);
|
||
pset.SetItem("Cols", 5);
|
||
var colset = pset.CreateItemArray("ColWidth", 5);
|
||
var rowset = pset.CreateItemArray("RowHeight", 5);
|
||
if(colset.IsSet) {
|
||
return;
|
||
// colset 은 ParameterArray 타입이어야 한다.
|
||
}
|
||
for (idx = 0; idx < colset.Count; idx++) {
|
||
colset.SetItem(idx, 7200);
|
||
}
|
||
for (idx = 0; idx < rowset.Count; idx++) {
|
||
rowset.SetItem(idx, colset.Item(0)/2);
|
||
// Height 는 Width 의 절반으로 지정한다.
|
||
}
|
||
act.Execute(pset)
|
||
}
|
||
```
|
||
|
||
### 4.2 Methods
|
||
|
||
#### 4.2.1 `Clone`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
itemArray.Clone()
|
||
```
|
||
|
||
**설명**
|
||
|
||
동일한 크기와 데이터를 갖는 ParameterArray 개체를 복사하여 리턴한다.
|
||
|
||
**반환값**
|
||
|
||
성공 시 복사된 ParameterArray 객체를 리턴한다.실패 시 null 을 리턴한다.
|
||
|
||
**예제**
|
||
|
||
결과 : Clone, Copy 결과 안내창
|
||
|
||
```js
|
||
var tset = HwpCtrl.CreateSet("TableCreation");
|
||
var colset = tset.CreateItemArray("ColWidth", 1);
|
||
colset.SetItem(0, 7200);
|
||
var cloneColset = colset.Clone();
|
||
var cloneColWidth = cloneColset.Item(0);
|
||
cloneColset.SetItem(0, 0);
|
||
var cloneColWidth2 = cloneColset.Item(0);
|
||
cloneColset.Copy(colset) var cloneColWidth3 = cloneColset.Item(0);
|
||
alert("Clone :"+ cloneColWidth +"\n 초기화 :"+ cloneColWidth2 +"\nCopy :"+ cloneColWidth3);
|
||
```
|
||
|
||
#### 4.2.2 `Copy`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
itemArray.Copy(srcarray)
|
||
```
|
||
|
||
**설명**
|
||
|
||
인자로 들어온 ParameterArray 의 내용을 복사한다.
|
||
|
||
**파라미터**
|
||
|
||
- `srcarray`: srcarray 의 내용이 그대로 this 로 복사된다
|
||
|
||
**예제**
|
||
|
||
결과 : Clone, Copy 결과 안내창
|
||
|
||
```js
|
||
var tset = HwpCtrl.CreateSet("TableCreation");
|
||
var colset = tset.CreateItemArray("ColWidth", 1);
|
||
colset.SetItem(0, 7200);
|
||
var cloneColset = colset.Clone();
|
||
var cloneColWidth = cloneColset.Item(0);
|
||
cloneColset.SetItem(0, 0);
|
||
var cloneColWidth2 = cloneColset.Item(0);
|
||
cloneColset.Copy(colset) var cloneColWidth3 = cloneColset.Item(0);
|
||
alert("Clone :"+ cloneColWidth +"\n 초기화 :"+ cloneColWidth2 +"\nCopy :"+ cloneColWidth3);
|
||
```
|
||
|
||
#### 4.2.3 `Item`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
itemArray.Item(index)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 아이템의 값을 리턴한다.
|
||
|
||
**파라미터**
|
||
|
||
- `index`: 아이템 인덱스. 0부터 시작한다
|
||
|
||
**반환값**
|
||
|
||
index 에 해당하는 아이템의 값을 리턴한다.
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("TableCreate");
|
||
var pset = act.CreateSet();
|
||
var idx = 0;
|
||
if(pset.IsSet) {
|
||
act.GetDefault(pset);
|
||
pset.SetItem("Rows", 5);
|
||
pset.SetItem("Cols", 5);
|
||
var colset = pset.CreateItemArray("ColWidth", 5);
|
||
var rowset = pset.CreateItemArray("RowHeight", 5);
|
||
if(colset.IsSet) {
|
||
return;
|
||
// colset 은 ParameterArray 타입이어야 한다.
|
||
}
|
||
for (idx = 0; idx < colset.Count; idx++) {
|
||
colset.SetItem(idx, 7200);
|
||
}
|
||
for (idx = 0; idx < rowset.Count; idx++) {
|
||
rowset.SetItem(idx, colset.Item(0)/2);
|
||
// Height 는 Width 의 절반으로 지정한다.
|
||
}
|
||
act.Execute(pset)
|
||
}
|
||
```
|
||
|
||
#### 4.2.4 `SetItem`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
itemArray.SetItem(index, value)
|
||
```
|
||
|
||
**설명**
|
||
|
||
지정한 원소의 값을 설정한다.
|
||
|
||
**파라미터**
|
||
|
||
- `index`: 아이템의 인덱스. 0부터 시작.value : 아이템의 값
|
||
|
||
**예제**
|
||
|
||
1. 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
|
||
|
||
```js
|
||
var act = HwpCtrl.CreateAction("TableCreate");
|
||
var pset = act.CreateSet();
|
||
var idx = 0;
|
||
if(pset.IsSet) {
|
||
act.GetDefault(pset);
|
||
pset.SetItem("Rows", 5);
|
||
pset.SetItem("Cols", 5);
|
||
var colset = pset.CreateItemArray("ColWidth", 5);
|
||
var rowset = pset.CreateItemArray("RowHeight", 5);
|
||
if(colset.IsSet) {
|
||
return;
|
||
// colset 은 ParameterArray 타입이어야 한다.
|
||
}
|
||
for (idx = 0; idx < colset.Count; idx++) {
|
||
colset.SetItem(idx, 7200);
|
||
}
|
||
for (idx = 0; idx < rowset.Count; idx++) {
|
||
rowset.SetItem(idx, colset.Item(0)/2);
|
||
// Height 는 Width 의 절반으로 지정한다.
|
||
}
|
||
act.Execute(pset)
|
||
}
|
||
```
|
||
|
||
## 5. HwpCtrlCode
|
||
|
||
### 5.1 Properties
|
||
|
||
#### 5.1.1 `CtrlCh`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
ctrlCode.CtrlCh
|
||
```
|
||
|
||
**설명**
|
||
|
||
컨트롤 문자. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 컨트롤의 컨트롤 문자를 Number 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
일반적으로 컨트롤 ID를 사용해 컨트롤의 종류를 판별하지만, 이보다 더 포괄적인 범주를 나타내는 컨 트롤 문자로 판별할 수도 있다. 예를 들어 각주와 미주는 ID는 다르지만, 컨트롤 문자는 17로 동일하다. 컨트롤 문자는 131 사이의 값을 사용한다. 그 중 CtrlCode 객체로 리턴 받을 수 있는 문자는 다음과 같다.
|
||
|
||
| Ch | 설명 |
|
||
| --- | --- |
|
||
| 2 | 구역/단 정의 |
|
||
| 3 | 필드 시작 |
|
||
| 11 | 그리기 개체 / 표 |
|
||
| 15 | 주석 |
|
||
| 16 | 머리말 / 꼬리말 |
|
||
| 17 | 각주 / 미주 |
|
||
| 18 | 자동 번호 |
|
||
| 21 | 새번호/ 번호 감추기/ 번호 위치 |
|
||
| 22 | 책갈피 / 찾아보기 표시 |
|
||
| 23 | 덧말 / 글자 겹침,,, |
|
||
|
||
**예제**
|
||
|
||
1. 표, 그리기 개체, 누름틀 삽입
|
||
2. 예제 스크립트 실행 결과 : 표, 그리기 개체만 삭제된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.HeadCtrl;
|
||
while(ctrl) {
|
||
if (ctrl.CtrlCh == 11) {
|
||
// 그리기 개체 / 표
|
||
HwpCtrl.DeleteCtrl(ctrl);
|
||
}
|
||
ctrl = ctrl.Next;
|
||
}
|
||
```
|
||
|
||
#### 5.1.2 `CtrlID`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
ctrlCode.CtrlID
|
||
```
|
||
|
||
**설명**
|
||
|
||
컨트롤 ID. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 컨트롤의 ID를 String 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
컨트롤 ID는 컨트롤의 종류를 나타내기 위해 할당된 ID로서, 최대 4개의 문자로 구성된 문자열이다. 예 를 들어 표는 tbl, 각주는 fn% 이다.한글에서 현재까지 지원되는 모든 컨트롤의 ID는 다음 표 참조.
|
||
|
||
| ID | ParameterSet ID | Initialization Set | 설명 |
|
||
| --- | --- | --- | --- |
|
||
| cold | ColDef | ColDef | 단 |
|
||
| secd | SecDef | SecDef | 구역 |
|
||
| fn | FootnoteShape | FootnoteShape | 각주 |
|
||
| en | FootnoteShape | FootnoteShape | 미주 |
|
||
| tbl | Table | TableCreation | 표 |
|
||
| eqed | EqEdit | EqEdit | 수식 |
|
||
| gso | ShapeObject | ShapeObject | 그리기 개체 |
|
||
| atno | AutoNum | AutoNum | 번호넣기 |
|
||
| nwno | AutoNum | AutoNum | 새번호로 |
|
||
| pgct | PageNumCtrl | PageNumCtrl | 페이지 번호 제어 |
|
||
| pghd | PageHiding | PageHiding | 감추기 |
|
||
| pgnp | PageNumPos | PageNumPos | 쪽번호 위치 |
|
||
| head | HeaderFooter | HeaderFooter | 머리말 |
|
||
| foot | HeaderFooter | HeaderFooter | 꼬리말 |
|
||
| %dte | FieldCtrl | FieldCtrl | 현재의 날짜/시간 필드 |
|
||
| %ddt | FieldCtrl | FieldCtrl | 파일 작성 날짜/시간 필드 |
|
||
| %pat | FieldCtrl | FieldCtrl | 문서 경로 필드 |
|
||
| %bmk | FieldCtrl | FieldCtrl | 블럭 책갈피 |
|
||
| %mmg | FieldCtrl | FieldCtrl | 메일 머지 |
|
||
| %xrf | FieldCtrl | FieldCtrl | 상호 참조 |
|
||
| %fmu | FieldCtrl | FieldCtrl | 계산식 |
|
||
| %clk | FieldCtrl | FieldCtrl | 누름틀 |
|
||
| %smr | FieldCtrl | FieldCtrl | 문서 요약 정보 필드 |
|
||
| %usr | FieldCtrl | FieldCtrl | 사용자 정보 필드 |
|
||
| %hlk | FieldCtrl | FieldCtrl | 하이퍼링크 |
|
||
| bokm | TextCtrl | TextCtrl | 책갈피 |
|
||
| idxm | IndexMark | IndexMark | 찾아보기 |
|
||
| tdut | Dutmal | Dutmal | 덧말 |
|
||
| tcmt | | | 주석 |
|
||
|
||
```js
|
||
Initialization Set : HwpCtrl.InsertCtrl 에 지정할 수 있는 initparam 의 ParameterSet ID
|
||
```
|
||
|
||
**예제**
|
||
|
||
1. 표 삽입
|
||
2. 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 1pt 로 설정된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.HeadCtrl;
|
||
var tbset = HwpCtrl.CreateSet("Table");
|
||
tbset.SetItem("CellSpacing", 100);
|
||
while(ctrl) {
|
||
if (ctrl.CtrlID =="tbl") {
|
||
// 그리기 개체 / 표 ctrl.Properties = tbset;
|
||
}
|
||
ctrl = ctrl.Next;
|
||
}
|
||
```
|
||
|
||
#### 5.1.3 `Next`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
ctrlCode.Next
|
||
```
|
||
|
||
**설명**
|
||
|
||
다음 컨트롤. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 컨트롤의 뒤 컨트롤을 CtrlCode 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, list 중 다음
|
||
|
||
컨트롤을 나타낸다.
|
||
|
||
**예제**
|
||
|
||
1. 표 삽입
|
||
2. 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 1pt 로 설정된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.HeadCtrl;
|
||
var tbset = HwpCtrl.CreateSet("Table");
|
||
tbset.SetItem("CellSpacing", 100);
|
||
while(ctrl) {
|
||
if (ctrl.CtrlID =="tbl") {
|
||
// 그리기 개체 / 표 ctrl.Properties = tbset;
|
||
}
|
||
ctrl = ctrl.Next;
|
||
}
|
||
```
|
||
|
||
#### 5.1.4 `Prev`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
ctrlCode.Prev
|
||
```
|
||
|
||
**설명**
|
||
|
||
이전 컨트롤. 읽기 전용.
|
||
|
||
**반환값**
|
||
|
||
현재 컨트롤의 앞 컨트롤을 CtrlCode 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, list 중 앞 컨트롤을 나타낸다.
|
||
|
||
**예제**
|
||
|
||
1. 표 입력
|
||
2. 예제 스크립트 실행 결과 : 문서 중 모든 표의 셀 간격을 1pt 로 설정한다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.LastCtrl;
|
||
var tbset = HwpCtrl.CreateSet("Table");
|
||
tbset.SetItem("CellSpacing", 100);
|
||
while(ctrl != null) {
|
||
if(ctrl.CtrlID =="tbl") {
|
||
ctrl.Properties = tbset;
|
||
}
|
||
ctrl = ctrl.Prev;
|
||
}
|
||
```
|
||
|
||
#### 5.1.5 `Properties`
|
||
|
||
**구문**
|
||
|
||
```js
|
||
ctrlCode.Properties
|
||
```
|
||
|
||
**설명**
|
||
|
||
컨트롤의 속성을 나타낸다.
|
||
|
||
**반환값**
|
||
|
||
컨트롤의 속성을 ParameterSet 객체 타입으로 리턴한다.
|
||
|
||
**비고**
|
||
|
||
모든 컨트롤은 대응하는 ParameterSet 으로 속성을 읽고 쓸 수 있다.
|
||
|
||
**예제**
|
||
|
||
1. 표 삽입
|
||
2. 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 1pt 로 설정된다.
|
||
|
||
```js
|
||
var ctrl = HwpCtrl.HeadCtrl;
|
||
var tbset = HwpCtrl.CreateSet("Table");
|
||
tbset.SetItem("CellSpacing", 100);
|
||
while(ctrl) {
|
||
if (ctrl.CtrlID =="tbl") {
|
||
// 그리기 개체 / 표 ctrl.Properties = tbset;
|
||
}
|
||
ctrl = ctrl.Next;
|
||
}
|
||
```
|