Word DOCX फ़ाइलें जनरेट करने के लिए ओपन सोर्स रूबी लाइब्रेरी

एक शक्तिशाली मुफ्त रूबी API जो सॉफ़्टवेयर डेवलपर्स को आसाऩी से Word DOCX दस्तावेज़ बनाने में सक्षम बनाता है। यह दस्तावेज़ डिज़ाइन करने की अनुमति देता है।'s Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.

Sablon लाइब्रेरी क्या है?

सॉफ़्टवेयर विकास की दुनिया में, रिपोर्ट, इनवॉइस या लेटर जैसे डायनामिक दस्तावेज़ बनाना एक आम आवश्यकता है। जबकि कई लाइब्रेरीज़ शून्य से दस्तावेज़ बना सकती हैं, अक्सर उन्हें सीखने में कठिनाई और फ़ॉर्मेटिंग करने में बहुत मेहनत लगती है। यहाँ Sablon, एक पावरफ़ुल ओपन‑सोर्स रूबी लाइब्रेरी, मदद करती है। Sablon Microsoft Word की परिचितता और रूबी की ताकत को मिलाकर दस्तावेज़ जनरेशन में क्रांति लाती है, जिससे आप न्यूनतम मेहनत से जटिल और सुंदर फ़ॉर्मेटेड दस्तावेज़ बना सकते हैं। यह Word Docx निर्माण, MailMerge फ़ील्ड्स के माध्यम से कंटेंट इन्सर्शन, उन्नत फ़ॉर्मेटिंग सपोर्ट, टेम्प्लेट में एनोर्टेशन जोड़ना, कॉन्फ़िगरेबल HTML & CSS रूपांतरण और बहुत कुछ जैसी सुविधाएँ सपोर्ट करती है।

अपने मूल में, Sablon .docx फ़ाइलों के लिए एक दस्तावेज़ टेम्प्लेट प्रोसेसर है। यह Word की बिल्ट‑इन Mail Merge फ़ंक्शनैलिटी का उपयोग करता है, जिससे आप परिचित वातावरण में टेम्प्लेट बना सकते हैं। आप अपने दस्तावेज़ का लेआउट डिज़ाइन कर सकते हैं, स्टाइल लागू कर सकते हैं, और डायनामिक कंटेंट के लिए Mail Merge फ़ील्ड्स को प्लेसहोल्डर के रूप में उपयोग कर सकते हैं। फिर Sablon इस टेम्प्लेट को एक डेटा कॉन्टेक्स्ट (एक रूबी हैश) के साथ लेता है और एक अंतिम, डेटा‑पॉप्युलेटेड Word दस्तावेज़ बनाता है। यह अप्रोच प्रस्तुति लेयर (Word टेम्प्लेट) को डेटा लेयर (आपका रूबी कोड) से अलग करता है, जिससे दस्तावेज़ जनरेशन प्रक्रिया साफ़ और मेंटेनेबल बनती है। इसका सिंटैक्स रूबी और टेम्प्लेटिंग लैंगुएजेज़ से परिचित किसी के लिए इंट्यूटिव है। यह डिज़ाइनर‑फ्रेंडली है; कंटेंट और डिज़ाइन पूरी तरह अलग हैं। डिज़ाइनर सीधे Word में बिना कोड छूए काम कर सकते हैं।

Previous Next

Sablon के साथ शुरुआत

Sablon स्थापित करने का अनुशंसित तरीका RubyGems का उपयोग है। सुगम इंस्टॉलेशन के लिए नीचे दिया गया कमांड उपयोग करें।

RubyGems के माध्यम से डॉक्यूमेंट्स इंस्टॉल करें


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

Word फ़ील्ड्स के साथ कंटेंट इन्सर्शन रूबी द्वारा

सबसे बेसिक फंक्शन डायनामिक कंटेंट इन्सर्ट करना है। ओपन सोर्स रूबी लाइब्रेरी Sablon, Word की बिल्ट‑इन फ़ील्ड सिंटैक्स का उपयोग करके प्लेसहोल्डर्स को परिभाषित करती है। अपने Word टेम्प्लेट में, आप एक फ़ील्ड कोड डालते हैं जहाँ आप डायनामिक कंटेंट चाहते हैं। Sablon इस फ़ील्ड को आपके वैल्यू से रिप्लेस कर देगा। नीचे दिया गया उदाहरण दर्शाता है कि सॉफ्टवेयर डेवलपर्स कैसे डायनामिक रूप से एक कंटेंट पीस इन्सर्ट कर यूज़र को अभिवादन दे सकते हैं।

