Twórz dynamiczne pliki Word z szablonu przy użyciu darmowego Ruby API
Wiodąca otwarto‑źródłowa biblioteka Ruby zaprojektowana do tworzenia dynamicznych dokumentów Microsoft Word (.docx) z wstępnie przygotowanych szablonów.
Czym jest Ruby-Docx-Templater?
Generowanie dynamicznych dokumentów Microsoft Word (.docx) z aplikacji Ruby może być zaskakująco skomplikowanym zadaniem. Możesz potrzebować tworzyć raporty, faktury lub listy, które zostały zaprojektowane przez osoby nietechniczne. Choć istnieje wiele rozwiązań, często wymagają one ciężkich zależności, takich jak LibreOffice czy lokalne instalacje Worda. Tutaj wchodzi w grę Ruby-Docx-Templater, lekki gem, który przyjmuje inne podejście. Pozwala użytkownikom używać standardowego pliku .docx jako szablonu, manipulując nim w całości w pamięci, aby wstrzyknąć własne dane. Dzięki temu jest szybkim, bezpiecznym i przyjaznym pod względem wdrożenia rozwiązaniem dla każdego programisty Ruby.
W swojej istocie biblioteka Ruby-Docx-Templater jest silnikiem szablonów przeznaczonym specjalnie dla plików .docx. To lekki, potężny gem Ruby zaprojektowany do tworzenia dynamicznych dokumentów Microsoft Word (.docx) z wcześniej przygotowanych szablonów. Działa poprzez prosty system oparty na tagach wewnątrz standardowego dokumentu Word. Tworzysz szablon w Wordzie, umieszczasz specjalne tagi tam, gdzie ma pojawić się dynamiczna treść, a następnie gem zastępuje te tagi rzeczywistymi danymi z Twojej aplikacji Ruby. Przetwarzanie w pamięci, wsparcie dla złożonych struktur tabel oraz zachowanie formatowania czynią go idealnym rozwiązaniem do automatyzacji dokumentów biznesowych.
Rozpoczęcie pracy z Ruby-Docx-Templater
Zalecany sposób instalacji Ruby-Docx-Templater to użycie RubyGems. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.
Instaluj Ruby-Docx-Templater via RubyGems
gem install ruby-docx-templater Instaluj Ruby-Docx-Templater via GitHub
git clone https://github.com/jawspeak/ruby-docx-templater.git You can also download it directly from GitHub.Utwórz plik Word Docx z szablonu przy użyciu Ruby
Podstawową funkcją Ruby-Docx-Templater jest prosta zamiana tekstu. Możesz umieszczać placeholdery w dowolnym miejscu w dokumencie Word, a biblioteka zastąpi je rzeczywistymi wartościami. Uroda tego podejścia polega na zachowaniu formatowania. Jeśli w szablonie ustawisz $COMPANY_NAME$ jako pogrubione i czerwone, pozostanie pogrubione i czerwone w wyniku. Daje to projektantom pełną kontrolę nad wyglądem dokumentu. W szablonie Word definiujesz klucze używając składni $KEY$. Znak dolara pełni rolę delimitera, jasno określając, gdzie mają nastąpić podmiany.
Utworzyć plik Word Docx przy użyciu pliku szablonu w 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')
Wsparcie dla pętli tabel wielowierszowych
Jedną z najpotężniejszych funkcji jest zdolność do generowania dynamicznych tabel z wieloma wierszami. Jest to niezbędne przy tworzeniu list szczegółowych w fakturach, katalogach produktów lub w każdym raporcie z powtarzającymi się danymi. Definiujesz region pętli w swojej tabeli, a biblioteka powiela wszystko pomiędzy tymi znacznikami dla każdego elementu w Twojej tablicy danych. Możesz formatować każdą komórkę indywidualnie w Wordzie. Na przykład możesz wyrównać liczby do prawej, pogrubić nagłówki lub zastosować określone czcionki. Całe formatowanie zostanie zachowane w wygenerowanych wierszach.
Jak stworzyć raport produktu z wieloma wierszami w formacie Docx przy użyciu biblioteki 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')
Przetwarzanie w pamięci
Biblioteka open source Ruby-Docx-Templater jest bardzo łatwa w obsłudze i obsługuje przetwarzanie w pamięci w aplikacjach Ruby. Cała manipulacja dokumentem odbywa się w pamięci, co oznacza, że Twoje wrażliwe dane nigdy nie trafiają do systemu plików podczas procesu szablonowania. Jest to kluczowe dla aplikacji przetwarzających poufne informacje, takie jak rekordy medyczne, dokumenty finansowe czy dane osobowe.
Praca z Word XML
Jednym z unikalnych aspektów Ruby-Docx-Templater jest to, że czasami trzeba ręcznie edytować podstawowy XML dokumentu Word. Word często wstawia znaczniki formatowania, które mogą rozdzielić klucze szablonu, łamiąc proces podmiany. Gdy wpiszesz $CUSTOMER_NAME$ w Wordzie, może wyglądać to poprawnie na ekranie, ale podstawowy XML może wyglądać tak.