Отворен код Ruby библиотека за генериране на Word DOCX файлове
Мощен безплатен Ruby API, който позволява на софтуерните разработчици да създават Word DOCX документи с лекота. Позволява проектиране на документа.'s Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.
Какво е библиотеката Sablon?
В света на софтуерната разработка генерирането на динамични документи като отчети, фактури или писма е често изискване. Докато много библиотеки могат да създават документи от нулата, те често изискват крива на обучение и досадно кодиране, за да получат правилното форматиране. Тук на помощ идва Sablon, мощна отворена код Ruby библиотека. Sablon революционизира генерирането на документи, използвайки познатостта на Microsoft Word и мощта на Ruby, позволявайки ви да създавате сложни и красиво форматирани документи с минимални усилия. Тя поддържа функции като създаване на Word Docx, вмъкване на съдържание чрез MailMerge полета, разширена поддръжка на форматиране, добавяне на анотации в шаблони, конфигурируемо преобразуване на HTML & CSS и много други.
В основата си Sablon е процесор за шаблони на документи за .docx файлове. Той използва вградената функция за Mail Merge на Word, позволявайки ви да създавате шаблони в позната среда. Можете да проектирате оформлението на документа, да прилагате стилове и да използвате Mail Merge полета като заместители за динамично съдържание. Sablon след това взема този шаблон и контекст с данни (Ruby hash) за да произведе окончателен Word документ, попълнен с данни. Този подход отделя слоя за представяне (Word шаблона) от слоя за данни (вашият Ruby код), правейки процеса на генериране на документи чист и поддържим. Синтаксисът му е интуитивен за всеки, запознат с Ruby и шаблониращи езици. Е подходящ за дизайнери – съдържанието и дизайнът са напълно отделени. Дизайнерите могат директно в Word без да докосват код.
Започване с Sablon
Препоръчителният начин за инсталиране на Sablon е чрез RubyGems. Моля, използвайте следната команда за безпроблемна инсталация.
Вмъкване на съдържание с Word полета чрез Ruby
Най-основната функция е вмъкване на динамично съдържание. Отворен код Ruby библиотеката Sablon използва вградения синтаксис на полета в Word за дефиниране на заместители. Във вашия Word шаблон вмъквате код на поле, където искате динамично съдържание. Sablon ще замени това поле с вашата стойност. Следният пример показва как софтуерните разработчици могат динамично да вмъкнат съдържание, за да поздравят потребител.
Как да вмъкнете динамично текстово съдържание в Word документ чрез 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 към WordML
Една от отличителните функции на Sablon е способността му да конвертира HTML в WordProcessingML (XML форматът използван от .docx файлове). Това е изключително полезно, когато трябва да вмъкнете богато текстово съдържание, като форматирани абзаци, списъци или таблици, от база данни или богат текстов редактор. Sablon ще конвертира HTML низа в правилно форматиран раздел в Word документа, запазвайки заглавия, удебелен и курсивен текст и форматирането на списъци. Ето прост пример, който демонстрира как да заредите съществуващ шаблон и да конвертирате HTML съдържанието в Word Docx файл в Ruby приложения.
Как да конвертирате HTML съдържание в Word Docx файл чрез Ruby библиотека?
require "sablon"
template = Sablon.template(File.expand_path("template.docx"))
html_content = "Това е подзаглавие
Това е абзац с удебелен и курсивен текст.
- Първи елемент
- Втори елемент
"
context = {
article_content: Sablon.content(:html, html_content)
}
template.render_to_file(File.expand_path("output.docx"), context)
Conditional Rendering
Динамично вмъкване на изображение чрез Ruby
Отворен код Sablon библиотеката включва полезна функция за динамично вмъкване на изображения в Word Docx документи, използвайки Ruby библиотека. С няколко реда код разработчиците могат динамично да вмъкнат изображения в документите си. Можете да посочите файл с изображение, а Sablon ще го вгради в документа. Следният пример демонстрира как да осъществите динамично вмъкване на изображение в Word документи.
Как да вмъкнете динамично изображение в Word Docx чрез 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")
}
Условно рендиране чрез Ruby
Sablon библиотеката поддържа условни блокове, позволяващи на потребителите да покажат или скрият части от техния Word документ в зависимост от наличието или стойността на променлива. Това е перфектно за персонализиране на документи според конкретни условия. Например следният пример показва как потребителите могат да зададат команди за скриване или показване на конкретна информация в Word документ. Ако show_extra_info е true, съдържанието между if и endIf етикетите ще бъде включено в крайния документ. Ако е false или nil, съдържанието ще бъде премахнато.
Как да покажете или скриете части от Word Docx документи, използвайки Ruby?
context = {
show_extra_info: true # or false
}