@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
text/typescript
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';