टेम्प्लेट से फ़्री रूबी API के माध्यम से डायनामिक Word फ़ाइलें बनाएं

एक प्रमुख ओपन सोर्स रूबी लाइब्रेरी जो प्री‑डिज़ाइन किए गए टेम्प्लेट से डायनामिक Microsoft Word (.docx) दस्तावेज़ बनाने के लिए डिज़ाइन की गई है।

Ruby-Docx-Templater क्या है?

रूबी एप्लिकेशन से डायनामिक Microsoft Word दस्तावेज़ (.docx) जेनरेट करना आश्चर्यजनक रूप से जटिल काम हो सकता है। आपको रिपोर्ट, इनवॉइस, या ऐसे लेटर बनाने की आवश्यकता पड़ सकती है जिन्हें गैर‑तकनीकी उपयोगकर्ता ने डिजाइन किया हो। जबकि कई समाधान मौजूद हैं, वे अक्सर LibreOffice या लोकल Word इंस्टॉल जैसी भारी डिपेंडेंसी की माँग करते हैं। यहाँ पर Ruby-Docx-Templater आता है, एक हल्का जेम जो अलग अप्रोच लेता है। यह उपयोगकर्ताओं को मानक .docx फ़ाइल को टेम्प्लेट के रूप में उपयोग करने की अनुमति देता है, और इसे पूरी तरह मेमोरी में ही मैनीपुलेट करके डेटा इन्जेक्ट करता है। यह किसी भी रूबी डेवलपर के लिए तेज़, सुरक्षित और डिप्लॉयमेंट‑फ्रेंडली विकल्प बनाता है।

अपने मूल में, Ruby-Docx-Templater लाइब्रेरी एक टेम्प्लेटिंग इंजन है जो विशेष रूप से .docx फ़ाइलों के लिए बनाया गया है। यह प्री‑डिज़ाइन किए गए टेम्प्लेट से डायनामिक Microsoft Word (.docx) दस्तावेज़ बनाने के लिए बनायी गई एक हल्की, शक्तिशाली रूबी जेम है। यह एक मानक Word दस्तावेज़ के भीतर एक सरल टैग‑बेस्ड सिस्टम का उपयोग करके काम करती है। आप Word में एक टेम्प्लेट बनाते हैं, विशेष टैग उन जगहों पर रखते हैं जहाँ आप डायनामिक कंटेंट चाहते हैं, और फिर जेम उन टैग को आपके रूबी एप्लिकेशन के वास्तविक डेटा से रिप्लेस कर देता है। इसकी मेमोरी‑बेस्ड प्रोसेसिंग, जटिल टेबल स्ट्रक्चर का सपोर्ट, और फ़ॉर्मेटिंग का संरक्षण इसे बिज़नेस डॉक्यूमेंट ऑटोमेशन के लिए आदर्श बनाता है।

Previous Next

Ruby-Docx-Templater के साथ शुरूआत

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

RubyGems के माध्यम से Ruby-Docx-Templater स्थापित करें

 gem install ruby-docx-templater 

GitHub के माध्यम से Ruby-Docx-Templater स्थापित करें

 git clone https://github.com/jawspeak/ruby-docx-templater.git 
You can also download it directly from GitHub.

Ruby के माध्यम से टेम्प्लेट से Word Docx फ़ाइल बनाएं

Ruby-Docx-Templater की सबसे बेसिक फिचर सरल टेक्स्ट रिप्लेसमेंट है। आप अपने Word दस्तावेज़ में कहीं भी प्लेसहोल्डर रख सकते हैं, और लाइब्रेरी उन्हें वास्तविक वैल्यू से रिप्लेस कर देगी। इस अप्रोच की ख़ूबी यह है कि फ़ॉर्मेटिंग बरकरार रहती है। यदि आप अपने टेम्प्लेट में $COMPANY_NAME$ को बोल्ड और लाल बनाते हैं, तो आउटपुट में भी वह बोल्ड और लाल ही रहेगा। यह डिज़ाइनर्स को दस्तावेज़ की उपस्थिति पर पूर्ण नियंत्रण देता है। आपके Word टेम्प्लेट में, आप $KEY$ सिंटैक्स का उपयोग करके कीज़ परिभाषित करते हैं। डॉलर साइन डिलिमिटर के रूप में काम करते हैं, जिससे यह स्पष्ट हो जाता है कि सभी प्रतिस्थापन कहाँ होने चाहिए।

