Files
frontend/apps/as/docs/pwrk-cnsltn/ref-webhwp-api.md
T

110 KiB
Raw Blame History

레퍼런스 — 웹한글기안기 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 로 셀의 속성을 나타낸다. 셀 블록이 잡혀있지 않은 상태이면 현재 캐럿이 위치한 셀 하나만을 대상으로 한다. 현재 표 내부에 캐럿이 위치하지 않으면 에러가 발생한다.

예제

  1. 표 생성
  2. 셀 안으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 셀 간격이 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 문서 참고

예제

  1. 글자 입력
  2. 입력한 글자 Selection
  3. 예제 스크립트 실행 결과 : 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까지의 값을 갖는다.

예제

  1. 누름틀 삽입 (다른 필드 삽입 가능)
  2. 누름틀 안으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 현재 선택된 필드 : 누름틀 메시지 창
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 객체 타입으로 리턴한다.

예제

  1. 표 삽입
  2. 표 선택
  3. 예제 스크립트 실행 결과 : 표가 삭제된다.
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로 지정 불가능

예제

  1. EditMode 0(읽기 모드)으로 변경
  2. 편집시도
  3. EditMode 1(일반 편집 모드)으로 변경
  4. 편집시도
HwpCtrl.EditMode = 0;
//편집 시도
HwpCtrl.EditMode = 1;
//편집 시도

1.1.6 HeadCtrl

구문

HwpCtrl.HeadCtrl

설명

문서 중 첫 번째 컨트롤. 읽기 전용.

반환값

문서 중 첫 번째 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.

비고

문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, 그 list의 시작 컨트롤을 나타낸다. 이 컨트롤로부터 시작, Ctrl.Next 를 이용해 forward iteration 을 수행할 수 있 다.

예제

  1. 표 입력
  2. 예제 스크립트 실행 결과 : 문서 중 모든 표가 삭제된다.
var ctrl = HwpCtrl.HeadCtrl;
while(ctrl != null) {
  if(ctrl.CtrlID =="tbl") {
    HwpCtrl.DeleteCtrl(ctrl);
  }
ctrl = ctrl.Next
}

1.1.7 IsModified

구문

HwpCtrl.IsModified

설명

현재 문서가 변경되었는지 나타낸다. 이 구문은 읽기 전용입니다.

반환값

변경내용 여부를 Boolean 타입으로 리턴한다.

예제

  1. 새 문서 상태에서 예제 실행 후 alert 창 확인
  2. 편집 시도 후 예제 다시 실행 결과 : 문서가 변경되어 true 를 반환한다.
alert(HwpCtrl.IsModified)

1.1.8 IsPrivateInfoProtected

구문

HwpCtrl.IsPrivateInfoProtected

설명

현재 문서에 개인정보보호 필드가 있는지 확인한다.

반환값

현재 문서의 개인정보보호 필드 여부를 Boolean 타입으로 리턴한다.

비고

개인정보보호 필드가 있는 문서를 열어서 예제코드 실행해야 합니다.

예제

  1. 개인정보보호 필드가 있는 문서를 연다.
  2. 예제 스크립트 실행 결과 : 문서가 개인정보 필드를 가지고 있으면 true 를 반환한다.
alert(HwpCtrl.IsPrivateInfoProtected);

1.1.9 LastCtrl

구문

HwpCtrl.LastCtrl

설명

문서 중 마지막 컨트롤. 읽기 전용.

반환값

문서 중 마지막 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.

비고

문서 중의 모든 컨트롤(표, 그림 등 특수 문자)들은 linked list 로 서로 연결되어 있는데, 그 list의 마지막 컨트롤을 나타낸다. 이 컨트롤로부터 시작, Ctrl.Prev 를 이용해 backward iteration 을 수행할 수 있다.

예제

  1. 표 입력
  2. 예제 스크립트 실행 결과 : 문서 중 모든 표의 셀 간격을 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 을 먼저 수행하므로 긴 문서에 대해 문서 내용 변경과 참조를 반복하면 속도가 심각하게 느려질 수 있습니다.

