@nodecfdi/cfdi-to-pdf
Version:
Librería para crear un pdf basado en un XML CFDI o Retenciones
59 lines (55 loc) • 2.2 kB
TypeScript
import { SatCatalog } from '@nodecfdi/sat-micro-catalogs';
import { TDocumentDefinitions } from 'pdfmake/interfaces.js';
import { XmlNodeInterface } from '@nodecfdi/cfdi-core/types';
declare abstract class AbstractInvoiceData {
protected _emisor: XmlNodeInterface;
protected _receptor: XmlNodeInterface;
protected _timbreFiscalDigital: XmlNodeInterface;
protected _qrUrl: string;
protected _tfdSourceString: string;
protected _logo: string | undefined;
protected _additionalFields: {
title: string;
value: string;
}[] | undefined;
protected _legendFooter: string;
emisor(): XmlNodeInterface;
receptor(): XmlNodeInterface;
timbreFiscalDigital(): XmlNodeInterface;
qrUrl(): string;
tfdSourceString(): string;
logo(): string | undefined;
additionalFields(): {
title: string;
value: string;
}[] | undefined;
buildTfdSource(): void;
buildUrlQr(node: XmlNodeInterface): void;
private createTfdSourceString1_0;
private createTfdSourceString1_1;
setLegendFooter(legendFooter: string): void;
legendFooter(): string;
}
type DocumentOptions = Omit<TDocumentDefinitions, 'content' | 'footer'>;
interface CatalogsData {
cfdi40Impuestos: SatCatalog;
cfdi40ObjetosImpuestos: SatCatalog;
cfdi40UsosCfdi: SatCatalog;
cfdi40RegimenesFiscales: SatCatalog;
cfdi40TiposRelaciones: SatCatalog;
cfdi40Meses: SatCatalog;
cfdi40Periodicidades: SatCatalog;
cfdi40Exportaciones: SatCatalog;
cfdi40MetodosPago: SatCatalog;
cfdi40FormasPago: SatCatalog;
cfdi40TiposComprobantes: SatCatalog;
pagosTiposCadenaPago: SatCatalog;
retenciones20ClavesRetencion: SatCatalog;
retenciones20Periodicidades: SatCatalog;
retenciones20Periodos: SatCatalog;
retenciones20TiposPago: SatCatalog;
}
type DocumentTranslatorInterface<T extends AbstractInvoiceData> = {
translate(data: T, documentDefinitionsOptions: DocumentOptions, catalogs: CatalogsData, primaryColor: string, bgGrayColor: string): TDocumentDefinitions;
};
export { AbstractInvoiceData as A, type CatalogsData as C, type DocumentTranslatorInterface as D, type DocumentOptions as a };