1. Des produits
  2.   Traitement de texte
  3.   Ruby
  4.   Ruby-Docx-Templater
 
  

Créer des fichiers Word dynamiques à partir d'un modèle via une API Ruby gratuite

Une bibliothèque Ruby gratuite de premier plan qui permet aux développeurs de créer des documents Word, d'ajouter et de personnaliser des tables, d'insérer des images, d'appliquer des sauts de ligne et du formatage de texte aux documents Word dans les applications Ruby.

Qu'est-ce que Ruby-Docx-Templater ?

Générer des documents Microsoft Word dynamiques (.docx) à partir d'une application Ruby peut être une tâche étonnamment complexe. Vous pourriez devoir générer des rapports, des factures ou des lettres conçues par des utilisateurs non techniques. Bien que de nombreuses solutions existent, elles requièrent souvent des dépendances lourdes comme LibreOffice ou des installations locales de Word. Voici Ruby-Docx-Templater, un gem léger qui adopte une approche différente. Il permet aux utilisateurs d'utiliser un fichier .docx standard comme modèle, le manipulant entièrement en mémoire pour y injecter leurs données. Cela en fait une option rapide, sécurisée et facile à déployer pour tout développeur Ruby.

Au cœur de la bibliothèque Ruby-Docx-Templater se trouve un moteur de templates spécifiquement pour les fichiers .docx. Il s'agit d'un gem Ruby léger et puissant conçu pour créer des documents Microsoft Word (.docx) dynamiques à partir de modèles pré‑conçus. Il fonctionne en utilisant un système simple basé sur des balises dans un document Word standard. Vous créez un modèle dans Word, placez des balises spéciales aux emplacements où le contenu dynamique doit apparaître, puis laissez le gem remplacer ces balises par les données réelles de votre application Ruby. Son traitement basé sur la mémoire, son support des structures de tableau complexes et la préservation du formatage le rendent idéal pour l'automatisation des documents d’entreprise.

Previous Next

Commencer avec Ruby-Docx-Templater

Le moyen recommandé d'installer Ruby-Docx-Templater est d'utiliser RubyGems. Veuillez utiliser la commande suivante pour une installation fluide.

Installer Ruby-Docx-Templater via RubyGems

 gem install ruby-docx-templater 

Installer Ruby-Docx-Templater via GitHub

 git clone https://github.com/jawspeak/ruby-docx-templater.git 
You can also download it directly from GitHub.

Créer un fichier Word Docx à partir d'un modèle via Ruby

La fonctionnalité la plus basique de Ruby-Docx-Templater est le remplacement simple de texte. Vous pouvez placer des espaces réservés n'importe où dans votre document Word, et la bibliothèque les remplacera par les valeurs réelles. L'avantage de cette approche est que le formatage est conservé. Si vous mettez $COMPANY_NAME$ en gras et rouge dans votre modèle, il restera en gras et rouge dans le résultat. Cela donne aux concepteurs un contrôle total sur l'apparence du document. Dans votre modèle Word, vous définissez les clés en utilisant la syntaxe $KEY$. Les signes dollar agissent comme délimiteurs, indiquant clairement où les substitutions doivent avoir lieu.

Créer un fichier Word Docx en utilisant un fichier modèle via 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')

Prise en charge des boucles de tableau à plusieurs lignes

L'une des fonctionnalités les plus puissantes est la capacité à générer des tables dynamiques avec plusieurs lignes. Cela est essentiel pour créer des listes détaillées dans les factures, catalogues de produits ou tout rapport contenant des données récurrentes. Vous définissez une zone de boucle dans votre tableau et la bibliothèque dupliquera tout ce qui se trouve entre ces marqueurs pour chaque élément de votre tableau de données. Vous pouvez formater chaque cellule individuellement dans Word. Par exemple, vous pouvez aligner les nombres à droite, mettre les en‑têtes en gras ou appliquer des polices spécifiques. Tout le formatage sera conservé dans les lignes générées.

Comment créer un rapport produit avec plusieurs lignes au format Docx via la bibliothèque 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')

Traitement basé sur la mémoire

La bibliothèque open source Ruby-Docx-Templater est très facile à utiliser et supporte le traitement basé sur la mémoire dans les applications Ruby. Toutes les manipulations de documents se font en mémoire, ce qui signifie que vos données sensibles ne touchent jamais le système de fichiers pendant le processus de templating. Ceci est crucial pour les applications manipulant des informations confidentielles telles que les dossiers médicaux, les documents financiers ou les données personnelles.

Travailler avec le XML Word

Un aspect unique de Ruby-Docx-Templater est que vous devez parfois éditer manuellement le XML sous‑jacent de votre document Word. Word insère souvent des balises de formatage qui peuvent diviser vos clés de modèle, interrompant le processus de substitution. Lorsque vous tapez $CUSTOMER_NAME$ dans Word, cela peut sembler correct à l'écran, mais le XML sous‑jacent peut ressembler à ceci.

 Français