Skip to content

3. 기본설정

3.1 개요


HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
                .config(" ~~ ", " ~~ ") // 기본 설정 세팅
                .parse("./hwpxtemplater.hwpx")

                ...


사용자는 위와 같이 hwpx 파일을 파싱하는 parse 메서드 호출 전 config 메서드를 통해 hwpxTemplater 사용시 적용할 기본 옵션을 설정할 수 있습니다.

hwpxTemplater의 기본 옵션으로는 아래와 같은 것들이 있습니다.


3.2 ConfigOption.DELIM_PREFIX



import io.github.mumberrymountain.ConfigOption;
import io.github.mumberrymountain.HWPXTemplater;

HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
                .config(ConfigOption.DELIM_PREFIX, "[[") // 템플릿 문법의 기본 prefix를 [[로 대체
                .parse("./hwpxtemplater.hwpx")

                ...


hwpxTemplater의 기본 템플릿 문법으로 사용되는 {{ 데이터 }} 형태에서 {{를 다른 문자열로 대체하고 싶은 경우 사용하는 옵션입니다.

렌더링하고 싶은 데이터에 {가 포함될 경우 유용합니다.

제약사항: ConfigOption.DELIM_PREFIX는 두 문자보다 길게 설정할 수 없습니다.


3.3 ConfigOption.DELIM_SUFFIX



import io.github.mumberrymountain.ConfigOption;
import io.github.mumberrymountain.HWPXTemplater;

HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
                .config(ConfigOption.DELIM_SUFFIX, "]]") // 템플릿 문법의 기본 suffix를 [[로 대체
                .parse("./hwpxtemplater.hwpx")

                ...


hwpxTemplater의 기본 템플릿 문법으로 사용되는 {{ 데이터 }} 형태에서 }}를 다른 문자열로 대체하고 싶은 경우 사용하는 옵션입니다.

렌더링하고 싶은 데이터에 {가 포함될 경우 유용합니다.

제약사항: ConfigOption.DELIM_SUFFIX는 두 문자보다 길게 설정할 수 없습니다.


3.3 ConfigOption.CHAR_ROLE_SETTER



import io.github.mumberrymountain.ConfigOption;
import io.github.mumberrymountain.HWPXTemplater;
import io.github.mumberrymountain.model.CharRole;

CharRole charRole = new CharRole();
charRole.set(PlaceHolderType.CONDITION, '+'); // 조건문 태그를 판별할 때 사용되는 ? 문자를 다른 문자로 + 문자로 대체

HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
                                .config(ConfigOption.CHAR_ROLE_SETTER, charRole)

                                ...


조건문 태그를 판별할 때 사용되는 ?, 반복문 태그를 판별할 때 사용되는 # 등 특정 태그가 어떤 태그인지 판별할 때 사용되는 역할 식별 문자를 디폴트 문자가 아닌 다른 문자로 설정하고 싶을 때 사용하는 옵션입니다.

hwpxTemplater에서 제공하는 CharRole 클래스를 이용해, Key 값으로 PlaceHolderType를, Value 값으로 문자를 넣어 인스턴스를 생성한 뒤 파라미터로 기입해 해당 옵션을 설정할 수 있습니다.

세팅할 수 있는 PlaceHolderType으로는 아래와 같은 것들이 있습니다.


PlaceHolderType 태그 디폴트 식별자
PlaceHolderType.CONDITION 조건문 태그 식별자 ?
PlaceHolderType.LOOP 반복문 태그 식별자 #
PlaceHolderType.CLOSURE 반복문 태그 식별자 /
PlaceHolderType.IMAGE_REPLACEMENT 이미지 태그 식별자 $
PlaceHolderType.TABLE_REPLACEMENT 테이블 태그 식별자 @


3.4 ConfigOption.AUTO_TRIM



import io.github.mumberrymountain.ConfigOption;
import io.github.mumberrymountain.HWPXTemplater;

HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
                .config(ConfigOption.AUTO_TRIM, true) // 데이터를 양쪽의 공백을 자동으로 trim처리
                .parse("./hwpxtemplater.hwpx")
                .render(new HashMap<String, Object>() {{
                    put("data", "    데이터     "); // 양쪽의 공백을 제거하여 렌더링함
                    }}
                );

                ...

hwpx 템플릿 파일에 데이터를 렌더링할 때, 데이터 양옆의 공백을 자동으로 제거하여 렌더링하고 싶은 경우 사용하는 옵션입니다.