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.
87 lines (86 loc) • 3 kB
TypeScript
import { IRect, ISize, DocController } from '../doc_controller';
import { IQuestion } from 'survey-core';
export type TranslateXFunction = (xLeft: number, xRight: number) => {
xLeft: number;
xRight: number;
};
export interface IPdfBrick extends IRect, ISize {
render(): Promise<void>;
unfold(): IPdfBrick[];
translateX(func: TranslateXFunction): void;
isPageBreak: boolean;
}
/**
* An object that describes a PDF brick—a simple element with specified content, size, and location. Bricks are fundamental elements used to construct a PDF document.
*
* You can access `PdfBrick` objects within functions that handle `SurveyPDF`'s [`onRenderQuestion`](https://surveyjs.io/pdf-generator/documentation/api-reference/surveypdf#onRenderQuestion), [`onRenderPanel`](https://surveyjs.io/pdf-generator/documentation/api-reference/surveypdf#onRenderPanel), and [`onRenderPage`](https://surveyjs.io/pdf-generator/documentation/api-reference/surveypdf#onRenderPage) events.
*
* [View Demo](https://surveyjs.io/pdf-generator/examples/add-markup-to-customize-pdf-forms/ (linkStyle))
*/
export declare class PdfBrick implements IPdfBrick {
protected question: IQuestion;
protected controller: DocController;
protected _xLeft: number;
protected _xRight: number;
protected _yTop: number;
protected _yBot: number;
/**
* An X-coordinate for the left brick edge.
*/
get xLeft(): number;
set xLeft(val: number);
/**
* An X-coordinate for the right brick edge.
*/
get xRight(): number;
set xRight(val: number);
/**
* A Y-coordinate for the top brick edge.
*/
get yTop(): number;
set yTop(val: number);
/**
* A Y-coordinate for the bottom brick edge.
*/
get yBot(): number;
set yBot(val: number);
/**
* Font size in points.
*
* Default value: 14 (inherited from the parent PDF document)
*/
fontSize: number;
/**
* The color of text within the brick.
*
* Default value: `"#404040"`
*/
textColor: string;
formBorderColor: string;
isPageBreak: boolean;
constructor(question: IQuestion, controller: DocController, rect: IRect);
translateX(func: TranslateXFunction): void;
/**
* The brick's width in pixels.
*/
get width(): number;
/**
* The brick's height in pixels.
*/
get height(): number;
protected getShouldRenderReadOnly(): boolean;
afterRenderCallback: () => void;
render(): Promise<void>;
renderInteractive(): Promise<void>;
renderReadOnly(): Promise<void>;
/**
* Allows you to get a flat array of nested PDF bricks.
* @returns A flat array of nested PDF bricks.
*/
unfold(): IPdfBrick[];
protected getCorrectedText(val: string): string;
protected setXLeft(val: number): void;
protected setXRight(val: number): void;
protected setYTop(val: number): void;
protected setYBottom(val: number): void;
}