UNPKG

@nodecfdi/cfdi-to-pdf

Version:

Librería para crear un pdf basado en un XML CFDI o Retenciones

148 lines (146 loc) 5.61 kB
// src/builders/abstract_pdf_maker_builder.ts import { wrapCatalog } from "@nodecfdi/sat-micro-catalogs"; var AbstractPdfMakerBuilder = class { _primaryColor = "#359136"; _bgGrayColor = "#f8f8f8"; _defaultPageMargins = [20, 30, 20, 30]; setPrimaryColor(color) { this._primaryColor = color; } setBgGrayColor(color) { this._bgGrayColor = color; } defaultStyle() { return { font: "Helvetica", fontSize: 8 }; } defaultDictionaryStyles() { return { header: { fontSize: 12, bold: true }, subHeader: { fontSize: 10, bold: true }, tableSubtitleHeader: { fontSize: 9, bold: true }, tableHeader: { bold: true, color: "white" }, tableSmall: { fontSize: 7 }, tableSat: { fontSize: 5 }, tableSatSub: { bold: true } }; } async defaultCatalogs() { const { default: cfdi40ExportacionesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_exportaciones", { assert: { type: "json" } }); const { default: cfdi40FormasPagoRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_formas_pago", { assert: { type: "json" } }); const { default: cfdi40ImpuestosRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_impuestos", { assert: { type: "json" } }); const { default: cfdi40MesesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_meses", { assert: { type: "json" } }); const { default: cfdi40MetodosPagoRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_metodos_pago", { assert: { type: "json" } }); const { default: cfdi40ObjetosImpuestosRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_objetos_impuestos", { assert: { type: "json" } }); const { default: cfdi40PeriodicidadesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_periodicidades", { assert: { type: "json" } }); const { default: cfdi40RegimenesFiscalesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_regimenes_fiscales", { assert: { type: "json" } }); const { default: cfdi40TiposComprobantesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_tipos_comprobantes", { assert: { type: "json" } }); const { default: cfdi40TiposRelacionesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_tipos_relaciones", { assert: { type: "json" } }); const { default: cfdi40UsosCfdiRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/cfdi_40_usos_cfdi", { assert: { type: "json" } }); const { default: pagosTiposCadenaPagoRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/pagos_tipos_cadena_pago", { assert: { type: "json" } }); const { default: retenciones20ClavesRetencionRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/ret_20_claves_retencion", { assert: { type: "json" } }); const { default: retenciones20PeriodicidadesRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/ret_20_periodicidades", { assert: { type: "json" } }); const { default: retenciones20PeriodosRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/ret_20_periodos", { assert: { type: "json" } }); const { default: retenciones20TiposPagoRaw } = await import("@nodecfdi/sat-micro-catalogs/raw/ret_20_tipos_pago_retencion", { assert: { type: "json" } }); return { cfdi40Impuestos: wrapCatalog(cfdi40ImpuestosRaw), cfdi40ObjetosImpuestos: wrapCatalog(cfdi40ObjetosImpuestosRaw), cfdi40UsosCfdi: wrapCatalog(cfdi40UsosCfdiRaw), cfdi40RegimenesFiscales: wrapCatalog(cfdi40RegimenesFiscalesRaw), cfdi40TiposRelaciones: wrapCatalog(cfdi40TiposRelacionesRaw), cfdi40Meses: wrapCatalog(cfdi40MesesRaw), cfdi40Periodicidades: wrapCatalog(cfdi40PeriodicidadesRaw), cfdi40Exportaciones: wrapCatalog(cfdi40ExportacionesRaw), cfdi40MetodosPago: wrapCatalog(cfdi40MetodosPagoRaw), cfdi40FormasPago: wrapCatalog(cfdi40FormasPagoRaw), cfdi40TiposComprobantes: wrapCatalog(cfdi40TiposComprobantesRaw), pagosTiposCadenaPago: wrapCatalog(pagosTiposCadenaPagoRaw), retenciones20ClavesRetencion: wrapCatalog(retenciones20ClavesRetencionRaw), retenciones20Periodicidades: wrapCatalog(retenciones20PeriodicidadesRaw), retenciones20Periodos: wrapCatalog(retenciones20PeriodosRaw), retenciones20TiposPago: wrapCatalog(retenciones20TiposPagoRaw) }; } layouts() { const primaryColor = this._primaryColor; const defaultLayout = { defaultBorder: false, hLineWidth(i, _node) { if (i === 1) { return 3; } return 2; }, hLineColor(_i, _node) { return primaryColor; }, paddingTop(_i) { return 2; }, paddingBottom(_i) { return 2; }, paddingLeft(_i) { return 2; }, paddingRight(_i) { return 2; } }; return { tableLayout: { ...defaultLayout }, conceptosLayout: { ...defaultLayout, hLineWidth(_i, _node) { return 1; }, paddingBottom(_i) { return 1; } }, stampLayout: { ...defaultLayout, hLineWidth(_i, _node) { return 1; }, paddingTop(_i) { return 4; }, paddingBottom(_i) { return 4; }, paddingLeft(_i) { return 0; }, paddingRight(_i) { return 0; } } }; } }; export { AbstractPdfMakerBuilder };