survey-pdf
Version:
Renders JSON-driven SurveyJS forms and their responses as PDF documents in the browser or Node.js: fillable interactive PDF forms (AcroForm) or static printouts.
108 lines (107 loc) • 3.76 kB
TypeScript
import { IRect, DocController, ISize } from '../doc_controller';
export type TranslateXFunction = (xLeft: number, xRight: number) => {
xLeft: number;
xRight: number;
};
export type TranslateYFunction = (yTop: number, yBot: number) => {
yTop: number;
yBot: number;
};
export interface IPdfBrick extends IRect, ISize {
render(): Promise<void>;
unfold(): IPdfBrick[];
translateX(func: TranslateXFunction): void;
translateY(func: TranslateYFunction): void;
isPageBreak: boolean;
addBeforeRenderCallback(func: (brick: IPdfBrick) => void): void;
setPageNumber(number: number): void;
getPageNumber(): number;
updateRect(): void;
increasePadding(val: {
top: number;
bottom: number;
}): void;
isEmpty: boolean;
contentRect: IRect & ISize;
}
export interface IPdfBrickOptions {
shouldRenderReadOnly?: 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 controller: DocController;
protected options: IPdfBrickOptions;
protected _xLeft: number;
protected _xRight: number;
protected _yTop: number;
protected _yBot: number;
protected _pageNumber: 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);
isPageBreak: boolean;
constructor(controller: DocController, rect: IRect, options?: IPdfBrickOptions);
translateY(func: TranslateYFunction): void;
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;
getPageNumber(): number;
setPageNumber(val: number): void;
private beforeRenderEvent;
addBeforeRenderCallback(func: (brick: IPdfBrick) => void): void;
private padding;
increasePadding(padding: {
top: number;
bottom: number;
}): void;
private _contentRect;
get contentRect(): IRect & ISize;
private resetContentRect;
protected getContentRect(): IRect & ISize;
updateRect(): void;
get isEmpty(): boolean;
}