Åpen kildekode Ruby-bibliotek for å generere Word DOCX-filer

Et kraftig gratis Ruby API som gjør det mulig for programvareutviklere å opprette Word DOCX-dokumenter med letthet. Det lar deg designe dokumentet's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Hva er Sablon-biblioteket?

I programvareutviklingsverdenen er generering av dynamiske dokumenter som rapporter, fakturaer eller brev et vanlig krav. Mens mange biblioteker kan lage dokumenter fra bunnen av, medfører de ofte en bratt læringskurve og tidkrevende koding for å få formatet helt riktig. Det er her Sablon, et kraftig åpen kildekode Ruby-bibliotek, kommer til unnsetning. Sablon revolusjonerer dokumentgenerering ved å utnytte kjennskapen til Microsoft Word og Ruby sin kraft, slik at du kan lage komplekse og vakkert formaterte dokumenter med minimal innsats. Det støtter funksjoner som opprettelse av Word Docx, innsetting av innhold via MailMerge-felt, avansert formateringsstøtte, tilføyelse av annotasjoner i maler, konfigurerbar HTML‑ og CSS‑konvertering og mye mer.

I sin kjerne er Sablon en dokumentmalprosessor for .docx-filer. Den bruker Words innebygde Mail Merge-funksjonalitet, som gjør det mulig å lage maler i et kjent miljø. Du kan designe dokumentets layout, bruke stiler, og bruke Mail Merge-felt som plassholdere for dynamisk innhold. Sablon tar så denne malen og en datakontext (en Ruby-hash) for å produsere et endelig, datafyllt Word-dokument. Denne tilnærmingen separerer presentasjonslaget (Word-malen) fra datalaget (din Ruby-kode), og gjør dokumentgenereringsprosessen ren og vedlikeholdbar. Sintaksen er intuitiv for alle som er kjent med Ruby og malingsspråk. Det er designervennlig, innhold og design er helt adskilt. Designere kan jobbe direkte i Word uten å berøre kode.

Previous Next

Kom i gang med Sablon

Den anbefalte måten å installere Sablon på er ved å bruke RubyGems. Vennligst bruk følgende kommando for en smidig installasjon.

Installer dokumenter via RubyGems


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

Innholdsinnsetting med Word-felt via Ruby

Den mest grunnleggende funksjonen er å sette inn dynamisk innhold. Det åpne kildekode Ruby-biblioteket Sablon bruker Words innebygde feltsyntaks for å definere plassholdere. I Word-malen din setter du inn en feltkode der du vil ha dynamisk innhold. Sablon vil erstatte dette feltet med verdien din. Følgende eksempel viser hvordan programvareutviklere kan dynamisk sette inn et innholdsstykke for å hilse på en bruker.

Hvordan dynamisk sette inn tekstinnhold i Word-docs-fil via 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 til WordML-konvertering

En av Sablons fremtredende funksjoner er evnen til å konvertere HTML til WordProcessingML (XML-formatet som brukes av .docx-filer). Dette er utrolig nyttig når du trenger å sette inn rik tekst, som formaterte avsnitt, lister eller tabeller, fra en database eller en riktekst-editor. Sablon vil konvertere HTML-strengen til en korrekt formatert seksjon i Word-dokumentet, og bevare overskrifter, fet og kursiv tekst, samt listeformatering. Her er et enkelt eksempel som viser hvordan du laster en eksisterende mal og konverterer HTML-innholdet til en Word Docx-fil i Ruby-applikasjoner.

Hvordan konvertere HTML-innhold til Word Docx-fil via Ruby-bibliotek?

require "sablon"

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

html_content = "

Dette er en underoverskrift

Dette er et avsnitt med fet og kursiv tekst.

  • Første element
  • Andre element
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

Dynamisk bildeinnsetting via Ruby

Det åpne kildekode Sablon-biblioteket har inkludert en nyttig funksjon for dynamisk innsetting av bilder i Word Docx-dokumenter ved bruk av Ruby-biblioteket. Med bare noen få kodelinjer kan utviklere dynamisk sette inn bilder i dokumentene dine. Du kan spesifisere en bildefil, og Sablon vil sette den inn i dokumentet. Følgende eksempel demonstrerer hvordan du oppnår dynamisk bildeinnsetting i Word-dokumenter.

Hvordan dynamisk sette inn bilde i Word Docx via Ruby-bibliotek?


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

Betinget rendering via Ruby

Sablon-biblioteket støtter betingede blokker, som lar brukere vise eller skjule deler av Word-dokumentet basert på tilstedeværelsen eller verdien av en variabel. Dette er perfekt for tilpasning av dokumenter basert på spesifikke betingelser. For eksempel viser følgende eksempel hvordan brukere kan sette kommandoer for å skjule eller vise spesifikk informasjon i et Word-dokument. Hvis show_extra_info er sann, vil innholdet mellom if- og endIf-taggene bli inkludert i det endelige dokumentet. Hvis den er falsk eller nil, vil innholdet bli fjernet.

Hvordan vise eller skjule deler av Word Docx-dokumenter ved bruk av Ruby?


context = {
  show_extra_info: true # or false
}
 Norsk