문서
API
Types
Type: ReportViewer

Type: ReportViewer

ReportViewer

ReportForm

type ReportForm = Record<string, any>;

sample

const reportForm = {
    report: {
        page: {
            pageHeader: {
                ...
            }
            ...
        }
        ...
    },
    data: {
        dataName1: {
            type: 'simple',
            ...
        },
        dataName2: {
            type: 'band',
            ...
        }
        ...
    }
}

ReportData

type ReportData = Record<string, any>;

sample

dataName1: {
    values: [
        {
            ...
        }
        ...
    ]
}

ReportDataSet

type ReportDataSet = Record<string, ReportData>;

sample

const dataSet = {
    dataName1: {
        values: [
            {
                ...
            }
            ...
        ]
    },
    dataName2: {
        values: [
            {
                ...
            }
            ...
        ]
    }
}

ReportFormSet

type ReportFormSet = { form: ReportForm, dataSet?: ReportDataSet };

sample

{
    form: {
        /* ReportForm */
    },
    dataSet: {
        /* ReportDataSet */
    }
}

ImageExportOptions

declare enum CCITTScheme {
    GROUP_3 = "g3",
    GROUP_3_2D = "g3-2d",
    GROUP_4 = "g4"
}
 
interface ITiffOptions {
    dpi?: number;
    grayscale?: boolean;
    encoding?: CCITTScheme;
}
 
interface ImageExportOptions {
    type?: 'png' | 'jpeg' | 'jpg' | 'gif' | 'tif' | 'tiff';
    fileName?: string;
    zipName?: string;
    tiff?: ITiffOptions;
}

DocExportOptions

interface DocExportOptions {
    type: 'hwp' | 'docx';
    fileName?: string;
}

PdfFont

interface PdfFont {
    file: string;
    name: string;
    content: string;
    style?: 'normal' | 'italic';
    weight?: 'normal' | 'bold';
}

PDFExportOptions

/**
 * PDF내보내기시 인자로 사용되는 옵션
 */
export type PDFExportOptions = {
    /**
     * pdf 문서에서 사용할 폰트의 목록 입니다.
     */
    fonts: PdfFont[];
    /**
     * download할 때 사용할 filename
     * filename이 없으면 다운로드 되지 않습니다.
     */
    filename?: string;
    /**
     * 새로운 창을 열어 PDF문서를 미리보기 할 수 있습니다.
     * 지원되는 브라우저가 제한될 수 있습니다.
     */
    preview?: boolean;
    /**
     * 이 옵션을 이용해 내보낸 PDF문서에 
     * 소유자(owner)권한의 암호를 설정할 수 있습니다.
     */
    ownerPassword?: string; // 소유자 암호
    /**
     * 이 옵션을 이용해 내보낸 PDF문서에 
     * 사용자(user)권한의 암호를 설정할 수 있습니다.
     */
    userPassword?: string;
    /**
     * 권한에 따른 기능을 제한 할 수 있습니다.
     */
    permissions: IPdfPermissions;
    pdfVersion: '1.3' | '1.4' | '1.5' | '1.6' | '1.7' | '1.7ext3';
}
 
interface IPdfPermissions {
    /**
     * 'lowResolution' | 'highResolution' 인쇄 허용 여부
     */
    printing?: 'lowResolution' | 'highResolution';
    /**
     * 파일 수정 허용 여부
     */
    modifying?: boolean;
    /**
     * 텍스트 또는 그래픽 복사 허용 여부
     */
    copying?: boolean;
    /**
     * 주석 및 양식 작성 허용 여부
     */
    annotating?: boolean;
    /**
     * 양식 작성 및 서명 허용 여부
     */
    fillingForms?: boolean;
    /**
     * 접근성을 위한 텍스트 복사 허용 여부
     */
    contentAccessibility?: boolean;
    /**
     * 문서 취합 허용 여부.
     */
    documentAssembly?: boolean;
}

PDFExportBlobOptions

/**
 * PDF를 Blob으로 내보내기시 인자로 사용되는 옵션
 */
export type PDFExportBlobOptions = {
    /**
     * pdf 문서에서 사용할 폰트의 목록 입니다.
     */
    fonts: PdfFont[];
    /**
     * 이 옵션을 이용해 내보낸 PDF문서에 
     * 소유자(owner)권한의 암호를 설정할 수 있습니다.
     */
    ownerPassword?: string; // 소유자 암호
    /**
     * 이 옵션을 이용해 내보낸 PDF문서에 
     * 사용자(user)권한의 암호를 설정할 수 있습니다.
     */
    userPassword?: string;
    /**
     * 권한에 따른 기능을 제한 할 수 있습니다.
     */
    permissions: IPdfPermissions;
    pdfVersion: '1.3' | '1.4' | '1.5' | '1.6' | '1.7' | '1.7ext3';
}
 