रूबी द्वारा Word Docs फ़ाइल में डायनामिक टेक्स्ट कंटेंट कैसे इन्सर्ट करें?

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 से WordML रूपांतरण

Sablon की उल्लेखनीय विशेषताओं में एक है HTML को WordProcessingML (जो .docx फ़ाइलों में उपयोग किया जाने वाला XML फ़ॉर्मेट है) में बदलने की क्षमता। यह तब बहुत उपयोगी है जब आपको डेटाबेस या रिच‑टेक्स्ट एडिटर से फॉर्मेटेड पैराग्राफ, लिस्ट या टेबल जैसी रिच टेक्स्ट कंटेंट इन्सर्ट करनी हो। Sablon HTML स्ट्रिंग को Word दस्तावेज़ में सही तरीके से फ़ॉर्मेटेड सेक्शन में बदल देगा, हेडिंग्स, बोल्ड और इटैलिक टेक्स्ट, और लिस्ट फ़ॉर्मेटिंग को बरकरार रखेगा। यहाँ एक सरल उदाहरण है जो दिखाता है कि मौजूदा टेम्प्लेट को लोड करके HTML कंटेंट को Ruby एप्लिकेशन के भीतर Word Docx फ़ाइल में कैसे बदलें।

रूबी लाइब्रेरी द्वारा HTML कंटेंट को Word Docx फ़ाइल में कैसे कन्वर्ट करें?

require "sablon"

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

html_content = "

यह एक सबहेडिंग है

यह एक पैराग्राफ है जिसमें बोल्ड और इटैलिक टेक्स्ट है।

  • पहला आइटम
  • दूसरा आइटम
" context = { article_content: Sablon.content(:html, html_content) } template.render_to_file(File.expand_path("output.docx"), context) Conditional Rendering

रूबी द्वारा डायनामिक इमेज इन्सर्शन

ओपन सोर्स Sablon लाइब्रेरी ने Ruby लाइब्रेरी का उपयोग करके Word Docx दस्तावेज़ों में डायनामिक इमेज इन्सर्शन के लिए एक उपयोगी फीचर शामिल किया है। केवल कुछ लाइनों के कोड से डेवलपर्स अपने दस्तावेज़ों में डायनामिक इमेज इन्सर्ट कर सकते हैं। आप एक इमेज फ़ाइल निर्दिष्ट कर सकते हैं, और Sablon उसे दस्तावेज़ में एम्बेड कर देगा। नीचे दिया गया उदाहरण दिखाता है कि कैसे डायनामिक इमेज इन्सर्शन को Word दस्तावेज़ों में हासिल किया जाए।

रूबी लाइब्रेरी द्वारा Word Docx में डायनामिक इमेज कैसे इन्सर्ट करें?


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

रूबी द्वारा कंडीशनल रेंडरिंग

Sablon लाइब्रेरी कंडीशनल ब्लॉक्स को सपोर्ट करती है, जिससे उपयोगकर्ता अपने Word दस्तावेज़ के भागों को वैरिएबल की उपस्थिति या वैल्यू के आधार पर दिखा या छिपा सकते हैं। यह विशेष रूप से विशिष्ट स्थितियों के आधार पर दस्तावेज़ को कस्टमाइज़ करने के लिए उत्तम है। उदाहरण के तौर पर नीचे दिया गया उदाहरण दिखाता है कि उपयोगकर्ता कैसे कमांड सेट कर सकते हैं जिससे वे Word दस्तावेज़ में विशिष्ट जानकारी को दिखा या छिपा सकें। यदि show_extra_info true है, तो if और endIf टैग के बीच का कंटेंट अंतिम दस्तावेज़ में शामिल होगा। यदि यह false या nil है, तो कंटेंट हटा दिया जाएगा।

रूबी से Word Docx दस्तावेज़ के भागों को कैसे दिखाएँ या छिपाएँ?


context = {
  show_extra_info: true # or false
}
 हिन्दी