UNPKG

vue-table-print

Version:

一个强大的Vue表格打印工具,支持ElementPlus、Ant Design Vue、Arco Design vue等组件库

70 lines (68 loc) 2.17 kB
interface TableColumn { prop: string; label: string; align?: "left" | "center" | "right"; width?: number | string; formatter?: (row: any, column: TableColumn, cellValue: any, index: number) => string; } interface PrintOptions { title?: string; showHeader?: boolean; showFooter?: boolean; pageSize?: "A4" | "A3" | "A5" | "Letter"; orientation?: "portrait" | "landscape" | ""; margins?: string; fontSize?: string; headerStyle?: { backgroundColor?: string; color?: string; fontWeight?: string; }; customStyles?: string; watermark?: string; logo?: string; [key: string]: any; } interface PrintResult { success: boolean; message?: string; } /** * 高级表格打印工具类 */ declare class TablePrintUtil { private options; constructor(options?: any); /** * 打印表格 */ printTable(data: any[], columns: TableColumn[], customOptions?: Partial<PrintOptions>): Promise<PrintResult>; /** * 预览表格 */ previewTable(data: any[], columns: TableColumn[], options?: Partial<PrintOptions>): void; /** * 导出为HTML文件 */ exportToHTML(data: any[], columns: TableColumn[], filename?: string, options?: Partial<PrintOptions>): void; private generateAdvancedHTML; private generatePrintStyles; private generateWatermarkStyle; private generateHeader; private generateTableContent; private generateFooter; private generatePrintScript; private executePrint; private getNestedValue; } /** * Vue 组合式函数 */ declare function useTablePrint(options?: PrintOptions): { printTable: (data: any[], columns: TableColumn[], customOptions?: Partial<PrintOptions>) => Promise<PrintResult>; previewTable: (data: any[], columns: TableColumn[], customOptions?: Partial<PrintOptions>) => void; exportToHTML: (data: any[], columns: TableColumn[], filename?: string, customOptions?: Partial<PrintOptions>) => void; printUtil: TablePrintUtil; }; export { TablePrintUtil, TablePrintUtil as default, useTablePrint }; export type { PrintOptions, PrintResult, TableColumn };