ReportViewer
양식과 데이터를 이용해 리포트 객체를 만듭니다. 리포트 미리보기를 참고하세요.
생성자
const viewer = new RealReport.ReportViewer (
container: string | HTMLDivElement,
reportForm?: ReportForm,
dataSet?: ReportDataSet,
options?: ReportOptions
)
인자
이름 | 타입 | 필수여부 | 설명 |
---|---|---|---|
container | string | HTMLDivElement | yes | RealReport가 렌더링될 컨테이너, div 엘리멘트 또는 id 문자열 |
reportForm | ReportForm | no | RealReport 양식 객체 |
dataSet | ReportDataSet | no | RealReport 데이터 객체 |
options | ReportOptions | no | 옵션 |
속성
이름 | 타입 | Read & Write |
---|---|---|
zoom | number | Read & Write |
pageCount | number | Read |
page | number | Read & Write |
reportForm | any | Read & Write |
dataSet | any | Read & Write |
reportHtml | string | Read |
languages | string[] | Read |
zoom
- type:
number
- Read & Write
- 리포트 미리보기 컨테이너의 확대/축소 비율
- 예:
0.5
= 50% 로 축소
pageCount
- type:
number
- Read
- 미리보기 전체 페이지수를 가져옵니다.
page
- type:
number
- Read & Write
- 미리보기 현재 페이지를 가져오거나 지정합니다.
reportForm
- type:
Record<string, any>
- Read & Write
- 리포트 출력을 위한
JSON
형식의 양식 코드
데이터 예시
{
"page": {
"pageHeader": {
"items": [
{
"type": "text",
"text": "리포트 제목",
"styles": {
"fontSize": "25px",
"fontWeight": "bold",
}
}
]
},
"body": {
"items": [
{
"type": "text",
"text": "RealReport는 Javascript를 이용해 간단하게 리포트를 출력 할 수 있습니다.",
"height": "100px",
}
]
}
}
}
dataSet
- type:
any
- Read & Write
- 리포트 양식에 사용된 데이터들을 가져오거나 지정합니다.
reportHtml
- type:
any
- Read
- 미리보기 페이지들을 html 코드로 가져옵니다.
languages
- type:
string[]
- Read
- 다국어 설정에서 추가한 언어 목록을 가져옵니다.
함수
이름 | 설명 |
---|---|
preview | 미리보기 실행 |
first | 첫 번째 페이지로 이동 |
prev | 이전 페이지로 이동 |
next | 다음 페이지로 이동 |
last | 마지막 페이지로 이동 |
zoomIn | 확대 |
zoomOut | 축소 |
preview
reportForm의 양식에 dataSet의 데이터를 매핑하여 완성된 리포트를 컨테이너에 미리보기 합니다. 미리보기 함수인 preview()
에는 PreviewOptions 타입의 인자를 넘겨줍니다.
// 동기 방식으로 미리보기
viewer.preview();
// 비동기 방식으로 미리보기
viewer.preview({async: true, pageMark: false, noscroll: true});
미리보기가 되어있는 컨테이너를 인쇄합니다.
미리보기가 되어있지 않은 경우 ReportViewer 객체에 설정되어있는 reportForm
dataSet
정보로 인쇄를 진행합니다.
viewer.print();
getHtml
미리보기 페이지들을 HTML 형식의 코드로 가져옵니다. 이 함수의 결과는 reportHtml 속성의 값과 동일한 결과를 돌려줍니다.
const previewHtml = viewer.getHtml();
first
미리보기에서 맨 처음 페이지로 이동
viewer.first();
prev
미리보기에서 이전 페이지로 이동
viewer.prev();
next
미리보기에서 다음 페이지로 이동
viewer.next();
last
미리보기에서 마지막 페이지로 이동
viewer.last();
zoomIn
미리보기 페이지를 scale
의 배율로 확대
- scale: 확대 비율, 기본값은 0.1 (10%)
ReportViewer.zoomIn(scale: number): void;
viewer.zoomIn();
viewer.zoomIn(0.2);
zoomOut
미리보기 페이지를 scale
의 배율로 축소
- scale: 축소 비율, 기본값은 0.1 (10%)
ReportViewer.zoomOut(scale: number): void;
viewer.zoomOut();
viewer.zoomOut(0.3);
fitToHeight
미리보기 페이지를 컨테이너의 높이에 맞게 조정
ReportViewer.fitToHeight(): void;
viewer.fitToHeight();
fitToPage
미리보기 한 페이지를 컨테이너의 높이와 너비에 맞게 조정
ReportViewer.fitToPage(): void;
viewer.fitToPage();
fitToWidth
미리보기 페이지를 컨테이너의 너비에 맞게 조정
ReportViewer.fitToWidth(): void;
viewer.fitToWidth();
exportPdf
v1.4.0에서 exportPdf 함수의 인자가 fonsts: PdfFont[]
에서 options: PdfExportOptions
로 변경되었습니다.
이전 버전에서 입력한 fonts를 {fonts: fonts}
또는 {fonts}
형식으로 입력해야 합니다.
또한, PdfExportOptions 인자타입에는 filename을 넘겨 사용자가 원하는 파일명으로 pdf 를 내보내기 할 수 있습니다.
미리보기 페이지들을 PDF 형식의 파일로 내보내기 합니다.
- options: PdfExportOptions
ReportViewer.exportPdf(options: PdfExportOptions): Promise<void>;
const fonts = [
{
name: 'regular',
content: malgun,
style: 'normal',
weight: 'normal'
}, {
name: 'bold',
content: malgunBold,
style: 'normal',
weight: 'bold'
}
]
const oldZoom = viewer.zoom;
viewer.zoom = 1;
viewer.exportPdf({
fonts,
filename: 'sample-pdf-filename.pdf',
preview: false
}).then(() => {
reportView.zoom = oldZoom
});
exportPdfBlob
미리보기 페이지들을 Blob 형식의 PDF 데이터로 내보내기 합니다.
- options: PDFExportBlobOptions
ReportViewer.exportPdfBlob(options: PDFExportBlobOptions): Promise<Blob>;
const fonts = [
{
name: 'regular',
content: malgun,
style: 'normal',
weight: 'normal'
}, {
name: 'bold',
content: malgunBold,
style: 'normal',
weight: 'bold'
}
]
const oldZoom = viewer.zoom;
viewer.zoom = 1;
viewer.exportPdfBlob({
fonts
}).then((blob) => {
console.log(blob)
});
exportImage
미리보기 페이지들을 png
, jpeg
, jpg
, gif
, tif
, tiff
형식의 이미지 파일로 내보내기 합니다.
- imageOptions: ImageExportOptions
ReportViewer.exportImage(imageOptions?: ImageExportOptions): Promise<void>;
viewer.exportImage({ type: 'png' });
viewer.exportImage({ type: 'png', fileName: 'sample-report.png' });
exportDocument
미리보기 페이지들을 hwp
또는 docx
형식의 문서 파일로 내보내기 합니다.
- documentOptions: DocExportOptions
ReportViewer.exportDocument(documentOptions?: DocExportOptions): Promise<void>;
viewer.exportDocument({ type: 'hwp' });