UNPKG

@progress/kendo-vue-pdf

Version:
370 lines (360 loc) 12.3 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { ComponentOptionsMixin } from 'vue'; import { ComponentProvideOptions } from 'vue'; import { DefineComponent } from 'vue'; import { ExtractPropTypes } from 'vue'; import { PageMargin } from '@progress/kendo-drawing/pdf'; import { PaperSize } from '@progress/kendo-drawing/pdf'; import { PropType } from 'vue'; import { PublicProps } from 'vue'; /** * @hidden */ export declare const GridPdfExport: DefineComponent<ExtractPropTypes< { author: PropType<string>; avoidLinks: PropType<string | boolean>; forcePageBreak: PropType<string>; keepTogether: PropType<string>; creator: PropType<string>; date: PropType<Date>; imageResolution: PropType<number>; fileName: PropType<string>; forceProxy: PropType<boolean>; keywords: PropType<string>; landscape: PropType<boolean>; margin: PropType<string | number | PageMargin>; pageTemplate: PropType<any>; paperSize: PropType<PaperSize>; repeatHeaders: PropType<boolean>; scale: PropType<number>; proxyData: PropType<{ [key: string]: string; }>; proxyURL: PropType<string>; proxyTarget: PropType<string>; producer: PropType<string>; subject: PropType<string>; title: PropType<string>; }>, {}, {}, {}, { save(data?: any[], callback?: () => void): void; getSavePDF(): typeof savePDF; }, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< { author: PropType<string>; avoidLinks: PropType<string | boolean>; forcePageBreak: PropType<string>; keepTogether: PropType<string>; creator: PropType<string>; date: PropType<Date>; imageResolution: PropType<number>; fileName: PropType<string>; forceProxy: PropType<boolean>; keywords: PropType<string>; landscape: PropType<boolean>; margin: PropType<string | number | PageMargin>; pageTemplate: PropType<any>; paperSize: PropType<PaperSize>; repeatHeaders: PropType<boolean>; scale: PropType<number>; proxyData: PropType<{ [key: string]: string; }>; proxyURL: PropType<string>; proxyTarget: PropType<string>; producer: PropType<string>; subject: PropType<string>; title: PropType<string>; }>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; export declare interface GridPDFExportProps extends PDFExportProps { } /** * Represents the props of a page template component that * can be added to the PDFExport component. */ export declare interface PageTemplateProps { /** * The number of the current page. */ pageNum: number; /** * The total number of pages. */ totalPages: number; } /** * @hidden */ export declare const PDFExport: DefineComponent<ExtractPropTypes< { author: PropType<string>; avoidLinks: PropType<string | boolean>; forcePageBreak: PropType<string>; keepTogether: PropType<string>; creator: PropType<string>; date: PropType<Date>; imageResolution: PropType<number>; fileName: PropType<string>; forceProxy: PropType<boolean>; keywords: PropType<string>; landscape: PropType<boolean>; margin: PropType<string | number | PageMargin>; pageTemplate: PropType<any>; paperSize: PropType<PaperSize>; repeatHeaders: PropType<boolean>; scale: PropType<number>; proxyData: PropType<{ [key: string]: string; }>; proxyURL: PropType<string>; proxyTarget: PropType<string>; producer: PropType<string>; subject: PropType<string>; title: PropType<string>; }>, {}, {}, {}, { save(callback?: () => void): void; }, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< { author: PropType<string>; avoidLinks: PropType<string | boolean>; forcePageBreak: PropType<string>; keepTogether: PropType<string>; creator: PropType<string>; date: PropType<Date>; imageResolution: PropType<number>; fileName: PropType<string>; forceProxy: PropType<boolean>; keywords: PropType<string>; landscape: PropType<boolean>; margin: PropType<string | number | PageMargin>; pageTemplate: PropType<any>; paperSize: PropType<PaperSize>; repeatHeaders: PropType<boolean>; scale: PropType<number>; proxyData: PropType<{ [key: string]: string; }>; proxyURL: PropType<string>; proxyTarget: PropType<string>; producer: PropType<string>; subject: PropType<string>; title: PropType<string>; }>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; /** * Represents the props of the KendoVue PDFExport component. */ export declare interface PDFExportProps { /** * The author (metadata) of the PDF document. */ author?: string; /** * A flag that indicates whether to produce actual hyperlinks in the exported PDF file. * It is also possible to set a CSS selector. All matching links will be ignored. */ avoidLinks?: boolean | string; /** * An optional CSS selector that specifies the elements which cause the page breaks. */ forcePageBreak?: string; /** * An optional CSS selector that specifies the elements which should not be split across the pages. */ keepTogether?: string; /** * The creator of the PDF document. * * @default "Kendo UI PDF Generator" */ creator?: string; /** * The date when the PDF document is created. Defaults to `new Date()`. */ date?: Date; /** * The forced resolution of the images in the exported PDF document. * By default, the images are exported at their full resolution. */ imageResolution?: number; /** * Specifies the name of the exported PDF file. * * @default "export.pdf" */ fileName?: string; /** * If set to `true`, the content is forwarded to `proxyURL` even if the * browser supports local saving of files. */ forceProxy?: boolean; /** * The keywords (metadata) of the PDF document. */ keywords?: string; /** * A flag that indicates if the page will be in a landscape orientation. * By default, the page is in a portrait orientation. * * @default false */ landscape?: boolean; /** * Specifies the margins of the page. * * The supported units are: * * `"mm"` * * `"cm"` * * `"in"` * * `"pt"` (default). * * > Numbers are considered to be points (`"pt"`). */ margin?: string | number | PageMargin; /** * A Vue functional or class component which is used as a template that is inserted * into each page of the PDF document. The number of the current page (`pageNum`) * and the total number of pages (`totalPages`) are passed to the component as properties. */ pageTemplate?: any; /** * Specifies the paper size of the PDF document. Defaults to `"auto"` which means that the paper size * is determined by the content. * The size of the content in pixels matches the size of the output in points (1 pixel = 1/72 inch). * * If set, the content will be split across multiple pages. * This enables the `repeatHeaders` and `scale` options, and allows you to specify a template. * * The supported values are: * * A predefined size. The supported paper sizes are: `A0-A10`, `B0-B10`, `C0-C10`, * `Executive`, `Folio`, `Legal`, `Letter`, `Tabloid`. * * An array of two numbers which specify the width and height in points (1pt = 1/72in). * * An array of two strings which specify the width and height in units. * The supported units are `"mm"`, `"cm"`, `"in"`, and `"pt"`. */ paperSize?: PaperSize; /** * Specifies if the `<thead>` elements of the tables will be repeated on each page. */ repeatHeaders?: boolean; /** * A scale factor. * The text size on the screen might be too big for printing. * To scale down the output in PDF, use this option. * * @default 1 */ scale?: number; /** * A key/value dictionary of form values which will be sent to the proxy. * Can be used to submit Anti-Forgery tokens and other metadata. */ proxyData?: { [key: string]: string; }; /** * The URL of the server-side proxy which streams the file to the end user. * You need to use a proxy if the browser is not capable of saving files locally&mdash; * for example, Internet Explorer 9 and Safari. * It is your responsibility to implement the server-side proxy. * * In the request body, the proxy receives a POST request with the following parameters: * * - `"contentType"`&mdash;The MIME type of the file. * - `"base64"`&mdash;The base-64 encoded file content. * - `"fileName"`&mdash;The file name, as requested by the caller. * * The proxy returns the decoded file with the `"Content-Disposition"` header set to `attachment; * filename="<fileName.pdf>"`. */ proxyURL?: string; /** * A name or keyword which indicates where to display the document that is returned from the proxy. * To display the document in a new window or iframe, * the proxy has to have the `"Content-Disposition"` header set to `inline; filename="<fileName.pdf>"`. * * @default "_self" */ proxyTarget?: string; /** * The producer (metadata) of the PDF document. */ producer?: string; /** * The subject (metadata) of the PDF document. */ subject?: string; /** * The title (metadata) of the PDF document. */ title?: string; } /** * Saves the content of a DOM element to a PDF file. * * @param domElement - The root DOM element to save to a PDF file. * @param options - The export options. * @param callback - The callback to be executed after the PDF is saved. */ export declare function savePDF(domElement: HTMLElement, options?: PDFExportProps, callback?: () => void): void; /** * @hidden */ export declare const TreeListPDFExport: DefineComponent<ExtractPropTypes< { author: PropType<string>; avoidLinks: PropType<string | boolean>; forcePageBreak: PropType<string>; keepTogether: PropType<string>; creator: PropType<string>; date: PropType<Date>; imageResolution: PropType<number>; fileName: PropType<string>; forceProxy: PropType<boolean>; keywords: PropType<string>; landscape: PropType<boolean>; margin: PropType<string | number | PageMargin>; pageTemplate: PropType<any>; paperSize: PropType<PaperSize>; repeatHeaders: PropType<boolean>; scale: PropType<number>; proxyData: PropType<{ [key: string]: string; }>; proxyURL: PropType<string>; proxyTarget: PropType<string>; producer: PropType<string>; subject: PropType<string>; title: PropType<string>; }>, {}, {}, {}, { save(data?: any[], callback?: () => void): void; getSavePDF(): typeof savePDF; }, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< { author: PropType<string>; avoidLinks: PropType<string | boolean>; forcePageBreak: PropType<string>; keepTogether: PropType<string>; creator: PropType<string>; date: PropType<Date>; imageResolution: PropType<number>; fileName: PropType<string>; forceProxy: PropType<boolean>; keywords: PropType<string>; landscape: PropType<boolean>; margin: PropType<string | number | PageMargin>; pageTemplate: PropType<any>; paperSize: PropType<PaperSize>; repeatHeaders: PropType<boolean>; scale: PropType<number>; proxyData: PropType<{ [key: string]: string; }>; proxyURL: PropType<string>; proxyTarget: PropType<string>; producer: PropType<string>; subject: PropType<string>; title: PropType<string>; }>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; export declare interface TreeListPDFExportProps extends PDFExportProps { } export { }