예제

  1. 문서 쪽 분할
  2. 예제 스크립트 실행 결과: 전체 페이지 수 메시지 창
alert(HwpCtrl.PageCount);

1.1.11 ParaShape

구문

HwpCtrl.ParaShape

설명

현재 Selection 의 문단 모양을 나타낸다.

반환값

블록된 구역 혹은, 현재 캐럿이 위치한 곳의 문단 모양을 ParameterSet 객체 타입으로 리턴한다.

비고

property get 을 수행하면 현재 selection 내의 문단 모양을 구할 수 있다. selection 이 존재하지 않으면 현재 캐럿이 위치한 곳의 문단 모양을 돌려준다. 문단 모양 중 특정 항목이 selection 내에서 서로 다른 속성을 가지고 있으면 아예 아이템 자체가 존재하지 않는다. property set 을 수행하면 아이템이 존재하는 항목에 대해서만 속성을 설정한다..

ParameterSet 형식은 별도로 전달된 ParameterSet Table 문서 참고

예제

  1. 글자 입력
  2. 입력한 글자 Selection
  3. 예제 스크립트 실행 결과 : 현재 문단의 왼쪽 여백을 50pt 로 설정한다.
var paraShape = HwpCtrl.ParaShape;
paraShape.SetItem("LeftMargin", 10000);
HwpCtrl.ParaShape = paraShape;

1.1.12 ParentCtrl

구문

HwpCtrl.ParentCtrl

설명

현재 캐럿의 상위 컨트롤. 읽기 전용.

반환값

현재 캐럿의 상위 컨트롤을 HwpCtrlCode 객체 타입으로 리턴한다.

비고

상위 컨트롤은 현재 캐럿이 위치한 리스트를 보유한 컨트롤이다. 예를 들어 셀 내부에 위치하면 표, 각 주 내용에 위치하면 각주, 바탕쪽이면 구역 컨트롤이 상위 컨트롤이다.현재 캐럿이 본문 레벨에 위치해 상위 컨트롤이 없을 때는 null 이 리턴된다.

예제

  1. 표 입력
  2. 셀로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 현재 캐럿의 위치가 셀이라면 부모 표의 셀 간격을 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 을 수행하면 현재 문서의 읽기 전용모드 속성을 설정한다.

