डायनेमिक Word दस्तावेज़ बनाने के लिए जावास्क्रिप्ट API
Node.js और ब्राउज़र-आधारित अनुप्रयोगों के साथ डायनेमिक Word दस्तावेज़ बनाने के लिए ओपन सोर्स जावास्क्रिप्ट लाइब्रेरी।
Docx-templates क्या है?
Docx-Templates एक ओपन-सोर्स जावास्क्रिप्ट लाइब्रेरी है जो सॉफ्टवेयर डेवलपर्स को पूर्वनिर्धारित टेम्प्लेट्स का उपयोग करके डायनामिक Microsoft Word (.docx) दस्तावेज़ उत्पन्न करने में सक्षम बनाती है। प्रोग्रामेटिक रूप से मैन्युअली Word दस्तावेज़ बनाने के बजाय, डेवलपर्स Microsoft Word में टेम्प्लेट डिज़ाइन कर सकते हैं और एम्बेडेड कमांड्स के माध्यम से डायनामिक डेटा इंजेक्ट कर सकते हैं। यह लाइब्रेरी Node.js और ब्राउज़र दोनों वातावरण में काम करती है, जिससे यह आधुनिक वेब और सर्वर-साइड एप्लिकेशनों के लिए अत्यधिक बहुमुखी बनती है। यह DOCX फ़ाइलों को उनके आंतरिक XML संरचना को पार्स करके प्रोसेस करती है और रनटाइम पर टेम्प्लेट कमांड्स को वास्तविक डेटा से बदल देती है।
Docx-Templates लाइब्रेरी एक शक्तिशाली, ओपन-सोर्स टूल है जो Node.js और ब्राउज़र दोनों वातावरणों के लिए डिज़ाइन किया गया है। लाइब्रेरी का मुख्य लाभ डिज़ाइन और लॉजिक का विभाजन है। गैर-तकनीकी उपयोगकर्ता Word में लेआउट और स्टाइलिंग डिज़ाइन कर सकते हैं, जबकि डेवलपर्स डेटा इंजेक्ट करने पर ध्यान केंद्रित करते हैं। यह लूप, कंडीशनल फ़ॉर्मेटिंग जैसी जटिल लॉजिक और यहाँ तक कि दस्तावेज़ के भीतर सीधे JavaScript स्निपेट्स के निष्पादन का समर्थन करता है। यह उन डेवलपर्स के लिए एक आदर्श समाधान बनाता है जिन्हें XML या स्वामित्व वाले डिज़ाइन टूल्स से जूझे बिना उच्च-गुणवत्ता वाले रिपोर्ट बनाना होता है।
Docx-templates के साथ शुरुआत
Docx-templates लाइब्रेरी को स्थापित करने का अनुशंसित तरीका npm के माध्यम से है। सुगम स्थापना के लिए कृपया निम्नलिखित कमांड का उपयोग करें।
NPM के माध्यम से Docx-Templates स्थापित करें
$ npm install docx-templates Yarn के माध्यम से Docx-Templates स्थापित करें/strong>
$ yarn add docx-templates JS API के माध्यम से टेम्पलेट-आधारित दस्तावेज़ निर्माण
ओपन सोर्स Docx-Templates लाइब्रेरी सॉफ़्टवेयर डेवलपर्स को Word में दस्तावेज़ डिजाइन करने और सरल कमांड्स का उपयोग करके डेटा को डायनामिक रूप से इन्जेक्ट करने की अनुमति देती है। यह दृष्टिकोण प्रस्तुति को लॉजिक से अलग करता है, जिससे टेम्पलेट्स को कोड बदले बिना आसानी से प्रबंधित और अपडेट किया जा सकता है। आप अपने डेटा ऑब्जेक्ट की प्रॉपर्टीज़ को सीधे एक्सेस कर सकते हैं या सरल अभिव्यक्तियों को भी चला सकते हैं। उदाहरण के लिए, पूर्ण नाम डालने के लिए, आपका टेम्पलेट इस प्रकार दिखेगा: {firstName} {surname}. लाइब्रेरी कोड का मूल्यांकन करती है और इसे सहजता से बदल देती है।
JavaScript ऐप्स के भीतर डायनामिक रूप से Word दस्तावेज़ कैसे बनाएं?
import createReport from 'docx-templates';
import fs from 'fs';
const template = fs.readFileSync('template.docx');
const report = await createReport({
template,
data: { name: 'John', surname: 'Doe' },
});
fs.writeFileSync('output.docx', report);
जावास्क्रिप्ट के द्वारा गतिशील छवि इंजेक्शन
पाठ से आगे, ओपन सोर्स Docx-Templates लाइब्रेरी तुरंत इमेजेज़ इन्जेक्ट कर सकती है। इसमें स्थानीय फ़ाइलें, URL से इमेजेज़, या यहाँ तक कि प्रोग्रामेटिक रूप से जेनरेट किए गए QR कोड शामिल हैं। आप इमेज का आकार और उसकी प्लेसमेंट को नियंत्रित कर सकते हैं। यह फीचर पहचान बैज, उत्पाद कैटलॉग, या ऐसे रिपोर्ट बनाने के लिए एक गेम-चेंजर है जिन्हें डायनामिक चार्ट्स और विज़ुअल एविडेंस की आवश्यकता होती है। यहाँ एक सरल उदाहरण है जो दिखाता है कि कैसे JavaScript API के माध्यम से Word दस्तावेज़ों में इमेज डालें।
JavaScript API के माध्यम से Word दस्तावेज़ों में तुरंत छवि कैसे डालें?
const buffer = await createReport({
template,
data: {
userAvatar: async () => {
const resp = await fetch('https://example.com/photo.png');
return { width: 3, height: 3, data: await resp.arrayBuffer(), extension: '.png' };
}
},
});
// In Word: {IMAGE userAvatar()}
शक्तिशाली लूप (FOR/END-FOR)
FOR कमांड के साथ डेटा की सूचियों को संभालना सहज है। यह सुविधा आपको एरेज़ पर इटररेट करके तालिका पंक्तियों, सूचियों, या यहाँ तक कि दस्तावेज़ के पूरे सेक्शन बनाने की अनुमति देती है। Docx-Templates लाइब्रेरी ने नेस्टेड लूप्स के लिए समर्थन शामिल किया है, जिससे आप जटिल पदानुक्रमित डेटा संरचनाओं को दर्शा सकते हैं, जैसे विभागों की सूची और उनके संबंधित कर्मचारियों को, जबकि मूल Word स्टाइलिंग को बनाए रखते हैं। निम्नलिखित कोड उदाहरण दिखाता है कि इसे कैसे प्राप्त किया जाए।
JavaScript ऐप्स में उन्नत लूप कैसे लागू करें?
const buffer = await createReport({
template,
data: {
projects: [
{ name: 'SEO Optimization', status: 'Completed' },
{ name: 'API Integration', status: 'In Progress' }
]
},
});
/* In Word:
{FOR project IN projects}
Project: {project.name} - Status: {project.status}
{END-FOR}
*/
कस्टम जावास्क्रिप्ट कॉन्टेक्स्ट (EXEC)
Docx-Templates लाइब्रेरी की सबसे उन्नत सुविधाओं में से एक है EXEC (या !) कमांड का उपयोग करके मनमाने JavaScript स्निपेट्स चलाने की क्षमता। अतिरिक्त additionalJsContext प्रदान करके, आप टेम्पलेट को कस्टम हेल्पर फ़ंक्शन उजागर कर सकते हैं। इससे टेम्पलेट को आंतरिक रूप से गणनाएँ करने, तिथियों को फ़ॉर्मेट करने, या स्ट्रिंग्स को संशोधित करने की अनुमति मिलती है, बिना मुख्य एप्लिकेशन लॉजिक में प्रत्येक डेटा को पूर्व-प्रसंस्करण किए।