- English documentation available here
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.
Para instalar el módulo, ejecuta:
npm install @redocmx/client
o si usas yarn
:
yarn add @redocmx/client
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í');
@redocmx/client
proporciona dos opciones para cargar datos CFDI: desde un archivo o directamente desde una cadena.
const cfdi = redoc.cfdi.fromFile('./ruta/a/tu/archivo.xml');
const cfdi = redoc.cfdi.fromString('<cadena_de_contenido_xml_aquí>');
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);
}
- Ejemplo básico
- Logotipo y colores personalizados
- Cambiar idioma a inglés
- Agregar contenido enriquecido adicional
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. |
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. |
{
"estilo_pdf": "John"
}
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. |
{
TDB...
}
¡Las contribuciones son bienvenidas! No dudes en enviarnos una solicitud de extracción o abrir un problema para cualquier error, característica o mejora.
Este proyecto está licenciado bajo la Licencia MIT - vea el archivo LICENSE para más detalles.