@redocmx/client
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

Conversión de CFDI a PDF

  • English documentation available here

@redocmx/client

El módulo @redocmx/client es un cliente de Node.js diseñado para interactuar con la API REST de redoc.mx para convertir CFDIs (Comprobante Fiscal Digital por Internet) a PDFs.

Este cliente facilita el proceso de enviar datos XML y recibir el PDF convertido, junto con los detalles de la transacción y metadatos.

Este paquete incluye definiciones de TypeScript que te permiten integrarlo sin problemas en tus proyectos de TypeScript.

Instalación

Para instalar el módulo, ejecuta:

npm install @redocmx/client

o si usas yarn:

yarn add @redocmx/client

Uso

Primero, importa el módulo y crea una instancia del cliente Redoc.

Puedes pasar opcionalmente tu clave API como un argumento, o el cliente intentará cargarla de la variable de entorno REDOC_API_KEY.

import Redoc from '@redocmx/client';

const redoc = new Redoc('tu_clave_api_aquí');

Convirtiendo CFDI a PDF

@redocmx/client proporciona dos opciones para cargar datos CFDI: desde un archivo o directamente desde una cadena.

Opción 1: Cargar XML desde el Sistema de Archivos

const cfdi = redoc.cfdi.fromFile('./ruta/a/tu/archivo.xml');

Opción 2: Usar una Cadena de Contenido XML

const cfdi = redoc.cfdi.fromString('<cadena_de_contenido_xml_aquí>');

Generando el PDF

Para convertir el CFDI cargado a un PDF:

try {
  const pdf = await cfdi.toPdf();
  const buffer = pdf.toBuffer();
  
  // Escribiendo el buffer del PDF a un archivo
  await fs.writeFile('./ruta/para/guardar/archivo.pdf', buffer);

  console.log(`ID de Transacción: ${pdf.getTransactionId()}`);
  console.log(`Total de Páginas: ${pdf.getTotalPages()}`);
  console.log(`Tiempo Total: ${pdf.getTotalTimeMs()} ms`);
  console.log(`Metadatos: ${pdf.getMetadata()}`);
} catch (error) {
  console.error("Ocurrió un error durante la conversión:", error);
}

Ejemplos

Referencia API

Redoc

El objeto redoc es una instancia de Redoc, creada usando new Redoc(api_key).

Método Descripción
redoc.cfdi.fromFile(filePath) Devuelve: Cfdi - Instancia
Carga contenido de archivo del sistema para convertir un CFDI a PDF. El archivo debe ser XML válido para un CFDI.
Devuelve una instancia de la clase Cfdi, que se puede usar para obtener el PDF.
redoc.cfdi.fromString(fileContent) Devuelve: Cfdi - Instancia
Usa un CFDI como cadena para convertir el CFDI a PDF. La cadena debe ser XML válido para un CFDI.
Devuelve una instancia de la clase Cfdi, que se puede usar para obtener el PDF.

Cfdi

El objeto cfdi es una instancia de Cfdi, creada usando redoc.cfdi.fromFile(rutaDelArchivo) o redoc.cfdi.fromString(contenidoDelArchivo).

Método Descripción
cfdi.setAddenda(str) Parámetros: String
Permite el uso de una addenda de redoc para tener control total sobre el diseño del PDF final.
cfdi.toPdf(opciones) Parámetros: Object - OpcionesPdf
Devuelve: Pdf - Instancia
Una instancia de la clase Pdf, que al invocarse, convierte el CFDI a PDF y lo almacena, junto con los datos generados de la solicitud de conversión.
OpcionesPdf
{
    "estilo_pdf": "John"
}

Pdf

El objeto pdf es una instancia de Pdf, creado a partir de cfdi.toPdf(opciones).

Método Descripción
pdf.toBuffer() Devuelve: Buffer
El documento PDF como buffer, listo para almacenarse en el sistema de archivos o para enviarse de vuelta en una solicitud HTTP.
pdf.getTransactionId() Devuelve: String - UUID
Un ID único para la solicitud de transacción al servicio de redoc.
pdf.getTotalPages() Devuelve: Integer
El número total de páginas generadas para el archivo PDF.
pdf.getTotalTimeMs() Devuelve: Integer
Tiempo en milisegundos tomado para convertir el CFDI a PDF.
pdf.getMetadata() Devuelve: Object - MetadatosCfdi
Información general del CFDI convertido.
MetadatosCfdi
{
    TDB...
}

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviarnos una solicitud de extracción o abrir un problema para cualquier error, característica o mejora.

Licencia

Este proyecto está licenciado bajo la Licencia MIT - vea el archivo LICENSE para más detalles.

Readme

Keywords

none

Package Sidebar

Install

npm i @redocmx/client

Weekly Downloads

0

Version

0.0.4

License

MIT

Unpacked Size

19.5 kB

Total Files

10

Last publish

Collaborators

  • danioso
  • imdanioso