@nodecfdi/cfdi-to-pdf
En algunos casos necesitas generar un archivo PDF desde un CFDI (Comprobante fiscal Digital por Internet), o constancia de retenciones. Esta librería te ayuda a crear un pdf genérico. Además puedes crear un boceto a tu gusto y acomodarlo a como lo requieras.
Primeros pasos
Está libreria depende estrictamente de @nodecfdi/cfdi-core
, @nodecfdi/cfdi-expresiones
,
pdfmake
por lo que es recomendable instalarlas previo a instalar la libreria cfdi-to-pdf.
Instalación
Para comenzar a utilizar la libreria lo primero que hay que hacer es instalarla, corre el siguiente comando en tu terminal:
npm i @nodecfdi/cfdi-to-pdf --save
pnpm add @nodecfdi/cfdi-to-pdf
yarn add @nodecfdi/cfdi-to-pdf
Con esto ya tendremos la libreria instalada y lista para ser usada.
Uso básico
Para usarla basicamente es muy parecido entre la variante ServerSide y la variante ClientSide, difiere en que el modo ServerSide se puede guardar el archivo directamente en un path especificado, en cambio en ClientSide solo se puede obtener el base64 o el raw String.
Uso ServerSide
import { nodeFromXmlString } from '@nodecfdi/cfdi-core';import { CfdiData, GenericCfdiTranslator } from '@nodecfdi/cfdi-to-pdf';import { PdfMakerBuilder } from '@nodecfdi/cfdi-to-pdf/node';
const cfdi = '<cfdi:Comprobante>...</cfdi:Comprobante>';const comprobante = nodeFromXmlString(cfdi);const cfdiData = new CfdiData(comprobante);
const builder = new PdfMakerBuilder(new GenericCfdiTranslator());const target = 'cfdi_target.pdf';await builder.build(cfdiData, target);
Uso ClientSide
import { nodeFromXmlString } from '@nodecfdi/cfdi-core';import { CfdiData, GenericCfdiTranslator } from '@nodecfdi/cfdi-to-pdf';import { PdfMakerBuilder } from '@nodecfdi/cfdi-to-pdf/browser';
const cfdi = '<cfdi:Comprobante>...</cfdi:Comprobante>';const comprobante = nodeFromXmlString(cfdi);const cfdiData = new CfdiData(comprobante);
const builder = new PdfMakerBuilder(new GenericCfdiTranslator());const base64 = await builder.buildBase64(cfdiData);