Open Source Ruby Bibliotheek om Word DOCX-bestanden te genereren

Een krachtige gratis Ruby API die softwareontwikkelaars in staat stelt Word DOCX-documenten moeiteloos te maken. Het stelt je in staat om documenten te ontwerpen's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Wat is de Sablon Bibliotheek?

In de wereld van softwareontwikkeling is het genereren van dynamische documenten zoals rapporten, facturen of brieven een veelvoorkomende vereiste. Terwijl veel bibliotheken documenten vanaf nul kunnen maken, gaan ze vaak gepaard met een steile leercurve en tijdrovende code om de opmaak precies goed te krijgen. Hier komt Sablon, een krachtige open‑source Ruby‑bibliotheek, te hulp. Sablon revolutioneert documentgeneratie door de bekendheid van Microsoft Word en de kracht van Ruby te benutten, zodat je met minimale inspanning complexe en prachtig opgemaakte documenten kunt maken. Het ondersteunt functies zoals Word Docx‑creatie, inhoudsplaatsing via MailMerge‑velden, geavanceerde opmaakondersteuning, het toevoegen van annotaties in sjablonen, configureerbare HTML‑ en CSS‑conversie en nog veel meer.

In de kern is Sablon een document‑sjabloonprocessor voor .docx‑bestanden. Het maakt gebruik van de ingebouwde Mail Merge‑functionaliteit van Word, waardoor je sjablonen kunt maken in een vertrouwde omgeving. Je kunt de lay-out van je document ontwerpen, stijlen toepassen en Mail Merge‑velden gebruiken als placeholders voor dynamische inhoud. Sablon neemt vervolgens dit sjabloon en een datacontext (een Ruby‑hash) om een definitief, met data gevuld Word‑document te produceren. Deze benadering scheidt de presentatielaag (het Word‑sjabloon) van de datalaag (je Ruby‑code), waardoor het documentgeneratieproces schoon en onderhoudbaar is. De syntaxis is intuïtief voor iedereen die bekend is met Ruby en templating‑talen. Het is ontwerper‑vriendelijk; de inhoud en het ontwerp zijn volledig gescheiden. Ontwerpers kunnen direct in Word werken zonder code aan te raken.

Previous Next

Aan de slag met Sablon

De aanbevolen manier om Sablon te installeren is via RubyGems. Gebruik de volgende opdracht voor een soepele installatie.

Installeer documentatie via RubyGems


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

Inhoud invoegen met Word-velden via Ruby

De eenvoudigste functie is het invoegen van dynamische inhoud. De open source Ruby‑bibliotheek Sablon gebruikt de ingebouwde veldsyntaxis van Word om placeholders te definiëren. In je Word‑sjabloon voeg je een veldcode in waar je dynamische inhoud wilt. Sablon zal dit veld vervangen door jouw waarde. Het volgende voorbeeld toont hoe softwareontwikkelaars dynamisch een stukje inhoud kunnen invoegen om een gebruiker te begroeten.

Hoe dynamisch tekstinhoud invoegen in Word Docs-bestand 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.

HTML naar WordML Conversie

Een van de krachtigste functies is het vermogen om dynamische tabellen met meerdere rijen te genereren. Dit is essentieel voor het maken van gespecificeerde lijsten in facturen, productcatalogi of elk rapport met herhalende gegevens.\nJe definieert een loop‑regio in je tabel en de bibliotheek dupliceert alles tussen deze markeringen voor elk item in je data‑array. Je kunt elke cel afzonderlijk opmaken in Word. Bijvoorbeeld kun je cijfers rechts uitlijnen, kopteksten vet maken, of specifieke lettertypen toepassen. Alle opmaak wordt bewaard in de gegenereerde rijen.

Hoe HTML-inhoud omzetten naar een Word Docx-bestand via Ruby-bibliotheek?

require "sablon"

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

html_content = "

Dit is een subkop

De open source Ruby-Docx-Templater bibliotheek is zeer eenvoudig te hanteren en ondersteunt geheugen‑gebaseerde verwerking binnen Ruby‑applicaties. Alle documentmanipulatie gebeurt in het geheugen, wat betekent dat je gevoelige gegevens nooit het bestandssysteem aanraken tijdens het templating‑proces. Dit is cruciaal voor applicaties die omgaan met vertrouwelijke informatie zoals medische dossiers, financiële documenten of persoonsgegevens.

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

Dynamische afbeeldinginvoeging via Ruby

Een uniek aspect van Ruby-Docx-Templater is dat je soms de onderliggende XML van je Word‑document handmatig moet bewerken. Word voegt vaak opmaak‑markup in die je sjabloonsleutels kan splitsen, waardoor het substitutieproces breekt. Wanneer je $CUSTOMER_NAME$ in Word typt, kan het correct lijken op het scherm, maar de onderliggende XML zou er zo uit kunnen zien.

Hoe dynamisch een afbeelding invoegen in Word Docx via Ruby-bibliotheek?


// 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")
}

Conditionele weergave via Ruby

De open source Sablon‑bibliotheek bevat een handige functie voor het dynamisch invoegen van afbeeldingen in Word‑Docx‑documenten met behulp van de Ruby‑bibliotheek. Met slechts een paar regels code kunnen ontwikkelaars dynamisch afbeeldingen in hun documenten invoegen. Je kunt een afbeeldingsbestand specificeren, en Sablon zal het in het document insluiten. Het volgende voorbeeld laat zien hoe je dynamische afbeeldinginvoeging in Word‑documenten realiseert.

Hoe delen van Word Docx-documenten weergeven of verbergen met Ruby?


context = {
  show_extra_info: true # or false
}
 Dutch