예제

  1. ReadOnlyMode true( 읽기모드로 변경
  2. 편집시도
  3. ReadOnlyMode false( 편집 모드로 변경
  4. 편집시도 결과 : 편집모드와 읽기 전용 모드를 설정한다.
HwpCtrl.ReadOnlyMode = true;
//읽기모드 //편집 시도
HwpCtrl.ReadOnlyMode = false;
//편집모드 //편집 시도

1.1.14 ScrollPosInfo

구문

HwpCtrl.ScrollPosInfo

설명

스크롤바의 위치 정보를 얻어오는 기능

반환값

현재 스크롤의 위치 정보를 얻어옵니다. ScrollPosInfo 의 ParameterSet 버전.

비고

현재 스크롤바수직, 수평의 위치정보를 ScrollPosInfo ParameterSet 으로 얻어오거나 설정한다.

값 설명
HorzPos 수평 스크롤바 위치
HorzLimitPos 수평 스크롤바 한계 위치 값 (읽기 전용)
VertPos 수직 스크롤바 위치
VertLimitPos 수직 스크롤바 한계 위치 값 (읽기 전용)

예제

  1. 스크롤을 원하는 위치로 이동시킨다.
  2. 예제 스크립트 실행 결과: 선택된 값 메시지 창
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 에 해당하는 컨트롤이 선택된 상태

예제

  1. 표 와 텍스트 삽입
  2. 텍스트 일반 블록으로 선택
  3. 예제 스크립트 실행 결과: 선택된 값 메시지 창
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 에 관련된 정보를 나타낸다.

예제

  1. 문서의 배율을 75% 로 설정
  2. 예제스크립트 실행
var pset = HwpCtrl.ViewProperties;
alert(pset.Item("ZoomRatio"));

1.2 Methods

1.2.1 Clear

구문

HwpCtrl.Clear(option)

설명

현재 편집중인 문서의 내용을 닫고 빈문서 편집 상태로 돌아간다.

파라미터

  • option: 편집중인 문서의 내용에 대한 처리 방법. 생략하면 hwpAskSave 가 선택된다
ID 값 설명
hwpDiscard 1 문서 내용을 버린다.

비고

현재는 옵션 1에 한해서만 사용할 수 있다.

예제

  1. 글자 입력
  2. 예제 스크립트 실행 결과 : 빈문서 편집 상태로 되돌린다.
HwpCtrl.Clear(1);

1.2.2 CreateAction

구문

HwpCtrl.CreateAction(ActionID)

설명

Action 객체를 생성한다.

파라미터

  • actionID: 액션 ID

반환값

성공 시 Action 객체를 리턴한다. 존재하지 않는 액션 ID를 입력하면 null 을 리턴한다.

비고

액션에 대한 세부적인 제어가 필요할 때 사용한다. 예를 들어 기능을 수행하지 않고 대화상자만을 띄운다든지, 대화상자 없이 지정한 옵션에 따라 기능을 수행하는 등에 사용할 수 있다. Action ID Table 은 별도 문서 참조

예제

  1. 글자 입력
  2. 입력한 글자 Selection
  3. 예제 스크립트 실행 결과 : 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 이다. 웹한글에서는 내용을 확인할 수 없으나 누름틀 저장 후 데스크탑 한/글에서 메모 내용을 확인할 수 있다.

예제

  1. 예제 스크립트 실행 결과 : 현재 위치에 본문 필드가 생성된다.
HwpCtrl.CreateField("본문을 입력하세요", "", "본문");

1.2.4 CreatePageImage

구문

HwpCtrl.CreatePageImage(fileName, pgno, format)

설명

지정한 페이지의 이미지를 파일로 생성한다.

파라미터

  • fileName: 생성할 이미지 파일의 이름
  • pgno: 페이지 번호. 0부터 PageCount-1까지. 생략하면 0이 사용된다
  • format: :이미지 파일의 포맷. jpg, jpeg, png% 중의 하나. 생략하면 png% 가 사용된다

반환값

성공이면 true, 실패면 false

예제

  1. 문서 작성 또는 문서 불러오기
  2. 예제 스크립트 실행 결과 : 첫 번째 페이지를 이미지로 다운로드한다.
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 속성을 통해서 판별할 수 있습니다.

예제

  1. 임의의 문서 작성
  2. 예제 스크립트 실행 결과: 지정한 페이지를 이미지로 다운로드합니다.
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 객체를 리턴한다.

예제

  1. 표 생성
  2. 셀 안으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 셀 간격이 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

예제

  1. 표 삽입
  2. 표 선택
  3. 예제 스크립트 실행 결과 : 표가 삭제된다.
var ctrl = HwpCtrl.CurSelectedCtrl;
if( ctrl && ctrl.CtrlID =="tbl") {
  HwpCtrl.DeleteCtrl(ctrl);
}

1.2.8 FieldExist

구문

HwpCtrl.FieldExist(field)

설명

문서 중에 지정한 데이터 필드가 존재하는지 검사한다.

파라미터

  • field: 필드 이름

반환값

성공이면 true, 실패면 false

예제

  1. 누름틀 생성
  2. 필드이름 이름으로 지정
  3. 예제 스크립트 실행 결과 : 문서 내에 이름 필드가 있다면 해당 필드의 정렬을 가운데 정렬로 변경하고, 홍길동이라고 텍스트를 입력한다.
if(HwpCtrl.FieldExist("이름")) {
  HwpCtrl.MoveToField("이름", true, true, true);
  HwpCtrl.Run("ParagraphShapeAlignCenter");
  HwpCtrl.PutFieldText("이름", "홍길동");
}

1.2.9 FoldRibbon

구문

HwpCtrl.FoldRibbon(fold)

설명

리본 메뉴를 화면에 접기/펼치기 처리한다.

파라미터

  • fold: 리본 메뉴 접기/펼치기 여부

반환값

성공하면 true, 실패하면 false

예제

  1. 예제 스크립트 실행 결과 : Ribbon 메뉴가 접혀진다.
HwpCtrl.FoldRibbon(true);

1.2.10 GetCurFieldName

구문

HwpCtrl.GetCurFieldName(option)

설명

현재 캐럿 위치의 데이터 필드 이름을 구한다.

파라미터

  • option: 다음과 같은 옵션을 지정할 수 있다. 0을 지정하면 모두 off 이다. 생략하면 0이 지정된다
ID 값 설명
hwpFieldCell 1 셀에 부여된 필드 리스트만을 구한다. hwpFieldClickHere 와는 함께 지정할 수 없다.
hwpFieldClickHer e 2 누름틀에 부여된 필드 리스트만을 구한다. hwpFieldCell 과는 함께 지정할 수 없다.

반환값

필드 이름을 문자열로 리턴한다. 필드 이름이 없는 경우 빈 문자열이 돌아온다.

예제

  1. 누름틀 생성
  2. 필드이름 이름으로 지정
  3. 생성한 누름틀로 캐럿 이동
  4. 예제 스크립트 실행 결과 : 현재 필드의 이름이 이름이라면 홍길동을 입력한다.
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}}"

