# 📘 FastReport CLI — Generador de informes HTML/PDF Este proyecto es un **ejecutable .NET CLI** que carga plantillas `.frx`, inyecta datos en formato JSON usando **JsonDataConnection** y exporta el informe resultante a **HTML**. Ideal para integrarse desde otros servicios (p. ej., Node.js) y generar facturas, listados u otros documentos. ## 🛠️ Requisitos previos Antes de compilar o ejecutar este proyecto, necesitas: ### 💡 1. **Instalar .NET 10 SDK** .NET 10 es la versión recomendada con soporte moderno (mensajes y descargas oficiales disponibles en la web de Microsoft). [Microsoft](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) ### 🐧 **Ubuntu / Linux** 1. Abre una terminal. 2. Actualiza la caché de paquetes: 3. Instala el SDK de .NET 10: 4. Verifica la instalación: Esto instalará las herramientas necesarias para compilar y ejecutar aplicaciones .NET. [Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install) **Nota:** Si no está disponible en los repositorios puede que necesites usar el script oficial `dotnet-install.sh` o los paquetes binarios de la web de .NET. [Microsoft Learn](https://learn.microsoft.com/es-es/dotnet/core/install/linux-scripted-manual) ### 🪟 **Windows** 1. Descarga el instalador del SDK de .NET 10 desde la página oficial de descargas de .NET. [Microsoft](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) 2. Ejecuta el instalador y sigue los pasos. 3. Verifica con: Windows instalará todo lo necesario para compilar y ejecutar proyectos .NET. ## 📁 Estructura del proyecto El proyecto CLI está bajo una carpeta como: Este proyecto usa **FastReport.OpenSource** y **JsonDataConnection** para leer JSON y producir HTML. ## 🧱 Compilar el ejecutable Una vez instalado .NET 10 SDK, abre la terminal o línea de comando en la raíz del proyecto y ejecuta: Esto compilará el proyecto en modo `Release`. ## 📦 Publicar ejecutables (Linux y Windows) Puedes generar **ejecutables independientes (self-contained)** para cada plataforma. ### 🐧 Linux ### 🪟 Windows Esto generará binarios en: Los ejecutables **no requieren .NET preinstalado** para ejecutarse. ## 🧪 Ejecutar el generador Una vez publicado, puedes ejecutar el generador desde shell con: o en Windows. ## 📌 Integración desde otras aplicaciones Puedes invocar este ejecutable desde Node.js u otros servicios usando la ruta y parámetros indicados, por ejemplo usando `child_process` en Node.js para generar HTML y luego convertirlo a PDF con Puppeteer o similar. ## ⚠️ Requisitos adicionales en Linux Si tu reporte usa gráficos o fuentes, puede necesitar librerías gráficas nativas como **libgdiplus** en Linux para compatibilidad con System.Drawing: Esto evita errores de carga nativa en tiempo de ejecución (especialmente si FastReport genera gráficos o renderiza texto). (Requisito común para librerías que usan GDI+ en Linux) ## 🧠 Buenas prácticas - Mantén tu `.frx` y tus datos JSON sincronizados (los campos usados en la plantilla deben estar presentes en tu JSON). - Versiona el ejecutable en tus pipelines o CI para que siempre sepas qué versión se está usando. - Genera el HTML desde .NET y luego conviértelo a PDF en tu API principal según necesites. ## 📦 Resumen de comandos útiles | Acción | Comando | | ------------------------------ | ------------------------------------------------------------ | | Instalar .NET 10 SDK en Ubuntu | `sudo apt install -y dotnet-sdk-10.0` ([Microsoft Learn][1]) | | Ver versión de .NET | `dotnet --version` | | Compilar proyecto | `dotnet build …` | | Publicar para Linux | `dotnet publish … -r linux-x64` | | Publicar para Windows | `dotnet publish … -r win-x64` | [1]: https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?utm_source=chatgpt.com "Install .NET SDK or .NET Runtime on Ubuntu" ## 📚 Recursos - Página oficial de descargas de **.NET 10** — [https://dotnet.microsoft.com/en-US/download/dotnet/10.0](https://dotnet.microsoft.com/en-US/download/dotnet/10.0) [Microsoft](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) - Documentación de instalación de .NET en **Ubuntu** — [https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install) [Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install) - Documentación de instalación en **Windows** — [https://learn.microsoft.com/es-es/dotnet/core/install/windows](https://learn.microsoft.com/es-es/dotnet/core/install/windows) [Microsoft Learn](https://learn.microsoft.com/es-es/dotnet/core/install/windows)