nodefact
Version:
Biblioteca para facturación electrónica en Perú con Node.js. Compatible con UBL 2.1 y servicios web de SUNAT.
84 lines (83 loc) • 2.47 kB
TypeScript
/**
* Módulo PDF - Generación de representaciones imprimibles
*
* Este módulo proporciona funcionalidades para generar representaciones
* imprimibles (PDF) de los documentos electrónicos.
*/
import { NodeFactError } from '../core';
import { templates, getTemplateByDocumentType } from './templates';
export declare class PDFError extends NodeFactError {
constructor(message: string);
}
export interface PDFOptions {
outputPath?: string;
logo?: string;
paper?: 'a4' | 'letter' | 'ticket';
orientation?: 'portrait' | 'landscape';
fontSize?: {
title?: number;
subtitle?: number;
normal?: number;
small?: number;
};
color?: {
primary?: string;
secondary?: string;
text?: string;
};
margins?: {
top?: number;
right?: number;
bottom?: number;
left?: number;
};
qrCode?: boolean;
footer?: {
text?: string;
includePageNumber?: boolean;
};
}
export interface PDFResult {
success: boolean;
path?: string;
buffer?: Buffer;
error?: string;
}
/**
* Clase para generar representaciones imprimibles (PDF)
*/
export declare class PDFGenerator {
private options;
private twig;
constructor(options?: PDFOptions);
/**
* Genera un PDF a partir de los datos de un documento electrónico
* @param data Datos del documento electrónico
* @param templateType Tipo de plantilla a utilizar
* @returns Resultado de la generación del PDF
*/
generate(data: any, templateType?: string): Promise<PDFResult>;
/**
* Renderiza una plantilla Twig con los datos proporcionados
* @param template Contenido de la plantilla
* @param data Datos para la plantilla
* @returns HTML renderizado
*/
private renderTemplate;
/**
* Convierte HTML a PDF
* @param html Contenido HTML
* @param data Datos del documento
* @returns Resultado de la generación del PDF
*/
private htmlToPdf;
}
/**
* Genera un PDF a partir de los datos de un documento electrónico
* @param data Datos del documento electrónico
* @param options Opciones de generación del PDF
* @param templateType Tipo de plantilla a utilizar
* @returns Resultado de la generación del PDF
*/
export declare function generatePdf(data: any, options?: PDFOptions, templateType?: string): Promise<PDFResult>;
export { templates, getTemplateByDocumentType };