Ruby के माध्यम से टेम्प्लेट फ़ाइल का उपयोग करके Word Docx फ़ाइल बनाएं?

require 'docx_templater'

# Load your template file
doc = DocxTemplater::TemplateProcessor.new('invoice_template.docx')

# Define your data as a hash
data = {
  'COMPANY_NAME' => 'Acme Corporation',
  'INVOICE_NUMBER' => 'INV-2024-001',
  'INVOICE_DATE' => '2024-11-04',
  'CLIENT_NAME' => 'John Smith',
  'TOTAL_AMOUNT' => '$1,250.00'
}

# Render the document with your data
doc.render(data)

# Save the output
doc.save('output_invoice.docx')

मल्टी‑रो टेबल लूप सपोर्ट

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

Ruby लाइब्रेरी के माध्यम से Docx फॉर्मेट में मल्टी‑रो के साथ प्रोडक्ट रिपोर्ट कैसे बनाएं?

require 'docx_templater'

doc = DocxTemplater::TemplateProcessor.new('product_report.docx')

# Define items as an array of hashes
data = {
  'REPORT_TITLE' => 'Monthly Sales Report',
  'REPORT_DATE' => 'November 2024',
  'ITEMS_LIST' => [
    {
      'PRODUCT_NAME' => 'Laptop Pro 15"',
      'QUANTITY' => '5',
      'UNIT_PRICE' => '$1,200.00',
      'TOTAL' => '$6,000.00'
    },
    {
      'PRODUCT_NAME' => 'Wireless Mouse',
      'QUANTITY' => '12',
      'UNIT_PRICE' => '$25.00',
      'TOTAL' => '$300.00'
    },
    {
      'PRODUCT_NAME' => 'USB-C Cable',
      'QUANTITY' => '20',
      'UNIT_PRICE' => '$15.00',
      'TOTAL' => '$300.00'
    }
  ]
}

doc.render(data)
doc.save('output_sales_report.docx')

मेमोरी‑बेस्ड प्रोसेसिंग

ओपन सोर्स Ruby-Docx-Templater लाइब्रेरी को हैंडल करना बहुत आसान है और रूबी एप्लिकेशनों के भीतर मेमोरी‑बेस्ड प्रोसेसिंग सपोर्ट करती है। सभी दस्तावेज़ मैनीपुलेशन मेमोरी में होते हैं, जिसका अर्थ है कि आपका संवेदनशील डेटा टेम्प्लेटिंग प्रोसेस के दौरान कभी फ़ाइल सिस्टम को छूता नहीं है। यह उन एप्लिकेशनों के लिए महत्वपूर्ण है जो मेडिकल रिकॉर्ड, फाइनेंशियल डॉक्यूमेंट्स या पर्सनल डेटा जैसी संवेदनशील जानकारी के साथ काम करते हैं।

Word XML के साथ काम करना

Ruby-Docx-Templater का एक अनोखा पहलू यह है कि कभी‑कभी आपको अपने Word दस्तावेज़ के अंडरलाइनिंग XML को मैन्युअल रूप से एडिट करना पड़ता है। Word अक्सर फ़ॉर्मेटिंग मार्कअप इन्सर्ट करता है जो आपके टेम्प्लेट कीज़ को स्प्लिट कर सकता है, जिससे प्रतिस्थापन प्रोसेस टूट जाता है। जब आप Word में $CUSTOMER_NAME$ टाइप करते हैं, तो यह स्क्रीन पर सही दिख सकता है, लेकिन अंडरलाइनिंग XML ऐसा दिख सकता है।

 हिन्दी