survey-pdf
Version:
A UI component that uses SurveyJS form JSON schemas to render forms as PDF documents. It populates PDF fields with data collected using SurveyJS Form Library and lets you export your SurveyJS forms as editable or pre-filled PDFs.
138 lines (137 loc) • 4.96 kB
TypeScript
import { IRect, IMargin, DocController } from '../doc_controller';
import { IPdfBrick } from '../pdf_render/pdf_brick';
/**
* Horizontal alignment types in onRenderHeader and onRenderFooter events
*/
export declare enum HorizontalAlign {
NotSet = "notset",
Left = "left",
Center = "center",
Right = "right"
}
/**
* Vertical alignment types in onRenderHeader and onRenderFooter events
*/
export declare enum VerticalAlign {
NotSet = "notset",
Top = "top",
Middle = "middle",
Bottom = "bottom"
}
export interface IDrawRectOptions {
/**
* Horizontal alignment within the rectangle that limits the drawing area.
*
* Possible values:
*
* - `"center"` (default)
* - `"left"`
* - `"right"`
*/
horizontalAlign?: HorizontalAlign;
/**
* Vertical alignment within the rectangle that limits the drawing area.
*
* Possible values:
*
* - `"middle"` (default)
* - `"top"`
* - `"bottom"`
*/
verticalAlign?: VerticalAlign;
/**
* The distance between the content and the borders of the rectangle. This property applies only if the content is aligned to the left/right or top/bottom.
*/
margins?: IMargin;
/**
* An object with coordinates of the rectangle.
*/
rect?: IRect;
}
/**
* An object that configures rendering a piece of text.
*/
export interface IDrawTextOptions extends IDrawRectOptions {
/**
* A text string to be drawn.
*/
text: string;
/**
* Font size in points.
*
* Default value: 14
*/
fontSize?: number;
/**
* Enable this property to render the text string bold.
*
* Default value: `false`
*/
isBold?: boolean;
}
/**
* An object that configures rendering an image.
*/
export interface IDrawImageOptions extends IDrawRectOptions {
/**
* An image width in pixels. Defaults to the [rectangle width](https://surveyjs.io/pdf-generator/documentation/api-reference/idrawimageoptions#rect).
*/
width?: number;
/**
* An image height in pixels. Defaults to the [rectangle height](https://surveyjs.io/pdf-generator/documentation/api-reference/idrawimageoptions#rect).
*/
height?: number;
/**
* A string value with a base64-encoded image to be drawn.
*/
base64: string;
/**
* Specifies how to resize the image to fit it into its container.
*
* Default value: `"contain"` if [`applyImageFit`](https://surveyjs.io/pdf-generator/documentation/api-reference/idocoptions#applyImageFit) is enabled or `undefined` if not.
*
* Refer to the [`object-fit`](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property description for information on accepted values.
*/
imageFit?: string;
}
/**
* An object that describes a drawing area and enables you to draw an image or a piece of text within the area. You can access this object within functions that handle `SurveyPDF`'s [`onRenderHeader`](https://surveyjs.io/pdf-generator/documentation/api-reference/surveypdf#onRenderHeader) and [`onRenderFooter`](https://surveyjs.io/pdf-generator/documentation/api-reference/surveypdf#onRenderFooter) events.
*
* [View Demo](https://surveyjs.io/pdf-generator/examples/customize-header-and-footer-of-pdf-form/ (linkStyle))
*/
export declare class DrawCanvas {
packs: IPdfBrick[];
controller: DocController;
protected _rect: IRect;
protected _countPages: number;
protected _pageNumber: number;
constructor(packs: IPdfBrick[], controller: DocController, _rect: IRect, _countPages: number, _pageNumber: number);
/**
* A total number of pages in the document.
*/
get pageCount(): number;
get countPages(): number;
/**
* The number of the page that contains the drawing area. Enumeration starts with 1.
*/
get pageNumber(): number;
/**
* An object with coordinates of a rectangle that limits the drawing area. This object contain the following fields: `xLeft`, `xRight`, `yTop`, `yBot`.
*/
get rect(): IRect;
private alignRect;
/**
* Draws a piece of text within the drawing area.
*
* [View Demo](https://surveyjs.io/pdf-generator/examples/customize-header-and-footer-of-pdf-form/ (linkStyle))
* @param textOptions An [`IDrawTextOptions`](https://surveyjs.io/pdf-generator/documentation/api-reference/idrawtextoptions) object that configures the drawing.
*/
drawText(textOptions: IDrawTextOptions): void;
/**
* Draws an image within the drawing area.
*
* [View Demo](https://surveyjs.io/pdf-generator/examples/customize-header-and-footer-of-pdf-form/ (linkStyle))
* @param imageOptions An [`IDrawImageOptions`](https://surveyjs.io/pdf-generator/documentation/api-reference/idrawimageoptions) object that configures drawing.
*/
drawImage(imageOptions: IDrawImageOptions): Promise<void>;
}