예제

  1. 필드 입력
  2. 예제 스크립트 실행 결과 : 성공 메시지 창
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 은 동일한 의미로 해석된다.

예제

  1. 본문 이라는 필드 생성
  2. Text 삽입
  3. 예제 스크립트 실행 결과: 본문 이라는 이름의 필드 중 첫 번째 필드의 Text 를 얻어옵니다.
alert(HwpCtrl.GetFieldText(' 본문 {
  {
    0
  }
}
'));

1.2.13 GetHeadingString

구문

HwpCtrl.GetHeadingString()

설명

현재 캐럿이 위치한 문단의 문단번호/글머리표를 얻어냅니다.

반환값

문단번호 또는 글머리표를 String 타입으로 반환합니다.문단번호나 글머리표가 없다면 빈문자열을 반환 합니다.

예제

  1. 문단번호/글머리표 작성
  2. 예제 스크립트 실행 결과: 문단번호 또는 글머리표 메시지 창
alert("문단번호/글머리표 :"+ HwpCtrl.GetHeadingString());

1.2.14 GetMetaTag

구문

HwpCtrl.GetMetaTag(name)

설명

문서 내 메타태그 정보를 가져옵니다.

파라미터

  • name: 찾을 메타태그의 이름

반환값

메타태그를 찾았을 때 해당 메타태그 정보를 Object 타입으로 반환합니다. Object 의 Property 는 다음 과 같습니다. name : 메타태그의 이름 value : 메타태그의 값 format : 메타태그의 데이터 유형 메타태그가 없으면 null 을 반환합니다.

비고

hwpx 에서만 사용가능합니다.

예제

  1. 예제 스크립트 실행 결과: 메타태그의 정보 메시지 창
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 에서만 사용가능합니다.

예제

  1. 예제 스크립트 실행 결과: 메타태그의 정보 메시지 창
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: 텍스트를 얻을 페이지 Number
  • option: 다음과 같은 옵션을 지정할 수 있다. 생략하면 모든 컨트롤에 대해 텍스트를 얻는다. 본문 텍스트는 옵션에 관계없이 얻는다
option 값 설명
표 1 표 내부 텍스트만 얻는다.
글상자 2 글상자 내부 텍스트만 얻는다.
캡션 4 캡션 내부 텍스트만 얻는다.

반환값

결과 값을 문자열로 리턴한다.

예제

  1. 표 입력
  2. 표안에 텍스트 입력
  3. 예제 스크립트 실행 결과 : 첫 번째 Page 의 표 내부의 Text 가 나타난다.
alert(HwpCtrl.GetPageText(0, 1));

1.2.17 GetPos

구문

HwpCtrl.GetPos()

설명

현재 캐럿의 위치 정보를 얻어온다.

반환값

캐럿 위치 정보를 Object 타입으로 리턴한다. Object 의 Property 는 다음과 같다. list : 캐럿이 위치한 문서 내 리스트 아이디. para : 캐럿이 위치한 문단 아이디. pos : 캐럿이 위치한 문단 내 글자 단위 위치.

비고

기존 ActiveX 한글 컨트롤에서는 포인터를 인자로 받아서 처리하였다. WEB 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다.

예제

  1. 문서 작성
  2. 캐럿 이동
  3. GetPos API 로 현재 Pos 정보 저장
  4. 다른 위치로 캐럿 이동
  5. 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 객체 타입으로 반환합니다.

예제

  1. 임의의 문서 작성
  2. 캐럿 이동
  3. 예제 스크립트 실행 결과: 현재 캐럿이 위치한 정보 메시지 창
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 에 넘겨줄 때 사용한다.

예제

  1. 문서 작성
  2. 텍스트 블록
  3. GetSelectedPos API 로 현재 블록 Pos 정보 저장
  4. 블록 해제
  5. 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 를 반환합니다.

예제

  1. 임의의 문서 작성
  2. 텍스트를 블록으로 선택
  3. 예제 스크립트 실행 결과: 현재 블록의 시작과 끝 얻어냅니다.
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을 반환합니다.

예제

  1. 표 삽입
  2. 커서 이동
  3. 예제 스크립트 실행 결과: 현재 커서가 위치한 셀의 주소 메시지 창
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) 를 호출하면 된다.

