Създаване на динамични Word файлове от шаблон чрез Безплатен Ruby API
Водеща отворена код Ruby библиотека, проектирана за създаване на динамични Microsoft Word (.docx) документи от предварително проектирани шаблони.
Какво е Ruby-Docx-Templater?
Генерирането на динамични Microsoft Word документи (.docx) от Ruby приложение може да бъде изненадващо сложна задача. Може да се наложи да създавате отчети, фактури или писма, проектирани от нетехнически потребители. Въпреки че съществуват множество решения, те често изискват тежки зависимости като LibreOffice или локални инсталации на Word. Тук на помощ идва Ruby-Docx-Templater, лека gem, която предлага различен подход. Тя позволява на потребителите да използват стандартен .docx файл като шаблон, като го манипулират изцяло в паметта, за да вмъкнат данните си. Това я прави бърза, сигурна и готова за внедряване опция за всеки Ruby разработчик.
В основата си библиотеката Ruby-Docx-Templater е шаблониращ двигател, специално за .docx файлове. Тя е лека, мощна Ruby gem, проектирана за създаване на динамични Microsoft Word (.docx) документи от предварително проектирани шаблони. Работи чрез проста система, базирана на тагове, в рамките на стандартен Word документ. Създавате шаблон в Word, поставяте специални тагове където искате да се появи динамично съдържание, след което gem‑ът заменя тези тагове с реални данни от вашето Ruby приложение. Обработката в паметта, поддръжката на сложни структури на таблици и запазването на форматирането я правят идеална за автоматизация на бизнес документи.
Започване с Ruby-Docx-Templater
Препоръчителният начин за инсталиране на Ruby-Docx-Templater е чрез RubyGems. Моля, използвайте следната команда за безпроблемна инсталация.
Инсталирайте Ruby-Docx-Templater чрез RubyGems
gem install ruby-docx-templater Инсталирайте Ruby-Docx-Templater чрез GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Създаване на Word Docx файл от шаблон чрез Ruby
Най-основната функция на Ruby-Docx-Templater е простото заместване на текст. Можете да поставяте запълващи места навсякъде в Word документа, а библиотеката ще ги замени с реални стойности. Красотата на този подход е, че форматирането се запазва. Ако в шаблона направите $COMPANY_NAME$ удебелен и червен, той ще остане удебелен и червен в изхода. Това дава на дизайнерите пълен контрол върху външния вид на документа. Във вашия Word шаблон дефинирате ключове, използвайки синтаксиса $KEY$. Долните знаци действат като разделители, уточнявайки къде да се извърши замяната.
Създаване на Word Docx файл, използвайки шаблонен файл, чрез 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')
Поддръжка на многоредови таблици (цикли)
Една от най-мощните функции е способността да се генерират динамични таблици с множество редове. Това е от съществено значение за създаване на подробни списъци във фактури, продуктов каталози или какъвто и да е отчет с повтарящи се данни. Определяте регион за цикъл в таблицата и библиотеката ще дублира всичко между тези маркери за всеки елемент от масива с данни. Можете да форматирате всяка клетка поотделно в Word. Например, може да подравните числата вдясно, да направите заглавията удебелени или да приложите специфични шрифтове. Цялото форматиране ще се запази в генерираните редове.
Как да създадете продуктов отчет с множество редове във формати Docx чрез 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')
Обработка в паметта
Отворената код Ruby-Docx-Templater библиотека е изключително лесна за работа и поддържа обработка в паметта вътре в Ruby приложенията. Цялото манипулиране на документа се извършва в паметта, което означава, че вашите чувствителни данни никога не докосват файловата система по време на процеса на шаблониране. Това е от решаващо значение за приложения, работещи с конфиденциална информация, като медицински записи, финансови документи или лични данни.
Работа с Word XML
Един уникален аспект на Ruby-Docx-Templater е, че понякога трябва ръчно да редактирате подлежащия XML на вашия Word документ. Word често вмъква маркиране за форматиране, което може да раздели вашите шаблонни ключове, нарушавайки процеса на замяна. Когато напишете $CUSTOMER_NAME$ в Word, то може да изглежда правилно на екрана, но подлежащият XML може да изглежда така.