Open-Source Ruby-Bibliothek zur Generierung von Word DOCX-Dateien

Eine leistungsstarke, kostenlose Ruby-API, die Softwareentwicklern ermöglicht, Word DOCX-Dokumente mühelos zu erstellen. Sie ermöglicht das Gestalten von Dokumenten's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Was ist die Sablon-Bibliothek?

In der Welt der Softwareentwicklung ist die Erstellung dynamischer Dokumente wie Berichte, Rechnungen oder Briefe eine gängige Anforderung. Während viele Bibliotheken Dokumente von Grund auf erstellen können, erfordern sie oft eine steile Lernkurve und mühsames Codieren, um die Formatierung exakt zu erhalten. Hier kommt Sablon, eine leistungsstarke Open‑Source‑Ruby‑Bibliothek, zur Rettung. Sablon revolutioniert die Dokumentenerstellung, indem es die Vertrautheit von Microsoft Word und die Leistungsfähigkeit von Ruby nutzt und es Ihnen ermöglicht, komplexe und wunderschön formatierte Dokumente mit minimalem Aufwand zu erstellen. Sie unterstützt Funktionen wie die Erstellung von Word‑Docx, das Einfügen von Inhalten über Mail‑Merge‑Felder, erweiterte Formatierungsunterstützung, das Hinzufügen von Anmerkungen in Vorlagen, konfigurierbare HTML‑ und CSS‑Konvertierung und vieles mehr.

Im Kern ist Sablon ein Dokumentvorlagen‑Prozessor für .docx‑Dateien. Es nutzt die integrierte Mail‑Merge‑Funktion von Word, sodass Sie Vorlagen in einer vertrauten Umgebung erstellen können. Sie können das Layout Ihres Dokuments gestalten, Stile anwenden und Mail‑Merge‑Felder als Platzhalter für dynamische Inhalte verwenden. Sablon nimmt dann diese Vorlage und einen Datenkontext (ein Ruby‑Hash), um ein finales, mit Daten gefülltes Word‑Dokument zu erzeugen. Dieser Ansatz trennt die Präsentationsschicht (die Word‑Vorlage) von der Datenschicht (Ihr Ruby‑Code) und macht den Dokumentenerstellungsprozess sauber und wartbar. Die Syntax ist für jeden, der mit Ruby und Templating‑Sprachen vertraut ist, intuitiv. Sie ist designer‑freundlich, Inhalt und Design sind vollständig getrennt. Designer können direkt in Word arbeiten, ohne Code zu berühren.

Previous Next

Erste Schritte mit Sablon

Der empfohlene Weg, Sablon zu installieren, ist die Nutzung von RubyGems. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.

Docs via RubyGems installieren


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

Einfügen von Inhalten mit Word-Feldern via Ruby

Die grundlegendste Funktion ist das Einfügen dynamischer Inhalte. Die Open‑Source‑Ruby‑Bibliothek Sablon verwendet die integrierte Feldsyntax von Word, um Platzhalter zu definieren. In Ihrer Word‑Vorlage fügen Sie einen Feldcode dort ein, wo Sie dynamischen Inhalt wünschen. Sablon ersetzt dieses Feld durch Ihren Wert. Das folgende Beispiel zeigt, wie Softwareentwickler dynamisch ein Stück Inhalt einfügen können, um einen Benutzer zu begrüßen.

Wie kann man Textinhalte dynamisch in Word-Dokumente via Ruby einfügen?

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-zu-WordML-Konvertierung

Eine der herausragenden Eigenschaften von Sablon ist die Fähigkeit, HTML in WordProcessingML (das XML‑Format, das von .docx‑Dateien verwendet wird) zu konvertieren. Das ist äußerst nützlich, wenn Sie Rich‑Text‑Inhalte wie formatierte Absätze, Listen oder Tabellen aus einer Datenbank oder einem Rich‑Text‑Editor einfügen müssen. Sablon wandelt die HTML‑Zeichenkette in einen korrekt formatierten Abschnitt im Word‑Dokument um und bewahrt dabei Überschriften, fett und kursiv formatierten Text sowie Listformatierungen. Hier ein einfaches Beispiel, das zeigt, wie eine vorhandene Vorlage geladen und der HTML‑Inhalt in eine Word‑Docx‑Datei innerhalb von Ruby‑Anwendungen konvertiert wird.

Wie konvertiert man HTML-Inhalte in eine Word-Docx-Datei via Ruby-Bibliothek?

require "sablon"

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

html_content = "

Dies ist eine Unterüberschrift

Dies ist ein Absatz mit fett und kursiv formatiertem Text.

  • Erster Eintrag
  • Zweiter Eintrag
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

Dynamisches Einfügen von Bildern via Ruby

Die Open‑Source‑Bibliothek Sablon enthält eine nützliche Funktion zum dynamischen Einfügen von Bildern in Word‑Docx‑Dokumente mittels Ruby‑Bibliothek. Mit nur wenigen Code‑Zeilen können Entwickler Bilder dynamisch in Ihre Dokumente einfügen. Sie können eine Bilddatei angeben, und Sablon bettet sie in das Dokument ein. Das folgende Beispiel zeigt, wie man dynamisches Einfügen von Bildern in Word‑Dokumente erreicht.

Wie fügt man dynamisch ein Bild in Word-Docx via Ruby-Bibliothek ein?


// 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")
}

Bedingte Darstellung via Ruby

Die Sablon‑Bibliothek unterstützt bedingte Blöcke, sodass Benutzer Teile ihres Word-Dokuments basierend auf dem Vorhandensein oder dem Wert einer Variablen ein- oder ausblenden können. Das ist ideal, um Dokumente an spezifische Bedingungen anzupassen. Zum Beispiel zeigt das folgende Beispiel, wie Benutzer Befehle festlegen können, um bestimmte Informationen in einem Word-Dokument zu verbergen oder anzuzeigen. Ist show_extra_info wahr, wird der Inhalt zwischen den if- und endIf‑Tags in das endgültige Dokument aufgenommen. Ist er falsch oder nil, wird der Inhalt entfernt.

Wie kann man Teile von Word-Docx-Dokumenten mit Ruby ein- oder ausblenden?


context = {
  show_extra_info: true # or false
}
 Deutsch