예제

  1. 텍스트 입력
  2. 텍스트의 맨 앞으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 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) 를 호출하면 됩니다.

예제

  1. 임의의 텍스트 입력
  2. 캐럿 이동
  3. 예제 스크립트 실행 결과: 현재 캐럿부터 줄 끝까지의 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 포맷에서만 리턴 값으로 받을 수 있다.)

예제

  1. 문서 작성
  2. GetTextFile API 현재 문서 데이터 저장
  3. Clear API 로 현재 문서 초기화
  4. 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 환경에 맞춰서 객체를 리 턴하는 방식으로 변경되었다.

예제

  1. 텍스트 입력
  2. 텍스트의 맨 앞으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 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 에서 확인할 수 있다.

비고

브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.

예제

  1. 문서 작성
  2. 문서를 끼워넣을 위치로 캐럿 이동
  3. 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

비고

브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.

예제

  1. 표 생성
  2. 셀안으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 셀에 배경이미지를 넣고, 제거한다. 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 에는 컨트롤의 초기 속성을 지정한다.

예제

  1. 예제 스크립트 실행 결과 : 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 에서 확인할 수 있다.

비고

브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.

예제

  1. 문서 작성
  2. 문서를 끼워넣을 위치로 캐럿 이동
  3. 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

비고

브라우저에서는 로컬 파일 접근 권한이 없어 로컬 파일은 사용할 수 없다.

예제

  1. 예제 스크립트 실행 결과 : 셀에 배경이미지를 넣고, 제거한다. 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 를 반환합니다.

예제

  1. LockCommand 를 이용해 Bold Action 을 잠금
  2. 예제 스크립트 실행 결과: 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 환경에 맞춰서 객체를 리

턴하는 방식으로 변경되었다.

예제

  1. 텍스트 입력
  2. 예제 스크립트 실행 결과 : 맞춤법 검사가 되어 있지 않다면 맞춤법 검사를 실행한다.
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: 액션 ID
  • lock: true 이면 액션의 실행을 lock 시키고, false 이면 unlock 시킵니다

예제

  1. 예제 스크립트 실행 결과: 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 필드를 찾을 수 없음

예제

  1. 본문 이라는 필드 생성
  2. 예제 스크립트 실행 결과: 본문 필드의 속성 변경
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 는 문서를 검색하는 중에 캐럿을 이동 시키려 할 경우에만 사용이 가능하다.

예제

  1. 문서 작성
  2. 캐럿 이동
  3. GetPos API 로 현재 Pos 정보 저장
  4. 다른 위치로 캐럿 이동
  5. 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

비고

