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
TypeScript
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>;
}