UNPKG

tt-pdf-generator

Version:

TT pdf generator - A powerful React-based PDF generation library for creating documents

100 lines (84 loc) 2.15 kB
import { ReactElement } from 'react'; // Font configuration types export interface FontConfig { family: string; fonts: { src: string; fontWeight?: number; fontStyle?: string; }[]; } // Component data structure export interface ComponentData { type: string; visible?: string; props?: Record<string, any>; children?: ComponentData[] | ComponentData | string | number; } // Template structure export interface Template { fonts?: FontConfig[]; components: ComponentData[]; images?: Record<string, any>; [key: string]: any; } // Data structure (can be any valid JSON) export type TemplateData = Record<string, any>; // PDF Generator props export interface PdfGeneratorProps { data: string; template: string; } // Component map for rendering export interface ComponentMap { [key: string]: React.ComponentType<any>; } // Render function arguments export interface RenderPdfComponentArgs { componentData: ComponentData | ComponentData[] | string | number; components: ComponentMap; data: TemplateData; allProps: Record<string, any>; images: Record<string, any>; } // PDF generation result export type PdfResult = Blob; // Error types export interface PdfGenerationError extends Error { originalError?: Error; template?: string; data?: string; } // Function signatures export type GeneratePdfFunction = ( template: string, data: string, ) => Promise<PdfResult>; export type ParseJsonFunction = ( jsonString: string, ) => Template | TemplateData | null; export type RenderPdfComponentFunction = ( args: RenderPdfComponentArgs, ) => ReactElement | ReactElement[] | null; // React PDF specific types export type PdfDocumentElement = ReactElement<any>; export type PdfComponentElement = ReactElement<any>; // Main export export declare const generatePdf: GeneratePdfFunction; // Export all types export type { FontConfig, ComponentData, Template, TemplateData, PdfGeneratorProps, ComponentMap, RenderPdfComponentArgs, PdfResult, PdfGenerationError, GeneratePdfFunction, ParseJsonFunction, RenderPdfComponentFunction, PdfDocumentElement, PdfComponentElement, };