문서
API
ReportViewer

ReportViewer

양식과 데이터를 이용해 리포트 객체를 만듭니다. 리포트 미리보기를 참고하세요.

생성자

const viewer = new RealReport.ReportViewer (
    container: string | HTMLDivElement,
    reportForm?: ReportForm,
    dataSet?: ReportDataSet,
    options?: ReportOptions
)

인자

이름타입필수여부설명
containerstring | HTMLDivElementyesRealReport가 렌더링될 컨테이너, div 엘리멘트 또는 id 문자열
reportFormReportFormnoRealReport 양식 객체
dataSetReportDataSetnoRealReport 데이터 객체
optionsReportOptionsno옵션

속성

이름타입Read & Write
zoomnumberRead & Write
pageCountnumberRead
pagenumberRead & Write
reportFormanyRead & Write
dataSetanyRead & Write
reportHtmlstringRead
languagesstring[]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미리보기 실행
print보고서 출력
first첫 번째 페이지로 이동
prev이전 페이지로 이동
next다음 페이지로 이동
last마지막 페이지로 이동
zoomIn확대
zoomOut축소

preview

reportForm의 양식에 dataSet의 데이터를 매핑하여 완성된 리포트를 컨테이너에 미리보기 합니다. 미리보기 함수인 preview()에는 PreviewOptions 타입의 인자를 넘겨줍니다.

사용예
// 동기 방식으로 미리보기
viewer.preview();
// 비동기 방식으로 미리보기
viewer.preview({async: true, pageMark: false, noscroll: true});

print

미리보기가 되어있는 컨테이너를 인쇄합니다.

미리보기가 되어있지 않은 경우 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 형식의 파일로 내보내기 합니다.

정의
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 데이터로 내보내기 합니다.

정의
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 형식의 이미지 파일로 내보내기 합니다.

정의
ReportViewer.exportImage(imageOptions?: ImageExportOptions): Promise<void>;
사용예
viewer.exportImage({ type: 'png' });
viewer.exportImage({ type: 'png', fileName: 'sample-report.png' });

exportDocument

미리보기 페이지들을 hwp 또는 docx 형식의 문서 파일로 내보내기 합니다.

정의
ReportViewer.exportDocument(documentOptions?: DocExportOptions): Promise<void>;
사용예
viewer.exportDocument({ type: 'hwp' });