Biblioteca Ruby de Código Abierto para Generar Archivos DOCX de Word

Una API Ruby gratuita y poderosa que permite a los desarrolladores crear documentos Word DOCX con facilidad. Permite diseñar el documento's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

¿Qué es la Biblioteca Sablon?

En el mundo del desarrollo de software, generar documentos dinámicos como informes, facturas o cartas es un requisito común. Mientras que muchas bibliotecas pueden crear documentos desde cero, a menudo implican una curva de aprendizaje pronunciada y una codificación tediosa para lograr el formato adecuado. Aquí es donde Sablon, una poderosa biblioteca Ruby de código abierto, entra en acción. Sablon revoluciona la generación de documentos aprovechando la familiaridad de Microsoft Word y el poder de Ruby, permitiéndote crear documentos complejos y bellamente formateados con un esfuerzo mínimo. Soporta características como creación de Word Docx, inserción de contenido vía campos MailMerge, soporte de formato avanzado, añadir anotaciones en plantillas, conversión configurable de HTML y CSS y mucho más.

En su núcleo, Sablon es un procesador de plantillas de documentos para archivos .docx. Utiliza la funcionalidad de combinación de correspondencia (Mail Merge) incorporada en Word, permitiéndote crear plantillas en un entorno familiar. Puedes diseñar la disposición de tu documento, aplicar estilos y usar campos de combinación de correspondencia como marcadores de posición para contenido dinámico. Sablon luego toma esta plantilla y un contexto de datos (un hash Ruby) para producir un documento Word final poblado con datos. Este enfoque separa la capa de presentación (la plantilla Word) de la capa de datos (tu código Ruby), haciendo que el proceso de generación de documentos sea limpio y mantenible. Su sintaxis es intuitiva para cualquiera familiarizado con Ruby y lenguajes de plantillas. Es amigable para diseñadores, el contenido y el diseño están completamente separados. Los diseñadores pueden trabajar directamente en Word sin tocar código.

Previous Next

Comenzando con Sablon

La forma recomendada de instalar Sablon es usando RubyGems. Por favor, usa el siguiente comando para una instalación sin problemas.

Instalar Documentación vía RubyGems


gem 'sablon' 
You can also download it directly from GitHub.

Inserción de Contenido con Campos de Word via Ruby

La función más básica es insertar contenido dinámico. La biblioteca Ruby de código abierto Sablon utiliza la sintaxis de campos incorporada en Word para definir marcadores de posición. En tu plantilla Word, insertas un código de campo donde deseas contenido dinámico. Sablon reemplazará este campo con tu valor. El siguiente ejemplo demuestra cómo los desarrolladores pueden insertar dinámicamente una pieza de contenido para saludar a un usuario.

¿Cómo Insertar Dinámicamente Contenido de Texto en Archivo de Documentos Word vía Ruby?

require 'sablon'

template = Sablon.template(File.expand_path('~/template.docx'))
context = {
  name: "Sarah Connor"
}

template.render_to_file(File.expand_path('~/output.docx'), context)

Template:

Hello, «name»! Welcome to our platform.

Output:
Hello, Sarah Connor! Welcome to our platform.

Conversión de HTML a WordML

Una de las características más destacadas de Sablon es su capacidad para convertir HTML en WordProcessingML (el formato XML usado por los archivos .docx). Esto es increíblemente útil cuando necesitas insertar contenido de texto enriquecido, como párrafos formateados, listas o tablas, desde una base de datos o un editor de texto enriquecido. Sablon convertirá la cadena HTML en una sección correctamente formateada en el documento Word, preservando encabezados, texto en negrita y cursiva, y el formato de listas. Aquí hay un ejemplo simple que demuestra cómo cargar una plantilla existente y convertir el contenido HTML a un archivo Word Docx dentro de aplicaciones Ruby.

¿Cómo Convertir Contenido HTML en Archivo Word Docx vía Biblioteca Ruby?

require "sablon"

template = Sablon.template(File.expand_path("template.docx"))

html_content = "

Esta es una Subtítulo

Este es un párrafo con negrita y cursiva.

  • Primer elemento
  • Segundo elemento
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

Inserción Dinámica de Imágenes vía Ruby

La biblioteca Sablon de código abierto ha incluido una función útil para insertar dinámicamente imágenes dentro de documentos Word Docx usando la biblioteca Ruby. Con solo un par de líneas de código, los desarrolladores pueden insertar dinámicamente imágenes en tus documentos. Puedes especificar un archivo de imagen, y Sablon lo incrustará en el documento. El siguiente ejemplo muestra cómo lograr la inserción dinámica de imágenes en documentos Word.

¿Cómo Insertar Dinámicamente una Imagen en Word Docx vía Biblioteca Ruby?


// You would have a placeholder image in your template with a special filename like «=company_logo».

context = {
  company_logo: Sablon.content(:image, "path/to/your/logo.png")
}

Renderizado Condicional vía Ruby

La biblioteca Sablon soporta bloques condicionales, permitiendo a los usuarios mostrar u ocultar partes de su documento Word según la presencia o el valor de una variable. Esto es perfecto para personalizar documentos basados en condiciones específicas. Por ejemplo, el siguiente ejemplo muestra cómo los usuarios pueden establecer comandos para ocultar o mostrar información específica dentro de un documento Word. Si show_extra_info es verdadero, el contenido entre las etiquetas if y endIf será incluido en el documento final. Si es falso o nil, el contenido será eliminado.

¿Cómo Mostrar u Ocultar Partes de Documentos Word Docx usando Ruby?


context = {
  show_extra_info: true # or false
}
 Español