UNPKG

survey-pdf

Version:

survey.pdf.js is a SurveyJS PDF Library. It is a easy way to export SurveyJS surveys to PDF. It uses JSON for survey metadata.

156 lines (155 loc) 8.97 kB
import { IQuestion, Question, QuestionRatingModel, QuestionFileModel, LocalizableString } from 'survey-core'; import { SurveyPDF } from './survey'; import { IPoint, IRect, ISize, DocController } from './doc_controller'; import { IHTMLRenderType } from './flat_layout/flat_html'; import { IPdfBrick, PdfBrick } from './pdf_render/pdf_brick'; import { CompositeBrick } from './pdf_render/pdf_composite'; export type IBorderDescription = IRect & ISize & Pick<PdfBrick, 'formBorderColor'> & { rounded?: boolean; dashStyle?: { dashArray: [number, number] | [number]; dashPhase: number; }; outside?: boolean; }; export declare class SurveyHelper { static EPSILON: number; static TITLE_SURVEY_FONT_SIZE_SCALE: number; static TITLE_PAGE_FONT_SIZE_SCALE: number; static TITLE_PANEL_FONT_SIZE_SCALE: number; static DESCRIPTION_FONT_SIZE_SCALE: number; static OTHER_ROWS_COUNT: number; static RATING_MIN_WIDTH: number; static RATING_MIN_HEIGHT: number; static RATING_COLUMN_WIDTH: number; static MATRIX_COLUMN_WIDTH: number; static IMAGEPICKER_COUNT: number; static IMAGEPICKER_RATIO: number; static MULTIPLETEXT_TEXT_PERS: number; static HTML_TAIL_TEXT_SCALE: number; static SELECT_ITEM_FLAT_SCALE: number; static GAP_BETWEEN_ROWS: number; static GAP_BETWEEN_COLUMNS: number; static GAP_BETWEEN_ITEM_TEXT: number; static FORM_BORDER_VISIBLE: boolean; static BORDER_SCALE: number; static VISIBLE_BORDER_SCALE: number; static UNVISIBLE_BORDER_SCALE: number; static RADIUS_SCALE: number; static TITLE_FONT_SCALE: number; static VALUE_READONLY_PADDING_SCALE: number; static HTML_TO_IMAGE_QUALITY: number; static FORM_BORDER_COLOR: string; static TEXT_COLOR: string; static BACKGROUND_COLOR: string; static TITLE_LOCATION_MATRIX: string; static STANDARD_FONT: string; static CUSTOM_FONT_ENCODING: string; static parseWidth(width: string, maxWidth: number, columnsCount?: number, defaultUnit?: string): number; static pxToPt(value: number | string): number; static mergeRects(...rects: IRect[]): IRect; static createPoint(rect: IRect, isLeft?: boolean, isTop?: boolean): IPoint; static createRect(point: IPoint, width: number, height: number): IRect; static createHeaderRect(controller: DocController): IRect; static createFooterRect(controller: DocController): IRect; static chooseHtmlFont(controller: DocController): string; static generateCssTextRule(fontSize: number, fontStyle: string, fontName: string): string; static createHtmlContainerBlock(html: string, controller: DocController, renderAs: IHTMLRenderType): string; static splitHtmlRect(controller: DocController, htmlBrick: IPdfBrick): IPdfBrick; static createPlainTextFlat<T extends IPdfBrick>(point: IPoint, question: IQuestion, controller: DocController, text: string, fabric: new (question: IQuestion, controller: DocController, rect: IRect, text: string) => T): CompositeBrick; static createTextFlat<T extends IPdfBrick>(point: IPoint, question: IQuestion, controller: DocController, text: string | LocalizableString, fabric: new (question: IQuestion, controller: DocController, rect: IRect, text: string) => T): Promise<IPdfBrick>; private static hasHtml; private static getHtmlMargins; static createHTMLRect(point: IPoint, controller: DocController, margins: { top: number; bottom: number; width: number; }, resultY: number): IRect; static createHTMLFlat(point: IPoint, question: Question, controller: DocController, html: string): Promise<IPdfBrick>; static generateFontFace(fontName: string, fontBase64: string, fontWeight: string): string; static generateFontFaceWithItalicStyle(fontName: string, fontBase64: string, fontWeight: string): string; static htmlToXml(html: string): string; static createSvgContent(html: string, width: number, controller: DocController): { svg: string; divWidth: number; divHeight: number; }; private static setCanvas; static htmlToImage(html: string, width: number, controller: DocController): Promise<{ url: string; aspect: number; }>; static createBoldTextFlat(point: IPoint, question: Question, controller: DocController, text: string | LocalizableString): Promise<IPdfBrick>; static createTitleFlat(point: IPoint, question: Question, controller: DocController): Promise<IPdfBrick>; private static createTitleSurveyPanelFlat; static createTitleSurveyFlat(point: IPoint, controller: DocController, text: string | LocalizableString): Promise<IPdfBrick>; static createTitlePanelFlat(point: IPoint, controller: DocController, text: string | LocalizableString, isPage?: boolean): Promise<IPdfBrick>; static createDescFlat(point: IPoint, question: IQuestion, controller: DocController, text: string | LocalizableString): Promise<IPdfBrick>; static getReadonlyRenderAs(question: Question, controller: DocController): 'auto' | 'text' | 'acroform'; static createCommentFlat(point: IPoint, question: Question, controller: DocController, isQuestion: boolean, options?: { rows?: number; index?: number; value?: string; readOnly?: boolean; }): Promise<IPdfBrick>; static getQuestionOrCommentValue(question: Question, isQuestion?: boolean): string; static getQuestionOrCommentDisplayValue(question: Question, isQuestion?: boolean): string; static inBrowser: boolean; static get hasDocument(): boolean; static getImageBase64(imageLink: string): Promise<string>; static shouldConvertImageToPng: boolean; static getImageLink(controller: DocController, imageOptions: { link: string; width: number; height: number; objectFit?: string; }, applyImageFit: boolean): Promise<string>; static createImageFlat(point: IPoint, question: any, controller: DocController, imageOptions: { link: string; width: number; height: number; objectFit?: string; }, applyImageFit?: boolean): Promise<IPdfBrick>; static canPreviewImage(question: QuestionFileModel, item: { name: string; type: string; content: string; }, url: string): boolean; static getImageSize(url: string): Promise<ISize>; static createRowlineFlat(point: IPoint, controller: DocController, width?: number, color?: string): IPdfBrick; static createLinkFlat(point: IPoint, question: Question, controller: DocController, text: string, link: string): Promise<IPdfBrick>; static createAcroformRect(rect: IRect): number[]; static createTextFieldRect(point: IPoint, controller: DocController, lines?: number): IRect; static createReadOnlyTextFieldTextFlat(point: IPoint, controller: DocController, question: Question, value: string): Promise<IPdfBrick>; static renderFlatBorders(controller: DocController, borderOptions: IBorderDescription): void; static getLocString(text: LocalizableString): string; static getDropdownQuestionValue(question: Question): string; static getContentQuestion(question: Question): Question; static getContentQuestionTypeRenderAs(question: Question, survey: SurveyPDF): string; static getContentQuestionType(question: Question, survey: SurveyPDF): string; static getRatingMinWidth(controller: DocController): number; static getRatingItemText(question: QuestionRatingModel, index: number, locText: LocalizableString): LocalizableString; static getPageAvailableWidth(controller: DocController): number; static getImagePickerAvailableWidth(controller: DocController): number; static getColumnWidth(controller: DocController, colCount: number): number; static setColumnMargins(controller: DocController, colCount: number, column: number): void; static moveRect(rect: IRect, left?: number, top?: number): IRect; static scaleRect(rect: IRect, scale: number): IRect; static getBorderWidth(controller: DocController): number; static formScale(controller: DocController, flat: ISize): number; static generateQuestionFlats(survey: SurveyPDF, controller: DocController, question: Question, point: IPoint): Promise<IPdfBrick[]>; static isFontExist(controller: DocController, fontName: string): boolean; static isCustomFont(controller: DocController, fontName: string): boolean; static fixFont(controller: DocController): void; static clone(src: any): any; static shouldRenderReadOnly(question: IQuestion, controller: DocController, readOnly?: boolean): boolean; static isSizeEmpty(val: any): boolean; static isHeightEmpty(val: any): boolean; static getCorrectedImageSize(controller: DocController, imageOptions: { imageWidth?: any; imageHeight?: any; imageLink: string; defaultImageWidth?: any; defaultImageHeight?: any; }): Promise<ISize>; }