누름틀은 한글 메뉴 중 입력 > 개체 > 필드 입력 메뉴를 선택하면 누름틀을 만드실 수 있습니다.

예제

  1. 누름틀 삽입 필드 이름 본문
  2. MoveToField API 로 본문 필드로 이동 결과 : 특정 필드로 이동한다.
HwpCtrl.MoveToField("본문", true, true, false);

1.2.37 Open

구문

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 방식
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 포맷으로 변환한다.

예제

  1. 문서 작성
  2. 예제 스크립트 실행 결과 : 현재 문서가 PDF 로 변환되어 보여진다.
HwpCtrl.PrintDocument();

1.2.39 PutFieldText

구문

HwpCtrl.PutFieldText(fieldlist, textlist)

설명

지정한 필드의 내용을 채운다.

파라미터

  • fieldlist: 내용을 채울 필드 이름의 리스트. 한 번에 여러 개의 필드를 지정할 수 있으며, 형식은 GetFieldText 와 동일하다. 다만 필드 이름 뒤에 # 로 번호를 지정하지 않으면 해당 이름을 가진 모든 필드에 동일한 텍스트를 채워 넣는다. 즉, PutFieldText 에서는 필드이름과 필드이름0 의 의미가 다르다
  • textlist: 필드에 채워 넣을 문자열의 리스트. 형식은 필드 리스트와 동일하게 필드의 개수만큼 텍스트를 0x02 로 구분하여 지정한다

비고

현재 필드에 입력되어 있는 내용은 지워진다. 채워진 내용의 글자모양은 필드에 지정해 놓은 글자모양을 따라간다. fieldlist 의 필드 개수와, textlist 의 텍스트 개수는 동일해야 한다. 존재하지 않는 필드에 대해서는 무시한다.

예제

  1. 누름틀 생성
  2. 필드이름 이름으로 지정
  3. 예제 스크립트 실행 결과 : 문서 내에 이름 필드가 있다면 해당 필드의 정렬을 가운데 정렬로 변경하고, 홍길동이라고 텍스트를 입력한다.
if(HwpCtrl.FieldExist("이름")) {
  HwpCtrl.MoveToField("이름", true, true, true);
  HwpCtrl.Run("ParagraphShapeAlignCenter");
  HwpCtrl.PutFieldText("이름", "홍길동");
}

1.2.40 ReleaseScan

구문

HwpCtrl.ReleaseScan()

설명

InitScan() 으로 설정된 정보를 초기화 한다.

예제

  1. 텍스트 입력
  2. 텍스트의 맨 앞으로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 현재 캐럿부터 줄의 끝까지 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 의 필드 개수는 동일해야 한다. 존재하지 않는 필드에 대해서는 무시한다.

예제

  1. 누름틀 입력 FieldName 이름1
  2. 예제 스크립트 실행 결과 : 이름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 가 발생합니다.

예제

  1. 임의의 텍스트 삽입 및 선택
  2. 예제 스크립트 실행 결과: 진하게 클릭 시 글자모양 다이얼로그 창 표시
HwpCtrl.ReplaceAction('CharShapeBold', 'CharShape');

1.2.43 Run

구문

HwpCtrl.Run(actionID, callback, callbackUserData)

설명

액션을 실행한다.

파라미터

  • actionID: 액션 ID

  • callback: 액션 실행 후 실행 될 함수

  • 콜백 인자: 콜백을 호출한 Action 객체 result: 액션 실행 결과 Boolean 타입 callbackUserData: 사용자가 콜백에 전달한 데이터

  • callbackUserData: 사용자가 콜백에 전달한 데이터

예제

  1. 글자 입력
  2. 입력한 글자 Selection
  3. 예제 스크립트 실행 결과 : 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

예제

  1. 문서 작성
  2. 예제 스크립트 실행 결과 : 현재 열려있는 문서를 다운로드 폴더에 다운로드한다. 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

예제

  1. 문서 작성
  2. 텍스트 블록
  3. GetSelectedPos API 로 현재 블록 Pos 정보 저장
  4. 블록 해제
  5. 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

