redocmx
v0.0.7
Published
Conversión CFDI a PDF
Downloads
5
Maintainers
Readme
Conversión de CFDI a PDF
- English documentation available here
redocmx
El módulo redocmx
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 --save
o si usas yarn
:
yarn add redocmx
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';
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
- Ejemplo básico
- Logotipo y colores personalizados
- Cambiar idioma a inglés
- Agregar contenido enriquecido adicional
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 - InstanciaCarga 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 - InstanciaUsa 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: StringPermite el uso de una addenda de redoc para tener control total sobre el diseño del PDF final. | | cfdi.toPdf(opciones) | Parámetros: Object - OpcionesPdfDevuelve: Pdf - InstanciaUna 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"
}
El objeto pdf
es una instancia de Pdf
, creado a partir de cfdi.toPdf(opciones)
.
| Método | Descripción | | ----------------------------- | ----------- | | pdf.toBuffer() | Devuelve: BufferEl 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 - UUIDUn ID único para la solicitud de transacción al servicio de redoc. | | pdf.getTotalPages() | Devuelve: IntegerEl número total de páginas generadas para el archivo PDF. | | pdf.getTotalTimeMs() | Devuelve: IntegerTiempo en milisegundos tomado para convertir el CFDI a PDF. | | pdf.getMetadata() | Devuelve: Object - MetadatosCfdiInformació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.