UNPKG

@casoon/invoice-generator

Version:

Generate PDF invoices, XRechnung XML, and ZUGFeRD PDF/A-3 from JSON data with TypeScript support

39 lines (30 loc) 1.63 kB
import { generateInvoicePDF, generateInvoicePDFToFile } from './generators/pdf-generator'; import { generateXRechnungXMLFile } from './generators/xml/xrechnung-generator'; import { loadInvoiceData } from './utils/data-loader'; // PDF Generator export { generateInvoicePDF, generateInvoicePDFToFile } from './generators/pdf-generator'; export { PDFGenerator } from './generators/pdf-generator'; // XRechnung Generator export { generateXRechnungXML, generateXRechnungXMLFile } from './generators/xml/xrechnung-generator'; export { XRechnungGenerator } from './generators/xml/xrechnung-generator'; // ZUGFeRD Generator export { ZUGFeRDGenerator } from './generators/zugferd/zugferd-generator'; export { ZUGFeRDPDFA3Generator, ZUGFeRDOptions } from './generators/zugferd/zugferd-pdfa3-generator'; // Data loading export { loadInvoiceData } from './utils/data-loader'; export { loadTestInvoice, loadTestInvoiceData } from './utils/test-data'; // Validation export { validateInvoice, validateEmail, validateIBAN, validateBIC, loadAndValidateInvoice } from './utils/validator'; export type { ValidationError, ValidationResult } from './utils/validator'; // Convenience function export async function generateFromJSON(jsonPath: string, pdfOutputPath: string, xmlOutputPath?: string, options?: any): Promise<void> { const invoice = loadInvoiceData(jsonPath); // Generate PDF await generateInvoicePDFToFile(invoice, pdfOutputPath, options); // Generate XML if path is provided if (xmlOutputPath) { await generateXRechnungXMLFile(invoice, xmlOutputPath); } } // Types export * from './types/invoice.types';