interface IPdfPermissions {
    /**
     * 'lowResolution' | 'highResolution' 인쇄 허용 여부
     */
    printing?: 'lowResolution' | 'highResolution';
    /**
     * 파일 수정 허용 여부
     */
    modifying?: boolean;
    /**
     * 텍스트 또는 그래픽 복사 허용 여부
     */
    copying?: boolean;
    /**
     * 주석 및 양식 작성 허용 여부
     */
    annotating?: boolean;
    /**
     * 양식 작성 및 서명 허용 여부
     */
    fillingForms?: boolean;
    /**
     * 접근성을 위한 텍스트 복사 허용 여부
     */
    contentAccessibility?: boolean;
    /**
     * 문서 취합 허용 여부.
     */
    documentAssembly?: boolean;
}

PreviewOptions

/**
 * 리포트 프리뷰 옵션
 */
export type PreviewOptions = {
    /**
     * 비동기 출력 한다.
     * default: false;
     */ 
    async?: boolean;
    /**
     * 비동기 출력시 페이지출력간 지연시간(milliseconds)을 지정한다.
     * default: 0;
     */
    pageDelay?: number;
    /**
     * 비동기 출력시 출력 페이지 마커 표시 여부
     * default: false;
     */
    pageMark?: boolean;
    /**
     * 리포트가 미리보기를 처리하는 동안 Indicator를 출력하지 않도록 한다.
     * default: false;
     */
    noIndicator?: boolean;
    /**
     * 비동기 출력시 출력 페이지마다 스크롤 이동 여부
     * default: true;
     */
    noScroll?: boolean;
    /**
     * 미리보기 영역에서 리포트 페이지의 수평 정렬 방식 지정
     * default: center;
     */
    align?: 'left' | 'center' | 'right';
    /**
     * 페이지 없이 출력하는 옵션. false인 경우 페이지 구분 없이 출력합니다.
     */ 
    paging?: boolean;
    /**
     * 미리보기가 시작될때 호출되는 콜백함수
     */
    callback?: PrintPageCallback;
    /**
     * 미리보기 끝날때 호출되는 콜백함수
     */
    endCallback?: PrintEndCallback;
    /**
     * @deprecated - paging 옵션을 사용하세요.
     * 
     * 여러 페이지 문서에서 페이지 나눔 및 여백을 제거하여 단일 페이지로 출력하는 기능입니다. 이 기능은 랜더링된 HTML 문서를 화면에서 확인하기 위한 용도로 활용할 수 있습니다.
     * default: false;
     */
    singlePage?: boolean;
    /**
     * @deprecated - paging 옵션을 사용하세요.
     * 
     * singlePage가 활성화(true)되어 있을 경우, 지정할 수 있는 설정 값 
     */
    singlePageOptions?: SingPageOptions;
}

PrintOptions

/**
 * 리포트 출력 옵션
 */
export type PrintOptions = {
    /**
     * 출력할 때 소요되는 준비시간을 최대 몇 ms만큼 기다릴건지 지정할 수 있는 설정 값
     * default: 2000(ms)
     */ 
    timeout?: boolean;
}

Core

PageBreakMode

enum PageBreakMode {
    NONE = 'none',
    BEFORE = 'before',
    AFTER = 'after',
    BOTH = 'both'
}

SinglePageOptions

🔥

@deprecated - paging 옵션을 사용하세요.

type SinglePageOptions = {
    // signlePage의 외곽선 표시 여부
    // default: true (표시)
    border: boolean
};

ReportItemValueCallback

type ReportItemValueCallback = (
    ctx: PrintContext,
    item: ReportItem,
    row: number,
    value: any
) => any;

ReportItemStyleCallback

type ReportItemStyleCallback = (
    ctx: PrintContext,
    item: ReportItem,
    row: number,
    value: any
) => {
    [key: string]: string | undefined
};

ContextValueCallback

type ContextValueCallback = (ctx: PrintContext) => any;

BoxItemsAlign

enum BoxItemsAlign {
    START = 'start',
    MIDDLE = 'middle',
    END = 'end'
}

PrintPageCallback

export type PrintPageCallback = (ctx: PrintContext, page: PrintPage, pageNo: number) => void;

PrintEndCallback

export type PrintEndCallback = (ctx: PrintContext, pages: PrintPage[]) => void;