110 KiB
레퍼런스 — 웹한글기안기 API (v3)
상위: 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
이 프로젝트에서 쓰는 범위
실무협의서 관리(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.1 Properties
1.1.1 CellShape
구문
HwpCtrl.CellShape
설명
현재 선택되어 있는 표와 셀의 모양 정보를 나타낸다.
반환값
블록된 셀 혹은, 현재 캐럿이 위치한 셀의 속성을 ParameterSet 객체 타입으로 리턴한다.
비고
ParameterSet/Table 로 표의 속성에 대한 기본 정보를 나타내며, 이 가운데 Cell 아이템이 ParameterSet/Cell 로 셀의 속성을 나타낸다. 셀 블록이 잡혀있지 않은 상태이면 현재 캐럿이 위치한 셀 하나만을 대상으로 한다. 현재 표 내부에 캐럿이 위치하지 않으면 에러가 발생한다.
예제
- 표 생성
- 셀 안으로 캐럿 이동
- 예제 스크립트 실행 결과 : 셀 간격이 2pt 로 변경된다.
var tp = HwpCtrl.CreateSet("Table");
var cp = tp.CreateItemSet("Cell", "Cell");
tp.SetItem("CellSpacing", 200);
HwpCtrl.CellShape = tp;
1.1.2 CharShape
구문
HwpCtrl.CharShape
설명
현재 Selection 된 글자의 글자 모양을 나타낸다.
반환값
블록된 구역 혹은, 현재 캐럿이 위치한 곳의 글자 모양을 ParameterSet 객체 타입으로 리턴한다.
비고
property get 을 수행하면 현재 selection 내의 글자 모양을 구할 수 있고, selection 이 존재하지 않으면 현재 캐럿이 위치한 곳의 글자 모양을 돌려준다.
글자 모양 중 특정 항목이 Selection 내에서 서로 다른 속성을 가지고 있으면 아예 아이템 자체가 존재하지 않는다. property set 을 수행하면 아이템이 존재하는 항목에 대해서만 속성을 설정한다.
ParameterSet 형식은 별도로 전달된 ParameterSet Table 문서 참고
예제
- 글자 입력
- 입력한 글자 Selection
- 예제 스크립트 실행 결과 : Selection 된 글자들의 글자 크기를 20pt 로 설정한다.
var cs = HwpCtrl.CharShape;
if (cs.ItemExist("Height")) {
cs.SetItem("Height", 2000);
HwpCtrl.CharShape = cs;
}
1.1.3 CurFieldState
구문
HwpCtrl.CurFieldState
설명
캐럿이 위치한 필드의 상태 정보를 구한다. 읽기 전용.
반환값
현재 필드 상태에 따라 Number 타입의 값을 리턴한다. Remark 참고
비고
다음과 같은 의미를 가진다.
- bit 4: 필드명 존재 여부 (
1있음,0없음) - bit 0–3: 필드 종류 (
0없음,1셀,2누름틀,4글상자)
필드명 존재 여부와 필드 종류에 따라 0–20까지의 값을 갖는다.
예제
- 누름틀 삽입 (다른 필드 삽입 가능)
- 누름틀 안으로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 선택된 필드 : 누름틀 메시지 창
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
구문
HwpCtrl.CurSelectedCtrl
설명
현재 선택된 컨트롤. 읽기 전용.
반환값
현재 선택된 컨트롤을 CtrlCode 객체 타입으로 리턴한다.
예제
- 표 삽입
- 표 선택
- 예제 스크립트 실행 결과 : 표가 삭제된다.
var ctrl = HwpCtrl.CurSelectedCtrl;
if( ctrl && ctrl.CtrlID =="tbl") {
HwpCtrl.DeleteCtrl(ctrl);
}
1.1.5 EditMode
구문
HwpCtrl.EditMode
설명
현재 편집 모드
반환값
현재 편집 모드를 Number 타입으로 리턴한다.
비고
현재 편집 모드를 나타낸다.
-
0 : 읽기 전용
-
1 : 일반 편집모드
-
2 : 양식 모드. 양식 사용자 모드 : Cell 과 누름틀 중 양식 모드에서 편집 가능 속성을 가진 것만 편집 가능하다.
-
16 : 배포용 문서
SetEditMode로 지정 불가능
예제
- EditMode 0(읽기 모드)으로 변경
- 편집시도
- EditMode 1(일반 편집 모드)으로 변경
- 편집시도
HwpCtrl.EditMode = 0;
//편집 시도
HwpCtrl.EditMode = 1;
//편집 시도
1.1.6 HeadCtrl
구문
HwpCtrl.HeadCtrl
설명
문서 중 첫 번째 컨트롤. 읽기 전용.
반환값
문서 중 첫 번째 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.
비고
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, 그 list의 시작 컨트롤을 나타낸다. 이 컨트롤로부터 시작, Ctrl.Next 를 이용해 forward iteration 을 수행할 수 있 다.
예제
- 표 입력
- 예제 스크립트 실행 결과 : 문서 중 모든 표가 삭제된다.
var ctrl = HwpCtrl.HeadCtrl;
while(ctrl != null) {
if(ctrl.CtrlID =="tbl") {
HwpCtrl.DeleteCtrl(ctrl);
}
ctrl = ctrl.Next
}
1.1.7 IsModified
구문
HwpCtrl.IsModified
설명
현재 문서가 변경되었는지 나타낸다. 이 구문은 읽기 전용입니다.
반환값
변경내용 여부를 Boolean 타입으로 리턴한다.
예제
- 새 문서 상태에서 예제 실행 후 alert 창 확인
- 편집 시도 후 예제 다시 실행 결과 : 문서가 변경되어 true 를 반환한다.
alert(HwpCtrl.IsModified)
1.1.8 IsPrivateInfoProtected
구문
HwpCtrl.IsPrivateInfoProtected
설명
현재 문서에 개인정보보호 필드가 있는지 확인한다.
반환값
현재 문서의 개인정보보호 필드 여부를 Boolean 타입으로 리턴한다.
비고
개인정보보호 필드가 있는 문서를 열어서 예제코드 실행해야 합니다.
예제
- 개인정보보호 필드가 있는 문서를 연다.
- 예제 스크립트 실행 결과 : 문서가 개인정보 필드를 가지고 있으면 true 를 반환한다.
alert(HwpCtrl.IsPrivateInfoProtected);
1.1.9 LastCtrl
구문
HwpCtrl.LastCtrl
설명
문서 중 마지막 컨트롤. 읽기 전용.
반환값
문서 중 마지막 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.
비고
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, 그 list의 마지막 컨트롤을 나타낸다. 이 컨트롤로부터 시작, Ctrl.Prev 를 이용해 backward iteration 을 수행할 수 있다.
예제
- 표 입력
- 예제 스크립트 실행 결과 : 문서 중 모든 표의 셀 간격을 1pt 로 설정한다.
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
구문
HwpCtrl.PageCount
설명
문서의 전체 페이지 수를 나타냅니다. 이 구문은 읽기 전용입니다.
반환값
문서의 페이지 수를 Number 타입으로 반환합니다.
비고
문서 전체에 대한 pagination 이 수행되지 않은 상태에서 이 property 를 참조하면 먼저 문서 전체의 pagination 을 먼저 수행하므로 긴 문서에 대해 문서 내용 변경과 참조를 반복하면 속도가 심각하게 느려질 수 있습니다.
예제
- 문서 쪽 분할
- 예제 스크립트 실행 결과: 전체 페이지 수 메시지 창
alert(HwpCtrl.PageCount);
1.1.11 ParaShape
구문
HwpCtrl.ParaShape
설명
현재 Selection 의 문단 모양을 나타낸다.
반환값
블록된 구역 혹은, 현재 캐럿이 위치한 곳의 문단 모양을 ParameterSet 객체 타입으로 리턴한다.
비고
property get 을 수행하면 현재 selection 내의 문단 모양을 구할 수 있다. selection 이 존재하지 않으면 현재 캐럿이 위치한 곳의 문단 모양을 돌려준다. 문단 모양 중 특정 항목이 selection 내에서 서로 다른 속성을 가지고 있으면 아예 아이템 자체가 존재하지 않는다. property set 을 수행하면 아이템이 존재하는 항목에 대해서만 속성을 설정한다..
ParameterSet 형식은 별도로 전달된 ParameterSet Table 문서 참고
예제
- 글자 입력
- 입력한 글자 Selection
- 예제 스크립트 실행 결과 : 현재 문단의 왼쪽 여백을 50pt 로 설정한다.
var paraShape = HwpCtrl.ParaShape;
paraShape.SetItem("LeftMargin", 10000);
HwpCtrl.ParaShape = paraShape;
1.1.12 ParentCtrl
구문
HwpCtrl.ParentCtrl
설명
현재 캐럿의 상위 컨트롤. 읽기 전용.
반환값
현재 캐럿의 상위 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.
비고
상위 컨트롤은 현재 캐럿이 위치한 리스트를 보유한 컨트롤이다. 예를 들어 셀 내부에 위치하면 표, 각 주 내용에 위치하면 각주, 바탕쪽이면 구역 컨트롤이 상위 컨트롤이다.현재 캐럿이 본문 레벨에 위치해 상위 컨트롤이 없을 때는 null 이 리턴된다.
예제
- 표 입력
- 셀로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 캐럿의 위치가 셀이라면 부모 표의 셀 간격을 1pt 로 설정한다.
var ctrl = HwpCtrl.ParentCtrl;
if (ctrl.CtrlID =="tbl") {
var tbset = HwpCtrl.CreateSet("Table");
tbset.SetItem("CellSpacing", 100);
ctrl.Properties = tbset;
}
1.1.13 ReadOnlyMode
구문
HwpCtrl.ReadOnlyMode
설명
편집모드를 읽기 전용 모드로 설정하는 기능
반환값
현재 읽기 전용모드를 Boolean 타입으로 리턴한다.
비고
property get 을 수행하면 현재 문서가 읽기 전용 모드 여부를 return 한다. return 값이 false 이면 편집 모드, true 이면 읽기 전용모드이다. property set 을 수행하면 현재 문서의 읽기 전용모드 속성을 설정한다.
예제
- ReadOnlyMode true( 읽기모드로 변경
- 편집시도
- ReadOnlyMode false( 편집 모드로 변경
- 편집시도 결과 : 편집모드와 읽기 전용 모드를 설정한다.
HwpCtrl.ReadOnlyMode = true;
//읽기모드 //편집 시도
HwpCtrl.ReadOnlyMode = false;
//편집모드 //편집 시도
1.1.14 ScrollPosInfo
구문
HwpCtrl.ScrollPosInfo
설명
스크롤바의 위치 정보를 얻어오는 기능
반환값
현재 스크롤의 위치 정보를 얻어옵니다. ScrollPosInfo 의 ParameterSet 버전.
비고
현재 스크롤바수직, 수평의 위치정보를 ScrollPosInfo ParameterSet 으로 얻어오거나 설정한다.
| 값 | 설명 |
|---|---|
| HorzPos | 수평 스크롤바 위치 |
| HorzLimitPos | 수평 스크롤바 한계 위치 값 (읽기 전용) |
| VertPos | 수직 스크롤바 위치 |
| VertLimitPos | 수직 스크롤바 한계 위치 값 (읽기 전용) |
예제
- 스크롤을 원하는 위치로 이동시킨다.
- 예제 스크립트 실행 결과: 선택된 값 메시지 창
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
구문
HwpCtrl.SelectionMode
설명
문서의 내용이 어떤 selection 상태인가를 알려줍니다. 이 구문은 읽기 전용입니다.
반환값
현재 selection 상태를 Number 타입으로 반환합니다.
비고
일반 블록이 아닌 F3키에 의해 블록이 지정된 경우,HWPSEL_STRICT_MODE 0x10(십진수 16) 으로 OR 마스크되어 오기 때문에, 항상 0x0F(십진수 15) 로 AND 마스크한 결과로 판단하도록 합니다.
| 값 | 설명 |
|---|---|
| 0 | 블록지정이 되지 않은 상태 |
| 1 | 일반 블록이거나 F3키에 의한 블록 상태 |
| 3 | 테이블 셀 블록 상태 |
| 4 | 그리기 개체나 표, 그림 등 ShapeObject 에 해당하는 컨트롤이 선택된 상태 |
예제
- 표 와 텍스트 삽입
- 텍스트 일반 블록으로 선택
- 예제 스크립트 실행 결과: 선택된 값 메시지 창
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
구문
HwpCtrl.ViewProperties
설명
View 의 상태정보를 얻어오는 기능
반환값
뷰의 상태정보를 ViewProperties ParameterSet 으로 얻어오거나 설정한다.
비고
조판 부호, 화면 확대 비율과 같은 view 에 관련된 정보를 나타낸다.
예제
- 문서의 배율을 75% 로 설정
- 예제스크립트 실행
var pset = HwpCtrl.ViewProperties;
alert(pset.Item("ZoomRatio"));
1.2 Methods
1.2.1 Clear
구문
HwpCtrl.Clear(option)
설명
현재 편집중인 문서의 내용을 닫고 빈문서 편집 상태로 돌아간다.
파라미터
option: 편집중인 문서의 내용에 대한 처리 방법. 생략하면 hwpAskSave 가 선택된다
| ID | 값 | 설명 |
|---|---|---|
| hwpDiscard | 1 | 문서 내용을 버린다. |
비고
현재는 옵션 1에 한해서만 사용할 수 있다.
예제
- 글자 입력
- 예제 스크립트 실행 결과 : 빈문서 편집 상태로 되돌린다.
HwpCtrl.Clear(1);
1.2.2 CreateAction
구문
HwpCtrl.CreateAction(ActionID)
설명
Action 객체를 생성한다.
파라미터
actionID: 액션 ID
반환값
성공 시 Action 객체를 리턴한다. 존재하지 않는 액션 ID를 입력하면 null 을 리턴한다.
비고
액션에 대한 세부적인 제어가 필요할 때 사용한다. 예를 들어 기능을 수행하지 않고 대화상자만을 띄운다든지, 대화상자 없이 지정한 옵션에 따라 기능을 수행하는 등에 사용할 수 있다. Action ID Table 은 별도 문서 참조
예제
- 글자 입력
- 입력한 글자 Selection
- 예제 스크립트 실행 결과 : Selection 된 글자들에 Bold 속성을 부여한다.
var act = HwpCtrl.CreateAction("CharShapeBold");
act.Run();
1.2.3 CreateField
구문
HwpCtrl.CreateField(direction, memo, name)
설명
캐럿의 현재 위치에 누름틀을 생성한다.
파라미터
-
direction: 입력이 안된 상태에서 보여지는 안내문/지시문 -
memo: 누름틀에 대한 설명/도움말 -
name: :누름틀 필드에 대한 필드 이름
반환값
성공이면 true, 실패면 false
비고
memo Parameter 는 ActiveX 한/글 컨트롤과 호환용으로 사용되는 Parameter 이다. 웹한글에서는 내용을 확인할 수 없으나 누름틀 저장 후 데스크탑 한/글에서 메모 내용을 확인할 수 있다.
예제
- 예제 스크립트 실행 결과 : 현재 위치에 본문 필드가 생성된다.
HwpCtrl.CreateField("본문을 입력하세요", "", "본문");
1.2.4 CreatePageImage
구문
HwpCtrl.CreatePageImage(fileName, pgno, format)
설명
지정한 페이지의 이미지를 파일로 생성한다.
파라미터
fileName: 생성할 이미지 파일의 이름pgno: 페이지 번호. 0부터 PageCount-1까지. 생략하면 0이 사용된다format: :이미지 파일의 포맷. jpg, jpeg, png% 중의 하나. 생략하면 png% 가 사용된다
반환값
성공이면 true, 실패면 false
예제
- 문서 작성 또는 문서 불러오기
- 예제 스크립트 실행 결과 : 첫 번째 페이지를 이미지로 다운로드한다.
HwpCtrl.CreatePageImage("pageimage.png", 0, "png");
1.2.5 CreatePageImageEx
구문
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 속성을 통해서 판별할 수 있습니다.
예제
- 임의의 문서 작성
- 예제 스크립트 실행 결과: 지정한 페이지를 이미지로 다운로드합니다.
HwpCtrl.CreatePageImageEx("pageimage.png", 0, 96, 24, "png", "download:true", function(result) {
console.log("다운로드 완료");
}
);
1.2.6 CreateSet
구문
HwpCtrl.CreateSet(setid)
설명
ParameterSet 객체를 생성한다.
파라미터
setid: 생성할 ParameterSet 객체의 ID
반환값
생성된 ParameterSet 객체를 리턴한다.
예제
- 표 생성
- 셀 안으로 캐럿 이동
- 예제 스크립트 실행 결과 : 셀 간격이 2pt 로 변경된다.
var tp = HwpCtrl.CreateSet("Table");
var cp = tp.CreateItemSet("Cell", "Cell");
tp.SetItem("CellSpacing", 200);
HwpCtrl.CellShape = tp;
1.2.7 DeleteCtrl
구문
HwpCtrl.DeleteCtrl(ctrl)
설명
문서 내 컨트롤을 삭제한다.
파라미터
ctrl: 삭제할 문서 내 컨트롤CtrlCode 객체)
반환값
성공이면 true, 실패면 false
예제
- 표 삽입
- 표 선택
- 예제 스크립트 실행 결과 : 표가 삭제된다.
var ctrl = HwpCtrl.CurSelectedCtrl;
if( ctrl && ctrl.CtrlID =="tbl") {
HwpCtrl.DeleteCtrl(ctrl);
}
1.2.8 FieldExist
구문
HwpCtrl.FieldExist(field)
설명
문서 중에 지정한 데이터 필드가 존재하는지 검사한다.
파라미터
field: 필드 이름
반환값
성공이면 true, 실패면 false
예제
- 누름틀 생성
- 필드이름 이름으로 지정
- 예제 스크립트 실행 결과 : 문서 내에 이름 필드가 있다면 해당 필드의 정렬을 가운데 정렬로 변경하고, 홍길동이라고 텍스트를 입력한다.
if(HwpCtrl.FieldExist("이름")) {
HwpCtrl.MoveToField("이름", true, true, true);
HwpCtrl.Run("ParagraphShapeAlignCenter");
HwpCtrl.PutFieldText("이름", "홍길동");
}
1.2.9 FoldRibbon
구문
HwpCtrl.FoldRibbon(fold)
설명
리본 메뉴를 화면에 접기/펼치기 처리한다.
파라미터
fold: 리본 메뉴 접기/펼치기 여부
반환값
성공하면 true, 실패하면 false
예제
- 예제 스크립트 실행 결과 : Ribbon 메뉴가 접혀진다.
HwpCtrl.FoldRibbon(true);
1.2.10 GetCurFieldName
구문
HwpCtrl.GetCurFieldName(option)
설명
현재 캐럿 위치의 데이터 필드 이름을 구한다.
파라미터
option: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
| ID | 값 | 설명 |
|---|---|---|
| hwpFieldCell | 1 | 셀에 부여된 필드 리스트만을 구한다. hwpFieldClickHere 와는 함께 지정할 수 없다. |
| hwpFieldClickHer e | 2 | 누름틀에 부여된 필드 리스트만을 구한다. hwpFieldCell 과는 함께 지정할 수 없다. |
반환값
필드 이름을 문자열로 리턴한다. 필드 이름이 없는 경우 빈 문자열이 돌아온다.
예제
- 누름틀 생성
- 필드이름 이름으로 지정
- 생성한 누름틀로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 필드의 이름이 이름이라면 홍길동을 입력한다.
if(HwpCtrl.GetCurFieldName(0) =="이름") {
HwpCtrl.PutFieldText("이름", "홍길동");
}
1.2.11 GetFieldList
구문
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}}" |
예제
- 필드 입력
- 예제 스크립트 실행 결과 : 성공 메시지 창
alert(HwpCtrl.GetFieldList(0));
1.2.12 GetFieldText
구문
HwpCtrl.GetFieldText(fieldlist)
설명
지정한 필드에서 문자열을 구합니다.
파라미터
fieldlist: 텍스트를 구할 필드 이름의 리스트
반환값
텍스트 데이터가 돌아옵니다. 텍스트에서 탭은 \t0x9, 문단 바뀜은 CR/LF0x0D/0x0A) 로 표현되며, 이외의 특수 코드는 포함되지 않습니다. 필드 텍스트의 끝은 0x02 로 표현되며, 그 이후 다음 필드의 텍스트가 연속해서 지정한 필드 리스트의 개수만큼 위치합니다. 지정한 이름의 필드가 없거나 사용자가 해당 필드에 아무 텍스트도 입력하지 않았으면 해당 텍스트에는 빈 문자열이 돌아옵니다.
비고
다음과 같이 필드 사이를 문자 코드 0x02 로 구분하여 한 번에 여러 개의 필드를 지정할 수 있다.필드 이름#1\x02 필드이름#2\x02... 필드이름#n2 지정한 필드 이름이 문서 중에 두 개 이상 존재할 때의 표현 방식은 다음과 같다.
| 필드이름 | 필드이름{{n}} |
|---|---|
| 이름의 필드 중 첫 번째 | 지정한 이름의 필드 중 n 번째 |
예를 들어, 제목1\x02 본문\x02 이름02 과 같이 지정하면 제목이라는 이름의 필드 중 두 번째, 본문이라는 이름의 필드 중 첫 번째, 이름이라는 이름의 필드
중 첫 번째를 각각 지정한다. 즉, 필드이름과 필드이름0 은 동일한 의미로 해석된다.
예제
- 본문 이라는 필드 생성
- Text 삽입
- 예제 스크립트 실행 결과: 본문 이라는 이름의 필드 중 첫 번째 필드의 Text 를 얻어옵니다.
alert(HwpCtrl.GetFieldText(' 본문 {
{
0
}
}
'));
1.2.13 GetHeadingString
구문
HwpCtrl.GetHeadingString()
설명
현재 캐럿이 위치한 문단의 문단번호/글머리표를 얻어냅니다.
반환값
문단번호 또는 글머리표를 String 타입으로 반환합니다.문단번호나 글머리표가 없다면 빈문자열을 반환 합니다.
예제
- 문단번호/글머리표 작성
- 예제 스크립트 실행 결과: 문단번호 또는 글머리표 메시지 창
alert("문단번호/글머리표 :"+ HwpCtrl.GetHeadingString());
1.2.14 GetMetaTag
구문
HwpCtrl.GetMetaTag(name)
설명
문서 내 메타태그 정보를 가져옵니다.
파라미터
name: 찾을 메타태그의 이름
반환값
메타태그를 찾았을 때 해당 메타태그 정보를 Object 타입으로 반환합니다. Object 의 Property 는 다음 과 같습니다. name : 메타태그의 이름 value : 메타태그의 값 format : 메타태그의 데이터 유형 메타태그가 없으면 null 을 반환합니다.
비고
hwpx 에서만 사용가능합니다.
예제
- 예제 스크립트 실행 결과: 메타태그의 정보 메시지 창
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
구문
HwpCtrl.GetMetaTagAll()
설명
문서 내 모든 메타태그 정보를 가져옵니다.
파라미터
fieldlist: 텍스트를 구할 필드 이름의 리스트
반환값
메타태그를 찾았을 때 해당 메타태그 정보를 Object 타입으로 반환합니다. Object 의 Property 는 다음 과 같습니다. name : 메타태그의 이름 value : 메타태그의 값 format : 메타태그의 데이터 유형 메타태그가 없으면 null 을 반환합니다.
비고
hwpx 에서만 사용가능합니다.
예제
- 예제 스크립트 실행 결과: 메타태그의 정보 메시지 창
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
구문
HwpCtrl.GetPageText(pageNo, option)
설명
특정 페이지의 텍스트를 얻는다.
파라미터
pageNo: 텍스트를 얻을 페이지 Numberoption: 다음과 같은 옵션을 지정할 수 있다. 생략하면 모든 컨트롤에 대해 텍스트를 얻는다. 본문 텍스트는 옵션에 관계없이 얻는다
| option | 값 | 설명 |
|---|---|---|
| 표 | 1 | 표 내부 텍스트만 얻는다. |
| 글상자 | 2 | 글상자 내부 텍스트만 얻는다. |
| 캡션 | 4 | 캡션 내부 텍스트만 얻는다. |
반환값
결과 값을 문자열로 리턴한다.
예제
- 표 입력
- 표안에 텍스트 입력
- 예제 스크립트 실행 결과 : 첫 번째 Page 의 표 내부의 Text 가 나타난다.
alert(HwpCtrl.GetPageText(0, 1));
1.2.17 GetPos
구문
HwpCtrl.GetPos()
설명
현재 캐럿의 위치 정보를 얻어온다.
반환값
캐럿 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다. list : 캐럿이 위치한 문서 내 리스트 아이디. para : 캐럿이 위치한 문단 아이디. pos : 캐럿이 위치한 문단 내 글자 단위 위치.
비고
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다.
예제
- 문서 작성
- 캐럿 이동
- GetPos API 로 현재 Pos 정보 저장
- 다른 위치로 캐럿 이동
- 3단계에서 저장한 위치로 캐럿 이동 결과 : 캐럿 위치를 저장하고, 다시 이동한다.
posObj = HwpCtrl.GetPos();
//GetPos API 로 현재 Pos 정보 저장 //... 다른 위치로 캐럿 이동
HwpCtrl.SetPos(posObj.list, posObj.para, posObj.pos);
//3단계에서 저장한 위치 로 캐럿 이동
1.2.18 GetPosBySet
구문
HwpCtrl.GetPosBySet()
설명
현재 캐럿의 위치 정보를 얻어옵니다. GetPos 의 ParameterSet 버전)
반환값
캐럿의 위치에 대한 ParameterSet 객체 타입으로 반환합니다.
예제
- 임의의 문서 작성
- 캐럿 이동
- 예제 스크립트 실행 결과: 현재 캐럿이 위치한 정보 메시지 창
var posSet = null;
posSet = HwpCtrl.GetPosBySet();
alert(posSet.Item("List") +""+ posSet.Item("Para") +""+ posSet.Item("Pos"));
1.2.19 GetSelectedPos
구문
HwpCtrl.GetSelectedPos()
설명
현재 설정된 블록의 위치 정보를 얻어온다.
반환값
현재 설정된 블록의 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다. slist : 설정된 블록의 시작 리스트 아이디. spara : 설정된 블록의 시작 문단 아이디. spos : 설정된 블록의 문단 내 시작 글자 단위 위치. slist : 설정된 블록의 끝 리스트 아이디. spara : 설정된 블록의 끝 문단 아이디. spos : 설정된 블록의 문단 내 끝 글자 단위 위치.
비고
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다. 위의 리스트란, 문단과 컨트롤들이 연결된 한/글 문서 내 구조를 뜻한다. 리스트 아이디는 문서 내 위치 정보 중 하나로서 SelectText 에 넘겨줄 때 사용한다.
예제
- 문서 작성
- 텍스트 블록
- GetSelectedPos API 로 현재 블록 Pos 정보 저장
- 블록 해제
- 3단계에서 저장한 블록 다시 블록 결과 : 현재 설정된 블록의 위치를 저장하고, 이후에 다시 그 위치의 Text 를 블록한다.
posObj = HwpCtrl.GetSelectedPos();
//GetSelectedPos API 로 현재 블록 Pos 정보 저장 //... 블록 해제
HwpCtrl.SelectText(posObj.spara, posObj.spos, posObj.epara, posObj.epos);
//3
단계에서 저장한 블록 다시 블록
1.2.20 GetSelectedPosBySet
구문
HwpCtrl.GetSelectedPosBySet(sset, eset)
설명
현재 설정된 블록의 위치 정보를 얻어옵니다. GetSelectedPos 의 ParameterSet 버전)
파라미터
sset: 설정된 블록의 시작 ParameterSet ListParaPos)eset: 설정된 블록의 끝 ParameterSet ListParaPos)
반환값
성공하면 true 를 반환하고 실패면 false 를 반환합니다.
예제
- 임의의 문서 작성
- 텍스트를 블록으로 선택
- 예제 스크립트 실행 결과: 현재 블록의 시작과 끝 얻어냅니다.
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
구문
HwpCtrl.GetTableCellAddr(type)
설명
현재 커서가 위치한 셀의 주소 정보를 얻어옵니다.
파라미터
-
type: 얻어올 주소의 type -
0 행
-
1 열
반환값
0n 까지의 행, 열을 얻어옵니다.커서가 셀에 있지 않거나, 실패하면 _1을 반환합니다.
예제
- 표 삽입
- 커서 이동
- 예제 스크립트 실행 결과: 현재 커서가 위치한 셀의 주소 메시지 창
var col = HwpCtrl.GetTableCellAddr(0);
var row = HwpCtrl.GetTableCellAddr(1);
alert("col :"+ col +", row :"+ row);
1.2.22 GetText
구문
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) 를 호출하면 된다.
예제
- 텍스트 입력
- 텍스트의 맨 앞으로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 Text 를 얻어낸다.
HwpCtrl.InitScan(0, 2);
alert(HwpCtrl.GetText().text);
HwpCtrl.ReleaseScan();
1.2.23 GetTextBySet
구문
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) 를 호출하면 됩니다.
예제
- 임의의 텍스트 입력
- 캐럿 이동
- 예제 스크립트 실행 결과: 현재 캐럿부터 줄 끝까지의 Text 를 가져옴
HwpCtrl.InitScan(0, 2);
var textSet = HwpCtrl.CreateSet('GetText');
HwpCtrl.GetTextBySet(textSet);
alert(textSet.Item("Text"));
HwpCtrl.ReleaseScan();
1.2.24 GetTextFile
구문
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 포맷에서만 리턴 값으로 받을 수 있다.)
예제
- 문서 작성
- GetTextFile API 현재 문서 데이터 저장
- Clear API 로 현재 문서 초기화
- SetTextFile API 로 저장한 문서 다시 로드 결과 : 현재 문서의 데이터를 문자열 형태로 저장하고, 다시 불러온다. callback 방식
//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 방식
// GetTextFile API 현재 문서 데이터 저장 data = await
HwpCtrl.GetTextFile("HWP", "");
// Clear API 로 현재 문서 초기화
HwpCtrl.Clear(1);
// SetTextFile API 로 저장한 문서 다시 로드 await
HwpCtrl.SetTextFile(data, "HWP", "");
1.2.25 InitScan
구문
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 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다.
예제
- 텍스트 입력
- 텍스트의 맨 앞으로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 Text 를 얻어낸다.
HwpCtrl.InitScan(0, 2);
alert(HwpCtrl.GetText().text);
HwpCtrl.ReleaseScan();
1.2.26 Insert
구문
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 에서 확인할 수 있다.
비고
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
예제
- 문서 작성
- 문서를 끼워넣을 위치로 캐럿 이동
- Insert API 로 테스트 문서 끼워넣기 결과 : 특정 위치에 문서 끼워넣기 callback 방식
// ...문서를 끼워넣을 위치로 캐럿 이동 // ... // Insert API 로 테스트 문서 끼워넣기
HwpCtrl.Insert("http://APIDOCS/testDoc/test.hwp", "HWP", "", function (res) {
console.log(res); }, null);
async await 방식
// ...문서를 끼워넣을 위치로 캐럿 이동 // ... // Insert API 로 테스트 문서 끼워넣기 await
HwpCtrl.Insert("http://APIDOCS/testDoc/test.hwp", "HWP", "");
1.2.27 InsertBackgroundPicture
구문
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
비고
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
예제
- 표 생성
- 셀안으로 캐럿 이동
- 예제 스크립트 실행 결과 : 셀에 배경이미지를 넣고, 제거한다. callback 방식
// .... 셀 내부로 캐럿 이동 // ... // 배경 이미지 삽입 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 방식
// .... 셀 내부로 캐럿 이동 // ... // 배경 이미지 삽입 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
구문
HwpCtrl.InsertCtrl(ctrlid, initparam)
설명
현재 캐럿 위치에 컨트롤을 삽입한다.
파라미터
- 캐럿 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다
ctrlid: 삽입할 컨트롤의 아이디initparam : 컨트롤의 초기 속성. 생략하면 디폴트 속성으로 생성한다
반환값
생성된 CtrlCode 객체를 리턴한다.
비고
ctrlid 에 지정할 수 있는 컨트롤 ID는 HwpCtrl.CtrlID 가 리턴하는 ID와 동일하다. 자세한 것은 Ctrl 오 브젝트 Properties 인 CtrlID 를 참조.initparam 에는 컨트롤의 초기 속성을 지정한다.
예제
- 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
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
구문
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 에서 확인할 수 있다.
비고
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
예제
- 문서 작성
- 문서를 끼워넣을 위치로 캐럿 이동
- InsertDocument API 로 테스트 문서 끼워넣기 결과 : 특정 위치에 문서 끼워넣기 callback 방식
// ...InsertDocument 끼워넣을 위치로 캐럿 이동 // ... // InsertDocument API 로 테스트 문서 끼워넣기
HwpCtrl.InsertDocument("http://APIDOCS/testDoc/test.hwp", function (res) {
console.log(res); }, null);
async await 방식
// ...문서를 끼워 넣을 위치로 캐럿 이동 // ... // InsertDocument API 로 테스트 문서 끼워넣기 await
HwpCtrl.InsertDocument("http://APIDOCS/testDoc/test.hwp", "HWP", "");
1.2.30 InsertPicture
구문
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
비고
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
예제
- 예제 스크립트 실행 결과 : 셀에 배경이미지를 넣고, 제거한다. callback 방식
HwpCtrl.InsertPicture("http://APIDOCS/testDoc/logo.png", true, 1, false, false, 0, 30, 20, function(ctrl) {
//InsertPicture 이후 동작
}
);
async await 방식
await HwpCtrl.InsertPicture("http://APIDOCS/testDoc/logo.png", true, 1, false, false, 0, 30, 20);
1.2.31 IsCommandLock
구문
HwpCtrl.IsCommandLock(actionID)
설명
특정 액션이 잠금 상태인지 여부를 조사합니다.
파라미터
actionID: 액션 ID
반환값
해당 액션이 잠금상태이면 True 를 반환하고, 잠금상태가 아니면 False 를 반환합니다.
예제
- LockCommand 를 이용해 Bold Action 을 잠금
- 예제 스크립트 실행 결과: Bold Action 잠김 여부 메시지 창
HwpCtrl.LockCommand('CharShapeBold', true);
var isCommandLock = HwpCtrl.IsCommandLock('CharShapeBold');
if(isCommandLock) {
alert('Bold Action 을실행할수없습니다.')
}
else {
alert('Bold Action 을실행할수있습니다.')
}
1.2.32 IsSpellCheckCompleted
구문
HwpCtrl.IsSpellCheckCompleted()
설명
맞춤법 검사가 완료되었는지를 판단한다.
반환값
성공 시 true, 실패 시 false
비고
기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리
턴하는 방식으로 변경되었다.
예제
- 텍스트 입력
- 예제 스크립트 실행 결과 : 맞춤법 검사가 되어 있지 않다면 맞춤법 검사를 실행한다.
if (!HwpCtrl.IsSpellCheckCompleted()) {
// 맞춤법 검사 완료 여부 체크
HwpCtrl.MovePos(2);
// 문서 시작부분으로 이동
var dact = HwpCtrl.CreateAction("SpellingCheck");
//맞춤법 검사 액션 생성
및 실행
var dset = dact.CreateSet();
dact.GetDefault(dset);
dset.SetItem("CheckStart", 1);
dact.PopupDialog(dset, function() {
//PopupDialog 이후 수행될 동작
}
, null);
}
1.2.33 LockCommand
구문
HwpCtrl.LockCommand(actionID, lock)
설명
특정 액션이 실행되지 않도록 잠급니다.
파라미터
actionID: 액션 IDlock: true 이면 액션의 실행을 lock 시키고, false 이면 unlock 시킵니다
예제
- 예제 스크립트 실행 결과: Bold Action 이 잠김
HwpCtrl.LockCommand('CharShapeBold', true);
1.2.34 ModifyFieldProperties
구문
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 | 필드를 찾을 수 없음 |
예제
- 본문 이라는 필드 생성
- 예제 스크립트 실행 결과: 본문 필드의 속성 변경
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
구문
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 는 문서를 검색하는 중에 캐럿을 이동 시키려 할 경우에만 사용이 가능하다.
예제
- 문서 작성
- 캐럿 이동
- GetPos API 로 현재 Pos 정보 저장
- 다른 위치로 캐럿 이동
- 3단계에서 저장한 위치로 캐럿 이동 결과 : 캐럿 위치를 저장하고, 다시 이동한다.
posObj = HwpCtrl.GetPos();
//GetPos API 로 현재 Pos 정보 저장 //... 다른 위치로 캐럿 이동
HwpCtrl.MovePos(0, posObj.para, posObj.pos);
//3단계에서 저장한 위치로 캐럿 이동
1.2.36 MoveToField
구문
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
비고
누름틀은 한글 메뉴 중 입력 > 개체 > 필드 입력 메뉴를 선택하면 누름틀을 만드실 수 있습니다.
예제
- 누름틀 삽입 필드 이름 본문
- MoveToField API 로 본문 필드로 이동 결과 : 특정 필드로 이동한다.
HwpCtrl.MoveToField("본문", true, true, false);
1.2.37 Open
구문
HwpCtrl.Open(path, format, arg, callback, callbackUserData)
설명
문서 파일을 연다.
파라미터
path: URL, blobformat: 문서 형식. 빈 문자열을 지정하면 자동으로 디텍트한다. 생략하면 빈 문자열이 지정된다
| 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 에서 확인할 수 있다.
비고
브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.
예제
- 예제 스크립트 실행 결과 : 휴가계 문서를 오픈한다. callback 방식
HwpCtrl.Open("http://APIDOCS/testDoc/test.hwp", "HWP", "", function (res) {
console.log(res);
}, null);
async await 방식
await HwpCtrl.Open("http://APIDOCS/testDoc/test.hwp", "HWP", "");
1.2.38 PrintDocument
구문
HwpCtrl.PrintDocument
설명
문서를 PDF 로 변환하여 보여준다.
비고
WEB 환경에서 인쇄 드라이버에 직접 접근할 수 없다.때문에 웹브라우저 상의 PDF 뷰어 혹은 로컬 PDF 뷰어를 통해서 인쇄 설정 및 인쇄를 할 수 있도록 문서를 PDF 포맷으로 변환한다.
예제
- 문서 작성
- 예제 스크립트 실행 결과 : 현재 문서가 PDF 로 변환되어 보여진다.
HwpCtrl.PrintDocument();
1.2.39 PutFieldText
구문
HwpCtrl.PutFieldText(fieldlist, textlist)
설명
지정한 필드의 내용을 채운다.
파라미터
fieldlist: 내용을 채울 필드 이름의 리스트. 한 번에 여러 개의 필드를 지정할 수 있으며, 형식은 GetFieldText 와 동일하다. 다만 필드 이름 뒤에 # 로 번호를 지정하지 않으면 해당 이름을 가진 모든 필드에 동일한 텍스트를 채워 넣는다. 즉, PutFieldText 에서는 필드이름과 필드이름0 의 의미가 다르다textlist: 필드에 채워 넣을 문자열의 리스트. 형식은 필드 리스트와 동일하게 필드의 개수만큼 텍스트를 0x02 로 구분하여 지정한다
비고
현재 필드에 입력되어 있는 내용은 지워진다. 채워진 내용의 글자모양은 필드에 지정해 놓은 글자모양을 따라간다. fieldlist 의 필드 개수와, textlist 의 텍스트 개수는 동일해야 한다. 존재하지 않는 필드에 대해서는 무시한다.
예제
- 누름틀 생성
- 필드이름 이름으로 지정
- 예제 스크립트 실행 결과 : 문서 내에 이름 필드가 있다면 해당 필드의 정렬을 가운데 정렬로 변경하고, 홍길동이라고 텍스트를 입력한다.
if(HwpCtrl.FieldExist("이름")) {
HwpCtrl.MoveToField("이름", true, true, true);
HwpCtrl.Run("ParagraphShapeAlignCenter");
HwpCtrl.PutFieldText("이름", "홍길동");
}
1.2.40 ReleaseScan
구문
HwpCtrl.ReleaseScan()
설명
InitScan() 으로 설정된 정보를 초기화 한다.
예제
- 텍스트 입력
- 텍스트의 맨 앞으로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 Text 를 얻어낸다.
HwpCtrl.InitScan(0, 2);
alert(HwpCtrl.GetText().text);
HwpCtrl.ReleaseScan();
1.2.41 RenameField
구문
HwpCtrl.RenameField(oldname, newname)
설명
지정한 필드의 이름을 바꾼다.
파라미터
oldname: 이름을 바꿀 필드 이름의 리스트. 형식은 PutFieldText 과 동일하다newname: 새로운 필드 이름의 리스트. oldname 과 동일한 개수의 필드 이름을 0x02 로 구분하여 지정한다
비고
예를 들어 oldname 에 title0\x02title1, newname 에 tt1\x02tt2 로 지정하면 첫 번째 title 은 tt1 로, 두 번째 title 은 tt2 로 변경된다. oldname 의 필드 개수와, newname 의 필드 개수는 동일해야 한다. 존재하지 않는 필드에 대해서는 무시한다.
예제
- 누름틀 입력 FieldName 이름1
- 예제 스크립트 실행 결과 : 이름1으로 지정된 누름틀의 필드이름이 이름2로 바뀐다.
HwpCtrl.RenameField(“ 이름1”, “이름2”);
1.2.42 ReplaceAction
구문
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 가 발생합니다.
예제
- 임의의 텍스트 삽입 및 선택
- 예제 스크립트 실행 결과: 진하게 클릭 시 글자모양 다이얼로그 창 표시
HwpCtrl.ReplaceAction('CharShapeBold', 'CharShape');
1.2.43 Run
구문
HwpCtrl.Run(actionID, callback, callbackUserData)
설명
액션을 실행한다.
파라미터
-
actionID: 액션 ID -
callback: 액션 실행 후 실행 될 함수 -
콜백 인자: 콜백을 호출한 Action 객체 result: 액션 실행 결과 Boolean 타입 callbackUserData: 사용자가 콜백에 전달한 데이터
-
callbackUserData: 사용자가 콜백에 전달한 데이터
예제
- 글자 입력
- 입력한 글자 Selection
- 예제 스크립트 실행 결과 : Selection 된 글자들에 Bold 속성을 부여한다. callback 방식
HwpCtrl.Run("CharShapeBold", function (res) {
console.log(res);
}
);
async await 방식
await HwpCtrl.Run("CharShapeBold");
1.2.44 SaveAs
구문
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
예제
- 문서 작성
- 예제 스크립트 실행 결과 : 현재 열려있는 문서를 다운로드 폴더에 다운로드한다. callback 방식
HwpCtrl.SaveAs("test.hwp", "HWP", "download:true", function() {
// SaveAs 실행 후 동작
}, null);
async await 방식
await HwpCtrl.SaveAs("test.hwp", "HWP", "download:true");
1.2.45 SelectText
구문
HwpCtrl.SelectText(spara, spos, epara, epos)
설명
블록을 설정한다.
파라미터
spara: 블록 시작 위치의 문단 번호spos: 블록 시작 위치의 문단 중에서 문자의 위치epara: 블록 끝 위치의 문단 번호epos: 블록 끝 위치의 문단 중에서 문자의 위치
반환값
성공하면 true, 실패하면 false
예제
- 문서 작성
- 텍스트 블록
- GetSelectedPos API 로 현재 블록 Pos 정보 저장
- 블록 해제
- 3단계에서 저장한 블록 다시 블록 결과 : 현재 설정된 블록의 위치를 저장하고, 이후에 다시 그 위치의 Text 를 블록한다.
posObj = HwpCtrl.GetSelectedPos();
//GetSelectedPos API 로 현재 블록 Pos 정보 저장 //... 블록 해제
HwpCtrl.SelectText(posObj.spara, posObj.spos, posObj.epara, posObj.epos);
//3
단계에서 저장한 블록 다시 블록
1.2.46 SetCurFieldName
구문
HwpCtrl.SetCurFieldName(fieldname, option, direction, memo)
설명
현재 캐럿 위치의 데이터 필드 이름을 설정한다.
파라미터
fieldname: 데이터 필드 이름option: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다direction: 누름틀 필드의 안내문. 누름틀 필드일 때만 유효하다memo: 누름틀 필드의 메모. 누름틀 필드일 때만 유효하다
반환값
성공하면 true, 실패하면 false
예제
- 누름틀 생성
- 생성한 누름틀로 캐럿 이동
- 예제 스크립트 실행 결과 : 현재 필드의 이름을 이름으로 설정하고 이름 필드에 홍길동을 입력한다.
HwpCtrl.SetCurFieldName("이름");
if(HwpCtrl.GetCurFieldName(0) =="이름") {
HwpCtrl.PutFieldText("이름", "홍길동");
}
1.2.47 SetMetaTag
구문
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 에서만 사용가능합니다.
예제
- 예제 스크립트 실행 결과: 현재 문서에 메타태그 정보를 삽입합니다.
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
구문
HwpCtrl.SetPos(list, para, pos)
설명
캐럿을 문서 내 특정 위치로 위치시킨다.
파라미터
list: 캐럿이 위치할 문서 내 리스트 아이디para: 캐럿이 위치할 문단 아이디pos: 캐럿이 위치할 문단 내 글자 단위 위치
반환값
성공 시 true, 실패 시 false
예제
- 문서 작성
- 캐럿 이동
- GetPos API 로 현재 Pos 정보 저장
- 다른 위치로 캐럿 이동
- 3단계에서 저장한 위치로 캐럿 이동 결과 : 캐럿 위치를 저장하고, 다시 이동한다.
posObj = HwpCtrl.GetPos();
//GetPos API 로 현재 Pos 정보 저장 //... 다른 위치로 캐럿 이동
HwpCtrl.SetPos(posObj.list, posObj.para, posObj.pos);
//3단계에서 저장한 위치로 캐럿 이동
1.2.49 SetPosBySet
구문
HwpCtrl.SetPosBySet(pos)
설명
캐럿을 문서 내 특정 위치로 위치시킵니다. SetPos 의 ParameterSet 버전)
파라미터
pos: 캐럿의 위치에 대한 ParameterSet
반환값
성공하면 true 를 반환하고, 실패하면 false 를 반환합니다.
예제
- 임의의 텍스트 작성
- 예제 스크립트 실행
- 현재 커서의 위치 메시지창 출력
- 1초 후 왼쪽으로 2칸 이동된 커서의 위치 메시지창 출력 결과: 커서 위치를 이동
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)
}
SetPosTest(); CursorMove();
1.2.50 SetTextFile
구문
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 에 서 확인할 수 있다.
예제
- 문서 작성
- GetTextFile API 현재 문서 데이터 저장
- Clear API 로 현재 문서 초기화
- SetTextFile API 로 저장한 문서 다시 로드 결과 : 현재 문서의 데이터를 문자열 형태로 저장하고, 다시 불러온다. callback 방식
// 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 방식
// GetTextFile API 현재 문서 데이터 저장 data = await
HwpCtrl.GetTextFile("HWP", "");
HwpCtrl.Clear(1);
// Clear API 로 현재 문서 초기화 // SetTextFile API 로 저장한 문서 다시 로드 await
HwpCtrl.SetTextFile(data, "HWP", "");
1.2.51 ShowCaret
구문
HwpCtrl.ShowCaret(show)
설명
캐럿을 숨김/보이기 처리한다.
파라미터
show: 캐럿 표시 여부
예제
- 예제 스크립트 실행 결과 : 캐럿이 숨겨진다.
HwpCtrl.ShowCaret(false);
1.2.52 ShowHorizontalScroll
구문
HwpCtrl.ShowHorizontalScroll(show)
설명
가로 스크롤을 화면에 숨김/보이기 처리한다.
파라미터
show: 가로 스크롤 표시 여부
반환값
성공하면 true, 실패하면 false
예제
- 예제 스크립트 실행 결과 : 가로 스크롤이 감춰진다.
HwpCtrl.ShowHorizontalScroll(false);
1.2.53 ShowRibbon
구문
HwpCtrl.ShowRibbon(show)
설명
리본 메뉴를 화면에 숨김/보이기 처리한다.
파라미터
show: 캐럿 표시 여부
반환값
성공하면 true, 실패하면 false
예제
- 예제 스크립트 실행 결과 : Ribbon 메뉴가 감춰진다.
HwpCtrl.ShowRibbon(false);
1.2.54 ShowStatusBar
구문
HwpCtrl.ShowStatusBar(show)
설명
상태바를 화면에 숨김/보이기 처리한다.
파라미터
show: 상태바 표시 여부
반환값
성공하면 true, 실패하면 false
예제
- 예제 스크립트 실행 결과 : 상태바가 감춰진다.
HwpCtrl.ShowStatusBar(false);
1.2.55 ShowToolBar
구문
HwpCtrl.ShowStatusBar(show)
설명
툴바 메뉴를 화면에 숨김/보이기 처리한다.
파라미터
show: 상태바 표시 여부
반환값
성공하면 true, 실패하면 false
예제
- 예제 스크립트 실행 결과 : 툴바 메뉴가가 감춰진다.
HwpCtrl.ShowToolBar(false);
1.2.56 ShowVerticalScroll
구문
HwpCtrl.ShowVerticalScroll(show)
설명
세로 스크롤을 화면에 숨김/보이기 처리한다.
파라미터
show: 세로 스크롤 표시 여부
반환값
성공하면 true, 실패하면 false
예제
- 예제 스크립트 실행 결과 : 세로 스크롤이 감춰진다.
HwpCtrl.ShowVerticalScroll(false);
2. HwpAction
2.1 Properties
2.1.1 ActID
구문
act.ActID
설명
액션 ID를 나타낸다. 읽기 전용.액션 ID의 종류 및 설명은 별도 문서 참조.
반환값
ActionID 를 String 타입으로 return 한다.
예제
- 예제 스크립트 실행 결과 : CharShapeBold ActionID 메시지 창
var act = HwpCtrl.CreateAction("CharShapeBold");
alert("Action ID :"+ act.ActID);
2.1.2 SetID
구문
act.SetID
설명
액션이 사용하는 parameter set ID를 나타낸다. 읽기 전용.액션 ID의 종류 및 설명은 별도 문서 참조.
반환값
액션이 사용하는 SetID 를 String 타입으로 return 한다.
예제
- 예제 스크립트 실행 결과 : CharShapeBold 액션의 SetID 메시지 창
var act = HwpCtrl.CreateAction("CharShapeBold");
alert("Set ID :"+ act.SetID);
2.2 Methods
2.2.1 CreateSet
구문
act.CreateSet()
설명
액션과 대응하는 ParameterSet 객체를 생성한다.
반환값
성공 시 ParameterSet 객체를 return 한다.ParameterSet 을 사용하지 않는 Action 은 null 객체를 리 턴한다.
예제
- 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
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
구문
act.GetDefault(param)
설명
현재 상태에 따라 액션 실행에 필요한 인수를 구한다.액션 ID의 종류 및 설명은 별도 문서 참조.
파라미터
param: 인수를 저장할 ParameterSet 객체
반환값
성공 시 true, 실패 시 false
비고
예를 들어 글자모양의 액션의 경우, 현재 셀렉션 상태에 따라 param 의 아이템들이 채워진다.서브셋을 만들 경우에는 서브셋을 만든 후에 GetDefault 를 사용한다.
예제
- 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
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
구문
act.PopupDialog(param, callback, callbackUserData)
설명
액션의 대화상자를 띄운다.
파라미터
-
param: 액션의 실행을 제어할 인수. parameterSet 의 종류와 아이템의 의미는 액션이 정의한 바에 따라 다르다 -
callback: PopupDialog 동작을 마친 후 수행될 함수 -
action: 콜백을 호출한 Action 객체
-
param: 액션으로 전달된 ParameterSet 객체
-
result: 대화상자 버튼 클릭 결과 true: 설정버튼, false: 취소버튼)
-
callbackUserData: 사용자가 콜백에 전달한 데이터
-
callbackUserData: 사용자가 콜백에 전달한 데이터
반환값
성공 시 true, 실패 시 false
예제
- 예제 스크립트 실행 결과 : 글자 속성 대화상자를 띄운다.
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
구문
act.Execute(param, callback, callbackUserData)
설명
지정한 인수로 액션을 실행한다.
파라미터
-
param: 액션의 실행을 제어할 인수. parameterSet 의 종류와 아이템의 의미는 액션이 정의한 바에 따라 다르다 -
callback: Execute 동작 수행 후 실행될 함수 -
action: 콜백을 호출한 Action 객체
-
param: 액션으로 전달된 ParameterSet 객체
-
result: 액션 실행 결과 true: 액션 성공, false: 액션 실패)
-
callbackUserData: 사용자가 콜백에 전달한 데이터
-
callbackUserData: 사용자가 콜백에 전달한 데이터
반환값
성공 시 true, 실패 시 false
예제
- 예제 스크립트 실행 결과 : 5x5 크기의 표를 삽입한다.
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
구문
act.Run()
설명
액션을 실행한다.
파라미터
-
param: 액션의 실행을 제어할 인수. parameterSet 의 종류와 아이템의 의미는 액션이 정의한 바에 따라 다르다 -
callback: Run 동작을 마친 후 수행될 함수 -
action: 콜백을 호출한 Action 객체
-
param: 액션으로 전달된 ParameterSet 객체
-
result: 대화상자 버튼 클릭 결과 true: 설정버튼, false: 취소버튼)
-
callbackUserData: 사용자가 콜백에 전달한 데이터
-
callbackUserData: 사용자가 콜백에 전달한 데이터
반환값
성공 시 true, 실패 시 false
예제
- 텍스트 입력
- 예제 스크립트 실행 결과 : Bold Action 실행대화상자가 없는 액션은 동기 방식으로 실행한다.)
var act = HwpCtrl.CreateAction("CharShapeBold");
// 액션 생성
act.Run();
//액션 실행;
3. HwpParameterSet
3.1 Properties
3.1.1 Count
구문
pset.Count
설명
현재 존재하는 아이템의 개수를 나타낸다. 읽기 전용.
반환값
아이템 개수를 Number 타입으로 리턴한다.
예제
- 예제 스크립트 실행 결과 : 서브 셋 아이템 수 안내창
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
구문
pset.IsSet
설명
ParameterSet 타입인지 여부를 나타낸다. 읽기 전용.
반환값
ParameterSet 인 경우 true, ParameterArray 인 경우 false 를 리턴한다.
예제
- 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
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
구문
pset.SetID
설명
ParameterSet 의 ID를 나타낸다. 읽기 전용.
파라미터
itemid: 아이템 ID
반환값
Set ID를 String 타입으로 리턴한다.
예제
결과 : SetID 안내창 TableCreate Action SetID : TableCreation)
var tbact = HwpCtrl.CreateAction("TableCreate");
var tbset = tbact.CreateSet();
alert("TableCreate Action SetID :"+ tbset.SetID);
3.2 Methods
3.2.1 Clone
구문
pset.Clone()
설명
ParameterSet 을 복사한다.
반환값
동일한 데이터를 가진 ParameterSet 을 복사하여 ParameterSet 객체 타입으로 리턴한다.
비고
동일한 ID를 가진 기존의 아이템은 삭제된다.
예제
- 예제 스크립트 실행 결과 : 복사한 아이템이 동일한 지 여부 안내창
var charShapeSet = HwpCtrl.CharShape;
var cloneSet = charShapeSet.Clone();
if(cloneSet.IsEquivalent(charShapeSet)) {
alert("동일");
}
3.2.2 CreateItemArray
구문
pset.CreateItemArray(itemid, count)
설명
아이템으로 ParameterArray 타입의 배열을 생성한다.
파라미터
itemid: 아이템IDcount: 생성할 배열의 초기 크기
반환값
인자에 따라 ParameterArray 를 생성하고, ParameterArray 객체 타입으로 리턴한다.
비고
동일한 ID를 가진 기존의 아이템은 삭제된다.
예제
- 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
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
구문
pset.CreateItemSet(itemid, setid)
설명
아이템으로 ParameterSet 을 생성한다.
파라미터
itemid: 아이템IDsetid: 생성할 ParameterSet 의 ID
반환값
생성된 서브 셋을 ParameterSet 객체 타입으로 리턴한다.
비고
parameter set 내부에 아이템으로 또 다른 parameter set 을 가지는 서브 셋의 개념이다.
예제
- 예제 스크립트 실행 결과 : 문서 전체 용지의 속성이 변경된다.
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
구문
pset.GetIntersection(srcset)
설명
두 ParameterSet 에 공통적으로 존재하고, 값도 동일한 아이템만으로 구성된 교집합으로 this 를 구성한다.
파라미터
srcset: this 와 srcset 의 교집합이 this 에 저장된다
예제
- 텍스트 입력 후 글자 블록
- 예제 스크립트 실행 결과 : 블록된 텍스트의 글자 크기 속성을 제거하고 글자 크기를 10으로 다시 지정한다.
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
구문
pset.IsEquivalent(srcset)
설명
두 ParameterSet 의 내용이 동일한 값을 가지고 있는지 검사한다.
파라미터
srcset: this 와 srcset 을 비교한 결과를 리턴한다
반환값
동일하면 true, 다르면 false
예제
- 예제 스크립트 실행 결과 : 복사한 아이템이 동일한 지 여부 안내창
var charShapeSet = HwpCtrl.CharShape;
var cloneSet = charShapeSet.Clone();
if(cloneSet.IsEquivalent(charShapeSet)) {
alert("동일");
}
3.2.6 Item
구문
pset.Item(itemid)
설명
지정한 아이템의 값을 리턴한다.
파라미터
itemid: 아이템 ID
반환값
아이템의 값, 만약 지정한 아이템이 존재하지 않으면 아이템의 포맷에 따라 0 또는 빈 문자열을 리턴한다.
예제
- 글자 입력
- 입력한 글자 Selection
- 예제 스크립트 실행 결과 : 만약 Selection 된 글자들의 글자 크기가 동일하고 20pt 미만이면 글자 크기를 20pt 로 설정한다.
var cs = HwpCtrl.CharShape;
if (cs.ItemExist("Height") && cs.Item("Height") < 2000) {
cs.SetItem("Height", 2000);
HwpCtrl.CharShape = cs;
}
3.2.7 ItemExist
구문
pset.ItemExist(itemid)
설명
지정한 아이템이 존재하는지 검사한다.
파라미터
itemid: 아이템 ID
반환값
존재하면 true, 존재하지 않으면 false
예제
- 글자 입력
- 입력한 글자 Selection
- 예제 스크립트 실행 결과 : 만약 Selection 된 글자들의 글자 크기가 동일하고 20pt 미만이면 글자 크기를 20pt 로 설정한다.
var cs = HwpCtrl.CharShape;
if (cs.ItemExist("Height") && cs.Item("Height") < 2000) {
cs.SetItem("Height", 2000);
HwpCtrl.CharShape = cs;
}
3.2.8 Merge
구문
pset.Merge(srcset)
설명
두 ParameterSet 에 내용을 병합한다, 결과는 this 와 srcset 의 합집합이 this 에 저장된다.
파라미터
srcset: this 와 srcset 이 병합되어 this 에 저장된다
예제
- 텍스트 입력 후 글자 블록
- 예제 스크립트 실행 결과 : ParameterSet 의 아이템을 제거하고, 병합한다.
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
구문
pset.RemoveAll(setID)
설명
ParameterSet 을 초기화한다.
파라미터
setid: 새로 적용할 Set ID
비고
이미 존재하는 ParameterSet 객체를 이용해 새로운 타입의 ParameterSet 으로 초기화하여 재사용하는 목적에 사용된다.
예제
- 텍스트 입력 후 글자 블록
- 예제 스크립트 실행 결과 : ParameterSet 의 아이템을 제거하고, 병합한다.
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
구문
pset.RemoveItem(itemid)
설명
지정한 아이템을 삭제한다.
파라미터
itemid: 아이템 ID
예제
- 텍스트 입력 후 글자 블록
- 예제 스크립트 실행 결과 : 블록된 텍스트의 글자 크기 속성을 제거하고 글자 크기를 10으로 다시 지정한다.
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
구문
pset.SetItem(itemid, value)
설명
지정한 아이템의 값을 설정한다.
파라미터
itemid: 아이템 IDvalue: 설정할 값
비고
이미 동일한 ID의 아이템이 존재하면 지정한 값으로 바뀌고, 존재하지 않으면 아이템이 생성된다.
예제
- 예제 스크립트 실행 결과 : 문서 전체 용지의 속성이 변경된다.
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
구문
itemArray.Count
설명
배열의 크기를 나타낸다.
반환값
배열의 크기를 Number 타입으로 리턴한다.
비고
배열의 크기는 Runtime 에 동적으로 조절할 수 있다.
예제
- 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
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
구문
itemArray.IsSet
설명
ParameterSet 타입인지 여부를 나타낸다. 읽기 전용.
반환값
ParameterSet 인 경우 true, ParameterArray 인 경우 false 를 리턴한다.
예제
- 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
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
구문
itemArray.Clone()
설명
동일한 크기와 데이터를 갖는 ParameterArray 개체를 복사하여 리턴한다.
반환값
성공 시 복사된 ParameterArray 객체를 리턴한다.실패 시 null 을 리턴한다.
예제
결과 : Clone, Copy 결과 안내창
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
구문
itemArray.Copy(srcarray)
설명
인자로 들어온 ParameterArray 의 내용을 복사한다.
파라미터
srcarray: srcarray 의 내용이 그대로 this 로 복사된다
예제
결과 : Clone, Copy 결과 안내창
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
구문
itemArray.Item(index)
설명
지정한 아이템의 값을 리턴한다.
파라미터
index: 아이템 인덱스. 0부터 시작한다
반환값
index 에 해당하는 아이템의 값을 리턴한다.
예제
- 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
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
구문
itemArray.SetItem(index, value)
설명
지정한 원소의 값을 설정한다.
파라미터
index: 아이템의 인덱스. 0부터 시작.value : 아이템의 값
예제
- 예제 스크립트 실행 결과 : 5 * 5 표를 삽입하고, Width, Height 를 조작한다.
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
구문
ctrlCode.CtrlCh
설명
컨트롤 문자. 읽기 전용.
반환값
현재 컨트롤의 컨트롤 문자를 Number 타입으로 리턴한다.
비고
일반적으로 컨트롤 ID를 사용해 컨트롤의 종류를 판별하지만, 이보다 더 포괄적인 범주를 나타내는 컨 트롤 문자로 판별할 수도 있다. 예를 들어 각주와 미주는 ID는 다르지만, 컨트롤 문자는 17로 동일하다. 컨트롤 문자는 131 사이의 값을 사용한다. 그 중 CtrlCode 객체로 리턴 받을 수 있는 문자는 다음과 같다.
| Ch | 설명 |
|---|---|
| 2 | 구역/단 정의 |
| 3 | 필드 시작 |
| 11 | 그리기 개체 / 표 |
| 15 | 주석 |
| 16 | 머리말 / 꼬리말 |
| 17 | 각주 / 미주 |
| 18 | 자동 번호 |
| 21 | 새번호/ 번호 감추기/ 번호 위치 |
| 22 | 책갈피 / 찾아보기 표시 |
| 23 | 덧말 / 글자 겹침,,, |
예제
- 표, 그리기 개체, 누름틀 삽입
- 예제 스크립트 실행 결과 : 표, 그리기 개체만 삭제된다.
var ctrl = HwpCtrl.HeadCtrl;
while(ctrl) {
if (ctrl.CtrlCh == 11) {
// 그리기 개체 / 표
HwpCtrl.DeleteCtrl(ctrl);
}
ctrl = ctrl.Next;
}
5.1.2 CtrlID
구문
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 | 주석 |
Initialization Set : HwpCtrl.InsertCtrl 에 지정할 수 있는 initparam 의 ParameterSet ID
예제
- 표 삽입
- 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 1pt 로 설정된다.
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
구문
ctrlCode.Next
설명
다음 컨트롤. 읽기 전용.
반환값
현재 컨트롤의 뒤 컨트롤을 CtrlCode 객체 타입으로 리턴한다.
비고
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, list 중 다음
컨트롤을 나타낸다.
예제
- 표 삽입
- 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 1pt 로 설정된다.
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
구문
ctrlCode.Prev
설명
이전 컨트롤. 읽기 전용.
반환값
현재 컨트롤의 앞 컨트롤을 CtrlCode 객체 타입으로 리턴한다.
비고
문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, list 중 앞 컨트롤을 나타낸다.
예제
- 표 입력
- 예제 스크립트 실행 결과 : 문서 중 모든 표의 셀 간격을 1pt 로 설정한다.
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
구문
ctrlCode.Properties
설명
컨트롤의 속성을 나타낸다.
반환값
컨트롤의 속성을 ParameterSet 객체 타입으로 리턴한다.
비고
모든 컨트롤은 대응하는 ParameterSet 으로 속성을 읽고 쓸 수 있다.
예제
- 표 삽입
- 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 1pt 로 설정된다.
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;
}