Maak dynamische Word-bestanden vanuit een sjabloon via gratis Ruby API
Leidende open source Ruby bibliotheek ontworpen om dynamische Microsoft Word (.docx) documenten te maken vanuit vooraf ontworpen sjablonen.
Wat is Ruby-Docx-Templater?
Het genereren van dynamische Microsoft Word-documenten (.docx) vanuit een Ruby‑applicatie kan een verrassend complexe taak zijn. Je moet misschien rapporten, facturen of brieven genereren die door niet‑technische gebruikers zijn ontworpen. Hoewel er veel oplossingen bestaan, vereisen deze vaak zware afhankelijkheden zoals LibreOffice of lokale Word‑installaties. Daar komt Ruby-Docx-Templater, een lichtgewicht gem die een andere aanpak hanteert. Het stelt gebruikers in staat een standaard .docx‑bestand als sjabloon te gebruiken, volledig in het geheugen te manipuleren om hun gegevens in te voegen. Dit maakt het een snelle, veilige en deployment‑vriendelijke optie voor elke Ruby‑ontwikkelaar.
De kern van de Ruby-Docx-Templater bibliotheek is een templating‑engine specifiek voor .docx‑bestanden. Het is een lichtgewicht, krachtig Ruby‑gem ontworpen om dynamische Microsoft Word (.docx) documenten te maken vanuit vooraf ontworpen sjablonen. Het werkt door een eenvoudig tag‑gebaseerd systeem binnen een standaard Word‑document te gebruiken. Je maakt een sjabloon in Word, plaatst speciale tags waar je dynamische inhoud wilt laten verschijnen, en laat het gem die tags vervangen door daadwerkelijke data uit je Ruby‑applicatie. De geheugen‑gebaseerde verwerking, ondersteuning voor complexe tabelstructuren en behoud van opmaak maken het ideaal voor automatisering van zakelijke documenten.
Aan de slag met Ruby-Docx-Templater
De aanbevolen manier om Ruby-Docx-Templater te installeren is via RubyGems. Gebruik de volgende opdracht voor een vlotte installatie.
Installeer Ruby-Docx-Templater via RubyGems
gem install ruby-docx-templater Installeer Ruby-Docx-Templater via GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Maak Word Docx-bestand vanuit sjabloon via Ruby
De meest eenvoudige functie van Ruby-Docx-Templater is eenvoudige tekstvervanging. Je kunt placeholders overal in je Word‑document plaatsen, en de bibliotheek vervangt ze door de daadwerkelijke waarden. Het mooie van deze aanpak is dat de opmaak behouden blijft. Als je $COMPANY_NAME$ vet en rood maakt in je sjabloon, blijft het vet en rood in de output. Dit geeft ontwerpers volledige controle over het uiterlijk van het document. In je Word‑sjabloon definieer je sleutels met de $KEY$‑syntaxis. De dollartekens fungeren als delimiters, zodat duidelijk is waar de substituties moeten plaatsvinden.
Een Word Docx-bestand maken met sjabloonbestand 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')
Ondersteuning voor tabellen met meerdere rijen (loops)
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. Je 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 maak je een productrapport met meerdere rijen in Docx-formaat via Ruby-bibliotheek?
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')
Geheugen-gebaseerde verwerking
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.
Werken met Word XML
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.