예제

  1. 누름틀 생성
  2. 생성한 누름틀로 캐럿 이동
  3. 예제 스크립트 실행 결과 : 현재 필드의 이름을 이름으로 설정하고 이름 필드에 홍길동을 입력한다.
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 에서만 사용가능합니다.

예제

  1. 예제 스크립트 실행 결과: 현재 문서에 메타태그 정보를 삽입합니다.
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

예제

  1. 문서 작성
  2. 캐럿 이동
  3. GetPos API 로 현재 Pos 정보 저장
  4. 다른 위치로 캐럿 이동
  5. 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. 예제 스크립트 실행
  3. 현재 커서의 위치 메시지창 출력
  4. 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 에 서 확인할 수 있다.

예제

  1. 문서 작성
  2. GetTextFile API 현재 문서 데이터 저장
  3. Clear API 로 현재 문서 초기화
  4. 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: 캐럿 표시 여부

예제

  1. 예제 스크립트 실행 결과 : 캐럿이 숨겨진다.
HwpCtrl.ShowCaret(false);

1.2.52 ShowHorizontalScroll

구문

HwpCtrl.ShowHorizontalScroll(show)

설명

가로 스크롤을 화면에 숨김/보이기 처리한다.

파라미터

  • show: 가로 스크롤 표시 여부

반환값

성공하면 true, 실패하면 false

예제

  1. 예제 스크립트 실행 결과 : 가로 스크롤이 감춰진다.
HwpCtrl.ShowHorizontalScroll(false);

1.2.53 ShowRibbon

구문

HwpCtrl.ShowRibbon(show)

설명

리본 메뉴를 화면에 숨김/보이기 처리한다.

파라미터

  • show: 캐럿 표시 여부

반환값

성공하면 true, 실패하면 false

예제

  1. 예제 스크립트 실행 결과 : Ribbon 메뉴가 감춰진다.
HwpCtrl.ShowRibbon(false);

1.2.54 ShowStatusBar

구문

HwpCtrl.ShowStatusBar(show)

설명

상태바를 화면에 숨김/보이기 처리한다.

파라미터

  • show: 상태바 표시 여부

반환값

성공하면 true, 실패하면 false

예제

  1. 예제 스크립트 실행 결과 : 상태바가 감춰진다.
HwpCtrl.ShowStatusBar(false);

1.2.55 ShowToolBar

구문

HwpCtrl.ShowStatusBar(show)

설명

툴바 메뉴를 화면에 숨김/보이기 처리한다.

파라미터

  • show: 상태바 표시 여부

반환값

성공하면 true, 실패하면 false

예제

  1. 예제 스크립트 실행 결과 : 툴바 메뉴가가 감춰진다.
HwpCtrl.ShowToolBar(false);

1.2.56 ShowVerticalScroll

구문

HwpCtrl.ShowVerticalScroll(show)

설명

세로 스크롤을 화면에 숨김/보이기 처리한다.

파라미터

  • show: 세로 스크롤 표시 여부

반환값

성공하면 true, 실패하면 false

예제

  1. 예제 스크립트 실행 결과 : 세로 스크롤이 감춰진다.
HwpCtrl.ShowVerticalScroll(false);

2. HwpAction

2.1 Properties

2.1.1 ActID

구문

act.ActID

설명

액션 ID를 나타낸다. 읽기 전용.액션 ID의 종류 및 설명은 별도 문서 참조.

반환값

ActionID 를 String 타입으로 return 한다.

예제

  1. 예제 스크립트 실행 결과 : 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 한다.

예제

  1. 예제 스크립트 실행 결과 : 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 객체를 리 턴한다.

예제

  1. 예제 스크립트 실행 결과 : 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 를 사용한다.

예제

  1. 예제 스크립트 실행 결과 : 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

예제

  1. 예제 스크립트 실행 결과 : 글자 속성 대화상자를 띄운다.
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

예제

  1. 예제 스크립트 실행 결과 : 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

예제

  1. 텍스트 입력
  2. 예제 스크립트 실행 결과 : Bold Action 실행대화상자가 없는 액션은 동기 방식으로 실행한다.)
