Thư viện Ruby mã nguồn mở để tạo tệp Word DOCX

Một API Ruby miễn phí mạnh mẽ cho phép các nhà phát triển phần mềm tạo tài liệu Word DOCX một cách dễ dàng. Nó cho phép thiết kế tài liệu's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Thư viện Sablon là gì?

Trong thế giới phát triển phần mềm, việc tạo ra các tài liệu động như báo cáo, hoá đơn hoặc thư là một yêu cầu phổ biến. Mặc dù nhiều thư viện có thể tạo tài liệu từ đầu, chúng thường đòi hỏi một đường cong học tập dốc và việc mã hoá tẻ nhạt để có được định dạng chính xác. Đó là lúc Sablon, một thư viện Ruby mã nguồn mở mạnh mẽ, xuất hiện để giải cứu. Sablon cách mạng hoá việc tạo tài liệu bằng cách tận dụng sự quen thuộc của Microsoft Word và sức mạnh của Ruby, cho phép bạn tạo các tài liệu phức tạp và được định dạng đẹp mắt với ít nỗ lực. Nó hỗ trợ các tính năng như tạo Word Docx, chèn nội dung qua các trường MailMerge, hỗ trợ định dạng nâng cao, thêm chú thích trong mẫu, chuyển đổi HTML & CSS có thể cấu hình và nhiều hơn nữa.

Về mặt cốt lõi, Sablon là một bộ xử lý mẫu tài liệu cho các tệp .docx. Nó sử dụng chức năng Mail Merge tích hợp sẵn của Word, cho phép bạn tạo mẫu trong một môi trường quen thuộc. Bạn có thể thiết kế bố cục tài liệu, áp dụng kiểu dáng và sử dụng các trường Mail Merge làm chỗ giữ chỗ cho nội dung động. Sau đó, Sablon lấy mẫu này và một ngữ cảnh dữ liệu (một hash Ruby) để tạo ra một tài liệu Word cuối cùng, được điền dữ liệu. Cách tiếp cận này tách lớp trình bày (mẫu Word) ra khỏi lớp dữ liệu (mã Ruby của bạn), làm cho quy trình tạo tài liệu sạch sẽ và dễ bảo trì. Cú pháp của nó trực quan đối với bất kỳ ai quen thuộc với Ruby và các ngôn ngữ mẫu. Nó thân thiện với nhà thiết kế, nội dung và thiết kế hoàn toàn tách biệt. Các nhà thiết kế có thể làm việc trực tiếp trong Word mà không cần chạm tới mã.

Previous Next

Bắt đầu với Sablon

Cách khuyến nghị để cài đặt Sablon là sử dụng RubyGems. Vui lòng dùng lệnh sau để cài đặt trơn tru.

Cài đặt tài liệu qua RubyGems


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

Chèn nội dung bằng các trường Word qua Ruby

Chức năng cơ bản nhất là chèn nội dung động. Thư viện Ruby mã nguồn mở Sablon sử dụng cú pháp trường tích hợp của Word để định nghĩa các chỗ giữ chỗ. Trong mẫu Word của bạn, bạn chèn một mã trường tại nơi bạn muốn nội dung động xuất hiện. Sablon sẽ thay thế trường này bằng giá trị của bạn. Ví dụ dưới đây minh họa cách các nhà phát triển phần mềm có thể chèn động một đoạn nội dung để chào một người dùng.

Cách chèn nội dung văn bản động vào tệp Word Docs qua 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.

Chuyển đổi HTML sang WordML

Một trong những tính năng nổi bật của Sablon là khả năng chuyển đổi HTML thành WordProcessingML (định dạng XML được sử dụng bởi các tệp .docx). Điều này cực kỳ hữu ích khi bạn cần chèn nội dung văn bản phong phú, chẳng hạn như các đoạn đã định dạng, danh sách hoặc bảng, từ cơ sở dữ liệu hoặc trình soạn thảo văn bản. Sablon sẽ chuyển đổi chuỗi HTML thành một phần được định dạng đúng trong tài liệu Word, giữ nguyên các tiêu đề, văn bản in đậm và nghiêng, và định dạng danh sách. Dưới đây là một ví dụ đơn giản minh họa cách tải một mẫu hiện có và chuyển đổi nội dung HTML thành tệp Word Docx trong các ứng dụng Ruby.

Cách chuyển đổi nội dung HTML sang tệp Word Docx qua thư viện Ruby?

require "sablon"

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

html_content = "

Đây là tiêu đề phụ

Đây là một đoạn văn với văn bản in đậmin nghiêng.

  • Mục đầu tiên
  • Mục thứ hai
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

Chèn hình ảnh động qua Ruby

Thư viện Sablon mã nguồn mở đã bao gồm một tính năng hữu ích cho việc chèn động hình ảnh vào tài liệu Word Docx bằng thư viện Ruby. Chỉ với vài dòng mã, các nhà phát triển có thể chèn động hình ảnh vào tài liệu của bạn. Bạn có thể chỉ định một tệp hình ảnh, và Sablon sẽ nhúng nó vào tài liệu. Ví dụ dưới đây minh họa cách thực hiện chèn động hình ảnh vào tài liệu Word.

Cách chèn hình ảnh động vào Word Docx qua thư viện 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")
}

Kết xuất có điều kiện qua Ruby

Thư viện Sablon hỗ trợ các khối có điều kiện, cho phép người dùng hiển thị hoặc ẩn các phần của tài liệu Word dựa trên sự tồn tại hoặc giá trị của một biến. Điều này hoàn hảo cho việc tùy chỉnh tài liệu dựa trên các điều kiện cụ thể. Ví dụ dưới đây cho thấy cách người dùng có thể đặt lệnh để ẩn hoặc hiển thị thông tin cụ thể trong tài liệu Word. Nếu show_extra_info là true, nội dung giữa các thẻ if và endIf sẽ được bao gồm trong tài liệu cuối cùng. Nếu nó là false hoặc nil, nội dung sẽ bị loại bỏ.

Cách hiển thị hoặc ẩn các phần của tài liệu Word Docx bằng Ruby?


context = {
  show_extra_info: true # or false
}
 Tiếng Việt