Відкрита 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 як placeholders для динамічного вмісту. Потім Sablon бере цей шаблон та контекст даних (Ruby hash), щоб створити фінальний Word документ, заповнений даними. Такий підхід розділяє рівень презентації (шаблон Word) та рівень даних (ваш Ruby код), роблячи процес генерації документу чистим та підтримуваним. Синтаксис інтуїтивний для будь‑кого, хто знайомий з Ruby та шаблонними мовами. Це дружньо до дизайнерів: вміст та дизайн повністю розділені. Дизайнери можуть працювати безпосередньо у Word, не торкаючись коду.

Previous Next

Початок роботи з Sablon

Рекомендований спосіб встановлення Sablon — використання RubyGems. Будь ласка, використайте наступну команду для плавного встановлення.

Встановлення документів через RubyGems


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

Вставка вмісту за допомогою Word полів через Ruby

Найпростіша функція — вставка динамічного вмісту. Відкрита Ruby бібліотека Sablon використовує вбудований синтаксис полів Word для визначення placeholders. У вашому шаблоні Word ви вставляєте поле коду там, де потрібен динамічний вміст. Sablon замінить це поле вашим значенням. Наведений приклад демонструє, як розробники можуть динамічно вставити частину вмісту, щоб привітати користувача.

Як динамічно вставляти текстовий вміст у Word Docs файл через 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
}
 Українська