var act = HwpCtrl.CreateAction("CharShapeBold");
// 액션 생성
act.Run();
//액션 실행;

3. HwpParameterSet

3.1 Properties

3.1.1 Count

구문

pset.Count

설명

현재 존재하는 아이템의 개수를 나타낸다. 읽기 전용.

반환값

아이템 개수를 Number 타입으로 리턴한다.

예제

  1. 예제 스크립트 실행 결과 : 서브 셋 아이템 수 안내창
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 를 리턴한다.

예제

  1. 예제 스크립트 실행 결과 : 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를 가진 기존의 아이템은 삭제된다.

예제

  1. 예제 스크립트 실행 결과 : 복사한 아이템이 동일한 지 여부 안내창
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를 가진 기존의 아이템은 삭제된다.

예제

  1. 예제 스크립트 실행 결과 : 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 을 가지는 서브 셋의 개념이다.

예제

  1. 예제 스크립트 실행 결과 : 문서 전체 용지의 속성이 변경된다.
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 에 저장된다

예제

  1. 텍스트 입력 후 글자 블록
  2. 예제 스크립트 실행 결과 : 블록된 텍스트의 글자 크기 속성을 제거하고 글자 크기를 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

예제

  1. 예제 스크립트 실행 결과 : 복사한 아이템이 동일한 지 여부 안내창
var charShapeSet = HwpCtrl.CharShape;
var cloneSet = charShapeSet.Clone();
if(cloneSet.IsEquivalent(charShapeSet)) {
  alert("동일");
}

3.2.6 Item

구문

pset.Item(itemid)

설명

지정한 아이템의 값을 리턴한다.

파라미터

  • itemid: 아이템 ID

반환값

아이템의 값, 만약 지정한 아이템이 존재하지 않으면 아이템의 포맷에 따라 0 또는 빈 문자열을 리턴한다.

예제

  1. 글자 입력
  2. 입력한 글자 Selection
  3. 예제 스크립트 실행 결과 : 만약 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

예제

  1. 글자 입력
  2. 입력한 글자 Selection
  3. 예제 스크립트 실행 결과 : 만약 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 에 저장된다

예제

  1. 텍스트 입력 후 글자 블록
  2. 예제 스크립트 실행 결과 : 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 으로 초기화하여 재사용하는 목적에 사용된다.

예제

  1. 텍스트 입력 후 글자 블록
  2. 예제 스크립트 실행 결과 : 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

예제

  1. 텍스트 입력 후 글자 블록
  2. 예제 스크립트 실행 결과 : 블록된 텍스트의 글자 크기 속성을 제거하고 글자 크기를 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: 아이템 ID
  • value: 설정할 값

비고

이미 동일한 ID의 아이템이 존재하면 지정한 값으로 바뀌고, 존재하지 않으면 아이템이 생성된다.

예제

  1. 예제 스크립트 실행 결과 : 문서 전체 용지의 속성이 변경된다.
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 에 동적으로 조절할 수 있다.

예제

  1. 예제 스크립트 실행 결과 : 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 를 리턴한다.

예제

  1. 예제 스크립트 실행 결과 : 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 에 해당하는 아이템의 값을 리턴한다.

예제

  1. 예제 스크립트 실행 결과 : 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 : 아이템의 값

예제

  1. 예제 스크립트 실행 결과 : 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 덧말 / 글자 겹침,,,

예제

  1. 표, 그리기 개체, 누름틀 삽입
  2. 예제 스크립트 실행 결과 : 표, 그리기 개체만 삭제된다.
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

예제

  1. 표 삽입
  2. 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 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 중 다음

컨트롤을 나타낸다.

예제

  1. 표 삽입
  2. 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 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 중 앞 컨트롤을 나타낸다.

예제

  1. 표 입력
  2. 예제 스크립트 실행 결과 : 문서 중 모든 표의 셀 간격을 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 으로 속성을 읽고 쓸 수 있다.

예제

  1. 표 삽입
  2. 예제 스크립트 실행 결과 : 현재 문서에 있는 모든 표의 셀 간격이 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;
}