Open Source Ruby bibliotek til at generere Word DOCX-filer
Et kraftfuldt gratis Ruby API, der gør det muligt for softwareudviklere at oprette Word DOCX-dokumenter med lethed. Det gør det muligt at designe dokumentet's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.
Hvad er Sablon-biblioteket?
I softwareudviklingsverdenen er generering af dynamiske dokumenter som rapporter, fakturaer eller breve et almindeligt krav. Selvom mange biblioteker kan oprette dokumenter fra bunden, involverer de ofte en stejl indlæringskurve og kedeligt kodning for at få formateringen helt rigtig. Her kommer Sablon, et kraftfuldt open-source Ruby-bibliotek, til undsætning. Sablon revolutionerer dokumentgenerering ved at udnytte kendskabet til Microsoft Word og kraften i Ruby, så du kan oprette komplekse og smukt formaterede dokumenter med minimal indsats. Det understøtter funktioner som Word Docx-oprettelse, indholdsindsættelse via MailMerge-felter, avanceret formateringssupport, tilføjelse af annotationer i skabeloner, konfigurerbar HTML- og CSS-konvertering og mange flere.
I sin kerne er Sablon en dokumentskabelonprocessor for .docx-filer. Det udnytter Words indbyggede Mail Merge-funktionalitet, så du kan oprette skabeloner i et velkendt miljø. Du kan designe dokumentets layout, anvende stilarter og bruge Mail Merge-felter som pladsholdere til dynamisk indhold. Sablon tager derefter denne skabelon og en datakontext (en Ruby-hash) for at producere et endeligt, datafyldt Word-dokument. Denne tilgang adskiller præsentationslaget (Word-skabelonen) fra datalaget (din Ruby-kode), så dokumentgenereringsprocessen bliver ren og vedligeholdelig. Dens syntaks er intuitiv for enhver, der er bekendt med Ruby og templating-sprog. Det er designer-venligt; indholdet og designet er fuldstændigt adskilt. Designere kan arbejde direkte i Word uden at berøre kode.
Kom i gang med Sablon
Den anbefalede måde at installere Sablon på er at bruge RubyGems. Brug venligst følgende kommando for en problemfri installation.
Indholdsindsættelse med Word-felter via Ruby
Den mest grundlæggende funktion er indsættelse af dynamisk indhold. Open source Ruby-biblioteket Sablon bruger Words indbyggede feltsyntaks til at definere pladsholdere. I din Word-skabelon indsætter du en feltkode, hvor du ønsker dynamisk indhold. Sablon vil erstatte dette felt med din værdi. Følgende eksempel demonstrerer, hvordan softwareudviklere kan dynamisk indsætte et stykke indhold for at hilse på en bruger.
Hvordan indsættes dynamisk tekstindhold 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 af Sablons fremtrædende funktioner er dens evne til at konvertere HTML til WordProcessingML (XML-formatet, der bruges af .docx-filer). Dette er utrolig nyttigt, når du skal indsætte rigt tekstindhold, såsom formaterede afsnit, lister eller tabeller, fra en database eller en rich text-editor. Sablon vil konvertere HTML-strengen til en korrekt formateret sektion i Word-dokumentet, bevare overskrifter, fed og kursiv tekst samt listeformatering. Her er et enkelt eksempel, der viser, hvordan man indlæser en eksisterende skabelon og konverterer HTML-indholdet til en Word Docx-fil i Ruby-applikationer.
Hvordan konverteres HTML-indhold til Word Docx-fil via Ruby-biblioteket?
require "sablon"
template = Sablon.template(File.expand_path("template.docx"))
html_content = "Dette er en underoverskrift
Dette er et afsnit med fed og kursiv tekst.
- Første element
- Andet element
"
context = {
article_content: Sablon.content(:html, html_content)
}
template.render_to_file(File.expand_path("output.docx"), context)
Conditional Rendering
Dynamisk billedindsættelse via Ruby
Open source Sablon-biblioteket har inkluderet en nyttig funktion til dynamisk indsættelse af billeder i Word Docx-dokumenter ved hjælp af Ruby-biblioteket. Med blot et par linjer kode kan udviklere dynamisk indsætte billeder i dine dokumenter. Du kan angive en billedfil, og Sablon vil indlejre den i dokumentet. Følgende eksempel demonstrerer, hvordan du opnår dynamisk billedindsættelse i Word-dokumenter.
Hvordan indsættes dynamisk billede i Word Docx via Ruby-biblioteket?
// 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 understøtter betingede blokke, der giver brugere mulighed for at vise eller skjule dele af deres Word-dokument baseret på tilstedeværelsen eller værdien af en variabel. Dette er perfekt til at tilpasse dokumenter baseret på specifikke betingelser. For eksempel viser følgende eksempel, hvordan brugere kan indstille kommandoer til at skjule eller vise specifik information i et Word-dokument. Hvis show_extra_info er sand, vil indholdet mellem if og endIf-tags blive inkluderet i det endelige dokument. Hvis den er falsk eller nil, fjernes indholdet.
Hvordan vises eller skjules dele af Word Docx-dokumenter ved hjælp af Ruby?
context = {
show_extra_info: true # or false
}