Open Source Ruby-bibliotek för att generera Word DOCX-filer

Ett kraftfullt gratis Ruby‑API som möjliggör för mjukvaruutvecklare att enkelt skapa Word DOCX-dokument. Det tillåter att designa dokument's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Vad är Sablon-biblioteket?

I mjukvaruutvecklingens värld är det vanligt att behöva generera dynamiska dokument som rapporter, fakturor eller brev. Även om många bibliotek kan skapa dokument från grunden, innebär de ofta en brant inlärningskurva och tidskrävande kodning för att få formateringen helt rätt. Det är här Sablon, ett kraftfullt open‑source Ruby‑bibliotek, kommer till räddning. Sablon revolutionerar dokumentgenerering genom att utnyttja Microsoft Words välbekanta miljö och Rubys kraft, vilket gör att du kan skapa komplexa och vackert formaterade dokument med minimal ansträngning. Det stöder funktioner som Word Docx‑skapande, innehållsinmatning via MailMerge‑fält, avancerat formateringsstöd, tillägg av annotationer i mallar, konfigurerbar HTML‑ och CSS‑konvertering och mycket mer.

I sin kärna är Sablon en dokumentmallprocessor för .docx‑filer. Den använder Words inbyggda Mail Merge‑funktionalitet, vilket möjliggör att skapa mallar i en bekant miljö. Du kan designa ditt dokuments layout, applicera stilar och använda Mail Merge‑fält som platshållare för dynamiskt innehåll. Sablon tar sedan denna mall och ett datakontext (en Ruby‑hash) för att producera ett slutgiltigt, datafyllt Word‑dokument. Detta tillvägagångssätt separerar presentationslagret (Word‑mallen) från datalagret (din Ruby‑kod), vilket gör dokumentgenereringsprocessen ren och underhållbar. Dess syntax är intuitiv för alla som är bekanta med Ruby och mallspråk. Det är designer‑vänligt, innehåll och design är helt separerade. Designers kan arbeta direkt i Word utan att röra kod.

Previous Next

Komma igång med Sablon

Det rekommenderade sättet att installera Sablon är att använda RubyGems. Använd följande kommando för en smidig installation.

Installera dokument via RubyGems


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

Innehållsinmatning med Word-fält via Ruby

Den mest grundläggande funktionen är att infoga dynamiskt innehåll. Det open‑source Ruby‑biblioteket Sablon använder Words inbyggda fält‑syntax för att definiera platshållare. I din Word‑mall infogar du en fältkod där du vill ha dynamiskt innehåll. Sablon kommer att ersätta detta fält med ditt värde. Följande exempel demonstrerar hur mjukvaruutvecklare kan dynamiskt infoga ett innehållsstycke för att hälsa på en användare.

Hur man dynamiskt infogar textinnehåll i Word-dokumentfil 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 till WordML-konvertering

En av Sablons framstående funktioner är dess förmåga att konvertera HTML till WordProcessingML (XML‑formatet som används av .docx‑filer). Detta är otroligt användbart när du behöver infoga rik text, såsom formaterade stycken, listor eller tabeller, från en databas eller en riktextredigerare. Sablon konverterar HTML‑strängen till ett korrekt formaterat avsnitt i Word‑dokumentet, samtidigt som rubriker, fet och kursiv text samt listformat bevaras. Här är ett enkelt exempel som visar hur man laddar en befintlig mall och konverterar HTML‑innehållet till en Word Docx‑fil i Ruby‑applikationer.

Hur man konverterar HTML-innehåll till Word Docx-fil via Ruby-biblioteket?

require "sablon"

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

html_content = "

Detta är en underrubrik

Detta är ett stycke med fet och kursiv text.

  • Första objektet
  • Andra objektet
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

Dynamisk bildinmatning via Ruby

Det open‑source Sablon‑biblioteket har inkluderat en praktisk funktion för att dynamiskt infoga bilder i Word Docx‑dokument med Ruby‑biblioteket. Med bara ett par kodrader kan utvecklare dynamiskt infoga bilder i sina dokument. Du kan ange en bildfil, och Sablon kommer att bädda in den i dokumentet. Följande exempel visar hur man uppnår dynamisk bildinmatning i Word‑dokument.

Hur man dynamiskt infogar bild 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")
}

Villkorlig rendering via Ruby

Sablon‑biblioteket stöder villkorsblock, vilket låter användare visa eller dölja delar av sitt Word‑dokument baserat på närvaron eller värdet av en variabel. Detta är perfekt för att anpassa dokument efter specifika villkor. Till exempel visar följande exempel hur användare kan ange kommandon för att dölja eller visa specifik information i ett Word‑dokument. Om show_extra_info är sant kommer innehållet mellan if‑ och endIf‑taggarna att inkluderas i slutdokumentet. Om det är falskt eller nil tas innehållet bort.

Hur man visar eller döljer delar av Word Docx-dokument med Ruby?


context = {
  show_extra_info: true # or false
}
 Svenska