Bibliothèque Ruby Open Source pour générer des fichiers Word DOCX

Une API Ruby gratuite puissante qui permet aux développeurs de créer des documents Word DOCX facilement. Elle permet de concevoir le document's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Qu'est-ce que la bibliothèque Sablon ?

Dans le monde du développement logiciel, la génération de documents dynamiques tels que rapports, factures ou lettres est une exigence courante. Bien que de nombreuses bibliothèques puissent créer des documents à partir de zéro, elles impliquent souvent une courbe d'apprentissage raide et un codage fastidieux pour obtenir le bon formatage. C’est là que Sablon, une puissante bibliothèque Ruby open‑source, entre en jeu. Sablon révolutionne la génération de documents en s’appuyant sur la familiarité de Microsoft Word et la puissance de Ruby, vous permettant de créer des documents complexes et magnifiquement formatés avec un minimum d’effort. Elle prend en charge des fonctionnalités telles que la création de Word Docx, l’insertion de contenu via des champs de publipostage, le support de formatage avancé, l’ajout d’annotations dans les modèles, la conversion configurable HTML & CSS et bien plus encore.

Au cœur de Sablon se trouve un processeur de modèles de documents pour les fichiers .docx. Il utilise la fonctionnalité intégrée de publipostage de Word, vous permettant de créer des modèles dans un environnement familier. Vous pouvez concevoir la mise en page de votre document, appliquer des styles et utiliser les champs de publipostage comme espaces réservés pour le contenu dynamique. Sablon prend ensuite ce modèle et un contexte de données (un hash Ruby) pour produire un document Word final, rempli de données. Cette approche sépare la couche de présentation (le modèle Word) de la couche de données (votre code Ruby), rendant le processus de génération de documents propre et maintenable. Sa syntaxe est intuitive pour quiconque familiarisé avec Ruby et les langages de templating. Elle est conviviale pour les designers ; le contenu et le design sont complètement séparés. Les designers peuvent travailler directement dans Word sans toucher au code.

Previous Next

Premiers pas avec Sablon

La façon recommandée d’installer Sablon est d’utiliser RubyGems. Veuillez utiliser la commande suivante pour une installation fluide.

Installer les documents via RubyGems


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

Insertion de contenu avec les champs Word via Ruby

La fonction la plus basique consiste à insérer du contenu dynamique. La bibliothèque Ruby open source Sablon utilise la syntaxe des champs intégrés de Word pour définir les espaces réservés. Dans votre modèle Word, vous insérez un code de champ à l’endroit où vous souhaitez que le contenu dynamique apparaisse. Sablon remplacera ce champ par votre valeur. L’exemple suivant montre comment les développeurs peuvent insérer dynamiquement un morceau de contenu pour saluer un utilisateur.

Comment insérer dynamiquement du texte dans un fichier Word Docs via 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.

Conversion HTML vers WordML

L’une des fonctionnalités phares de Sablon est sa capacité à convertir le HTML en WordProcessingML (le format XML utilisé par les fichiers .docx). C’est incroyablement utile lorsque vous devez insérer du contenu texte enrichi, comme des paragraphes formatés, des listes ou des tableaux, depuis une base de données ou un éditeur de texte riche. Sablon convertira la chaîne HTML en une section correctement formatée dans le document Word, en préservant les titres, le texte gras et italique, ainsi que le formatage des listes. Voici un exemple simple montrant comment charger un modèle existant et convertir le contenu HTML en fichier Word Docx dans une application Ruby.

Comment convertir du contenu HTML en fichier Word Docx via la bibliothèque Ruby ?

require "sablon"

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

html_content = "

Ceci est un sous-titre

Ceci est un paragraphe avec du gras et du italique.

  • Premier élément
  • Deuxième élément
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

Insertion dynamique d'image via Ruby

La bibliothèque open source Sablon inclut une fonctionnalité utile d’insertion dynamique d’images dans les documents Word Docx en utilisant la bibliothèque Ruby. En quelques lignes de code, les développeurs peuvent insérer dynamiquement des images dans leurs documents. Vous pouvez spécifier un fichier image, et Sablon l’embeddera dans le document. L’exemple suivant montre comment réaliser une insertion dynamique d’image dans des documents Word.

Comment insérer dynamiquement une image dans un Word Docx via la bibliothèque 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")
}

Rendu conditionnel via Ruby

La bibliothèque Sablon prend en charge les blocs conditionnels, permettant aux utilisateurs d’afficher ou de masquer des parties de leur document Word en fonction de la présence ou de la valeur d’une variable. C’est parfait pour personnaliser les documents selon des conditions spécifiques. Par exemple, l’exemple suivant montre comment les utilisateurs peuvent définir des commandes pour cacher ou afficher des informations précises dans un document Word. Si show_extra_info est vrai, le contenu entre les balises if et endIf sera inclus dans le document final. Si c’est faux ou nil, le contenu sera supprimé.

Comment afficher ou masquer des parties de documents Word Docx avec Ruby ?


context = {
  show_extra_info: true # or false
}
 Français