5. 데이터 모델
5.1 개요
hwpxTemplater에서는 사용자가 특정한 상황에서 String, Integer 등 자바가 제공하는 일반적인 타입을 대신하여 파라미터로 기입할 수 있는 데이터 모델을 제공합니다.
5.2 Text
import io.github.mumberrymountain.HWPXTemplater;
import io.github.mumberrymountain.model.Text;
import java.util.*;
HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
.parse("./hwpxtemplater.hwpx")
.render(new HashMap<String, Object>() {{
put("Data", new Text("데이터").fontColor("#9C3B00") // 폰트 색상으로 #9C3B00 적용
.backgroundColor("#FFEF99") // 배경 색상으로 #FFEF99 적용
.fontFamily("Noto Sans KR") // 폰트로 Noto Sans KR 적용
.fontSize(20) // 글자 크기로 20px 적용
);
}});
Text 데이터 모델은 기본 태그에 데이터를 넣을 때 일반적인 자바 데이터 타입을 대신하여 넣을 수 있는 데이터 모델입니다.
Text 클래스에서 제공하는 메서드들을 사용하여 렌더링하려는 데이터의 스타일을 커스텀하게 설정할 수 있습니다.
Text 클래스에서 제공하는 메서드로는 아래와 같은 것들이 있습니다.
| 메서드 | 설명 |
|---|---|
| fontColor | 렌더링하려는 데이터의 폰트 색상을 지정합니다. |
| backgroundColor | 렌더링하려는 데이터의 배경 색상을 지정합니다. |
| fontFamily | 렌더링하려는 데이터의 폰트 스타일을 지정합니다. |
| fontSize | 렌더링하려는 데이터의 폰트 사이즈를 지정합니다. |
5.3 Image
import io.github.mumberrymountain.HWPXTemplater;
import io.github.mumberrymountain.model.Image;
import java.util.*;
HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
.parse("./hwpxtemplater.hwpx")
.render(new HashMap<String, Object>() {{
put("Korea", new Image("./korea.png").width(50).height(50)); // korea.png 이미지를 50px 너비, 50px 높이로 렌더링합니다.
}});
Image 데이터 모델은 이미지 태그에 렌더링할 데이터를 넣을 때, 이미지 경로를 대신하여 넣을 수 있는 데이터 모델입니다.
Image 데이터 모델을 이용하여 이미지를 렌더링할 때 너비와 높이를 별도로 지정하여 렌더링할 수 있습니다.
Image 클래스에서 제공하는 메서드로는 아래와 같은 것들이 있습니다.
| 메서드 | 설명 |
|---|---|
| width | 렌더링하려는 이미지의 너비를 지정합니다. |
| height | 렌더링하려는 이미지의 높이를 지정합니다. |
5.4 Table
import javax.servlet.http.HttpServletResponse;
import io.github.mumberrymountain.HWPXTemplater;
import io.github.mumberrymountain.model.table.Col;
import io.github.mumberrymountain.model.table.Table;
Table table = Table.builder()
.cols(
Arrays.asList(
new Col("번호").width(60),
new Col("이름").width(150),
new Col("점수").width(150),
new Col("비고").width(150)
)
)
.row(new HashMap<String, Object>() {{
put("번호", "번호");
put("이름", "이름");
put("점수", "점수");
put("비고", "비고");
}})
.row(new HashMap<String, Object>() {{
put("번호", 1);
put("이름", "홍길동");
put("점수", 85);
put("비고", null);
}})
.row(new HashMap<String, Object>() {{
put("번호", 2);
put("이름", "김철수");
put("점수", 90);
put("비고", "우수 성적");
}})
.row(new HashMap<String, Object>() {{
put("번호", 3);
put("이름", "이영희");
put("점수", 78);
}})
.create();
HWPXTemplater hwpxTemplater = HWPXTemplater.builder()
.parse("./hwpxtemplater.hwpx")
.render(new HashMap<String, Object>() {{
put("table", table);
}})
.write(response.getOutputStream());
Table 데이터 모델은 테이블 태그에 테이블을 렌더링할 때 기입하는 특수한 데이터 모델입니다.
테이블 태그에는 오직 Table 데이터 모델만을 데이터로 기입할 수 있습니다.