Crea archivos Word dinámicos a partir de una plantilla mediante una API Ruby gratuita
Librería Ruby de código abierto líder diseñada para crear documentos Microsoft Word (.docx) dinámicos a partir de plantillas predefinidas.
¿Qué es Ruby-Docx-Templater?
Generar documentos dinámicos de Microsoft Word (.docx) desde una aplicación Ruby puede ser una tarea sorprendentemente compleja. Puede que necesites generar informes, facturas o cartas diseñadas por usuarios no técnicos. Aunque existen muchas soluciones, a menudo requieren dependencias pesadas como LibreOffice o instalaciones locales de Word. Aparece Ruby-Docx-Templater, una gema ligera que adopta un enfoque diferente. Permite a los usuarios usar un archivo .docx estándar como plantilla, manipulándolo totalmente en memoria para inyectar sus datos. Esto lo convierte en una opción rápida, segura y fácil de desplegar para cualquier desarrollador Ruby.
En su núcleo, la biblioteca Ruby-Docx-Templater es un motor de plantillas específicamente para archivos .docx. Es una gema Ruby ligera y potente diseñada para crear documentos dinámicos de Microsoft Word (.docx) a partir de plantillas predefinidas. Funciona mediante un sencillo sistema basado en etiquetas dentro de un documento Word estándar. Creas una plantilla en Word, colocas etiquetas especiales donde deseas que aparezca el contenido dinámico y luego la gema reemplaza esas etiquetas con los datos reales de tu aplicación Ruby. Su procesamiento basado en memoria, soporte para estructuras de tabla complejas y preservación del formato la hacen ideal para la automatización de documentos empresariales.
Comenzando con Ruby-Docx-Templater
La forma recomendada de instalar Ruby-Docx-Templater es usando RubyGems. Por favor, usa el siguiente comando para una instalación sin problemas.
Instalar Ruby-Docx-Templater vía RubyGems
gem install ruby-docx-templater Instalar Ruby-Docx-Templater vía GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Crear archivo Word Docx a partir de una plantilla mediante Ruby
La característica más básica de Ruby-Docx-Templater es la sustitución simple de texto. Puedes colocar marcadores de posición en cualquier parte de tu documento Word, y la biblioteca los reemplazará con valores reales. La ventaja de este enfoque es que se conserva el formato. Si haces $COMPANY_NAME$ en negrita y rojo en tu plantilla, seguirá siendo negrita y rojo en la salida. Esto brinda a los diseñadores un control total sobre la apariencia del documento. En tu plantilla de Word, defines las claves usando la sintaxis $KEY$. Los signos de dólar actúan como delimitadores, indicando claramente dónde deben ocurrir las sustituciones.
¿Crear un archivo Word Docx usando un archivo de plantilla mediante Ruby?
require 'docx_templater'
# Load your template file
doc = DocxTemplater::TemplateProcessor.new('invoice_template.docx')
# Define your data as a hash
data = {
'COMPANY_NAME' => 'Acme Corporation',
'INVOICE_NUMBER' => 'INV-2024-001',
'INVOICE_DATE' => '2024-11-04',
'CLIENT_NAME' => 'John Smith',
'TOTAL_AMOUNT' => '$1,250.00'
}
# Render the document with your data
doc.render(data)
# Save the output
doc.save('output_invoice.docx')
Soporte de bucles de tabla de múltiples filas
Una de las características más poderosas es la capacidad de generar tablas dinámicas con múltiples filas. Esto es esencial para crear listas detalladas en facturas, catálogos de productos o cualquier informe con datos repetitivos. Definis una región de bucle en tu tabla y la biblioteca duplicará todo lo que haya entre esos marcadores para cada elemento de tu arreglo de datos. Puedes formatear cada celda individualmente en Word. Por ejemplo, podrías alinear a la derecha los números, poner los encabezados en negrita o aplicar fuentes específicas. Todo el formato se conservará en las filas generadas.
¿Cómo crear un informe de producto con múltiples filas en formatos Docx mediante la biblioteca Ruby?
require 'docx_templater'
doc = DocxTemplater::TemplateProcessor.new('product_report.docx')
# Define items as an array of hashes
data = {
'REPORT_TITLE' => 'Monthly Sales Report',
'REPORT_DATE' => 'November 2024',
'ITEMS_LIST' => [
{
'PRODUCT_NAME' => 'Laptop Pro 15"',
'QUANTITY' => '5',
'UNIT_PRICE' => '$1,200.00',
'TOTAL' => '$6,000.00'
},
{
'PRODUCT_NAME' => 'Wireless Mouse',
'QUANTITY' => '12',
'UNIT_PRICE' => '$25.00',
'TOTAL' => '$300.00'
},
{
'PRODUCT_NAME' => 'USB-C Cable',
'QUANTITY' => '20',
'UNIT_PRICE' => '$15.00',
'TOTAL' => '$300.00'
}
]
}
doc.render(data)
doc.save('output_sales_report.docx')
Procesamiento basado en memoria
La biblioteca Ruby-Docx-Templater de código abierto es muy fácil de manejar y soporta procesamiento basado en memoria dentro de aplicaciones Ruby. Toda la manipulación del documento ocurre en memoria, lo que significa que tus datos sensibles nunca tocan el sistema de archivos durante el proceso de plantillado. Esto es crucial para aplicaciones que manejan información confidencial como historiales médicos, documentos financieros o datos personales.
Trabajando con Word XML
Un aspecto único de Ruby-Docx-Templater es que a veces necesitas editar manualmente el XML subyacente de tu documento Word. Word a menudo inserta marcas de formato que pueden dividir las claves de tu plantilla, rompiendo el proceso de sustitución. Cuando escribes $CUSTOMER_NAME$ en Word, puede aparecer correctamente en pantalla, pero el XML subyacente podría verse así.