Google Apps Script की मदद से, प्रोग्राम के ज़रिए Docs बनाए और उनमें बदलाव किए जा सकते हैं. साथ ही, नए मेन्यू, डायलॉग बॉक्स, और साइडबार की मदद से, यूज़र इंटरफ़ेस को पसंद के मुताबिक बनाया जा सकता है.
बुनियादी बातें
Apps Script, Docs के साथ दो मुख्य तरीकों से इंटरैक्ट कर सकती है: कोई भी स्क्रिप्ट किसी दस्तावेज़ को बना सकती है या उसमें बदलाव कर सकती है. इसके लिए, ज़रूरी है कि स्क्रिप्ट के उपयोगकर्ता के पास दस्तावेज़ के लिए ज़रूरी अनुमतियां हों. साथ ही, किसी स्क्रिप्ट को किसी दस्तावेज़ से बाउंड भी किया जा सकता है. इससे स्क्रिप्ट को यूज़र इंटरफ़ेस में बदलाव करने या दस्तावेज़ खोले जाने पर जवाब देने की खास सुविधाएं मिलती हैं. Docs में कंटेनर से जुड़ी स्क्रिप्ट बनाने के लिए, एक्सटेंशन > Apps Script पर क्लिक करें.
दोनों ही मामलों में, Apps Script की Document Service का इस्तेमाल करके, Docs दस्तावेज़ से इंटरैक्ट किया जा सकता है. इसका उदाहरण यहां दिया गया है.
function createDoc() {
var doc = DocumentApp.create('Sample Document');
var documentTab = doc.getTab('t.0').asDocumentTab();
var body = documentTab.getBody();
var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
body.insertParagraph(0, doc.getName())
.setHeading(DocumentApp.ParagraphHeading.HEADING1);
table = body.appendTable(rowsData);
table.getRow(0).editAsText().setBold(true);
}
ऊपर दी गई स्क्रिप्ट, उपयोगकर्ता के Google Drive में एक नया दस्तावेज़ बनाती है. इसके बाद, यह t.0 आईडी वाला टैब (डिफ़ॉल्ट रूप से पहला टैब) वापस लाती है. साथ ही, एक ऐसा पैराग्राफ़ डालती है जिसमें दस्तावेज़ के नाम वाला टेक्स्ट होता है. यह उस पैराग्राफ़ को हेडिंग के तौर पर स्टाइल करती है और दो डाइमेंशन वाले ऐरे में मौजूद वैल्यू के आधार पर एक टेबल जोड़ती है. स्क्रिप्ट, मौजूदा दस्तावेज़ में भी ये बदलाव कर सकती है. इसके लिए, उसे DocumentApp.create को DocumentApp.openById या openByUrl से बदलना होगा.
किसी दस्तावेज़ (कंटेनर-बाउंड) में बनाई गई स्क्रिप्ट के लिए, DocumentApp.getActiveDocument और Document.getActiveTab का इस्तेमाल करें.
दस्तावेज़ का स्ट्रक्चर
Apps Script के हिसाब से, Docs दस्तावेज़ की संरचना एचटीएमएल दस्तावेज़ की तरह होती है. इसका मतलब है कि किसी दस्तावेज़ में एक या उससे ज़्यादा Tab ऑब्जेक्ट होते हैं. इनमें से हर ऑब्जेक्ट में ऐसे एलिमेंट होते हैं (जैसे कि Paragraph या Table) जिनमें अक्सर अन्य एलिमेंट शामिल होते हैं. Docs दस्तावेज़ में बदलाव करने वाली ज़्यादातर स्क्रिप्ट, getTab और asDocumentTab को कॉल करने से शुरू होती हैं. इसके बाद, getBody को कॉल किया जाता है. ऐसा इसलिए, क्योंकि Body एक मुख्य एलिमेंट है. इसमें टैब के HeaderSection, FooterSection, और किसी भी Footnotes को छोड़कर, अन्य सभी एलिमेंट शामिल होते हैं.
हालांकि, यह तय करने के लिए नियम हैं कि किस तरह के एलिमेंट में दूसरे टाइप के एलिमेंट शामिल किए जा सकते हैं. इसके अलावा, Apps Script में मौजूद Document Service, सिर्फ़ कुछ तरह के एलिमेंट को दूसरे एलिमेंट में डाल सकती है. नीचे दिए गए ट्री से पता चलता है कि किस तरह के एलिमेंट में कौनसे एलिमेंट शामिल किए जा सकते हैं.
बोल्ड किए गए एलिमेंट डाले जा सकते हैं. बोल्ड नहीं किए गए एलिमेंट को सिर्फ़ उसी जगह पर बदला जा सकता है.
- दस्तावेज़
- टैब
- DocumentTab
- Body
- ListItem
- पैराग्राफ़
- टेबल
- TableRow
- TableCell
- पैराग्राफ़...
- ListItem...
- Table...
- TableCell
- TableRow
- TableOfContents
- पैराग्राफ़...
- ListItem...
- टेबल...
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- लेख
- UnsupportedElement (पेज नंबर वगैरह)
- पैराग्राफ़
- HorizontalRule
- InlineDrawing
- InlineImage
- लेख
- UnsupportedElement (पेज नंबर वगैरह)
- टेबल
- TableRow
- TableCell
- पैराग्राफ़...
- ListItem...
- Table...
- TableCell
- TableRow
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- लेख
- UnsupportedElement (पेज नंबर वगैरह)
- पैराग्राफ़
- HorizontalRule
- InlineDrawing
- InlineImage
- लेख
- UnsupportedElement (पेज नंबर वगैरह)
- टेबल
- TableRow
- TableCell
- पैराग्राफ़...
- ListItem...
- Table...
- TableCell
- TableRow
- ListItem
- FootnoteSection
- Body
- DocumentTab
- टैब
टेक्स्ट बदलें
Apps Script का इस्तेमाल, अक्सर Docs में टेक्स्ट बदलने के लिए किया जाता है. मान लें कि आपके पास क्लाइंट की जानकारी से भरी हुई कोई स्प्रेडशीट है और आपको हर क्लाइंट के लिए, उसकी पसंद के मुताबिक Docs जनरेट करने हैं. (इस तरह के ऑपरेशन को अक्सर मेल मर्ज कहा जाता है.)
replaceText
मेथड का इस्तेमाल करके टेक्स्ट बदला जा सकता है. यह JavaScript की ज़्यादातर रेगुलर एक्सप्रेशन सुविधाओं के साथ काम करता है. यहां दिए गए उदाहरण में, पहला फ़ंक्शन दस्तावेज़ में प्लेसहोल्डर टेक्स्ट जोड़ता है. वहीं, दूसरा फ़ंक्शन उस टेक्स्ट को client ऑब्जेक्ट की प्रॉपर्टी से बदलता है.
ये दोनों फ़ंक्शन, getActiveDocument और getActiveTab तरीकों का इस्तेमाल करते हैं. ये सिर्फ़ Docs दस्तावेज़ में बनाई गई स्क्रिप्ट पर लागू होते हैं. स्टैंड-अलोन स्क्रिप्ट में, DocumentApp.create, openById या openByUrl का इस्तेमाल करें. साथ ही, Document.getTab का इस्तेमाल करें.
कुछ प्लेसहोल्डर जोड़ना
function createPlaceholders() {
var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
body.appendParagraph('{name}');
body.appendParagraph('{address}');
body.appendParagraph('{city} {state} {zip}');
}
प्लेसहोल्डर बदलना
function searchAndReplace() {
var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
var client = {
name: 'Joe Script-Guru',
address: '100 Script Rd',
city: 'Scriptville',
state: 'GA',
zip: 94043
};
body.replaceText('{name}', client.name);
body.replaceText('{address}', client.address);
body.replaceText('{city}', client.city);
body.replaceText('{state}', client.state);
body.replaceText('{zip}', client.zip);
}
कस्टम मेन्यू और यूज़र इंटरफ़ेस
Docs को अपनी पसंद के मुताबिक बनाया जा सकता है. इसके लिए, कस्टम मेन्यू, डायलॉग बॉक्स, और साइडबार जोड़े जा सकते हैं. ध्यान रखें कि कोई स्क्रिप्ट सिर्फ़ उस दस्तावेज़ के यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट कर सकती है जिससे वह बाइंड है.
एचटीएमएल और सीएसएस की मदद से कस्टम इंटरफ़ेस बनाने के बारे में ज़्यादा जानने के लिए, एचटीएमएल सेवा से जुड़ी गाइड देखें. अगर आपको अपने इंटरफ़ेस को ऐड-ऑन के तौर पर पब्लिश करना है, तो स्टाइल गाइड का पालन करें. इससे यह पक्का किया जा सकेगा कि इंटरफ़ेस, Docs एडिटर के साथ काम करता हो.
Docs के लिए ऐड-ऑन
ऐड-ऑन, Docs में काम करते हैं. इन्हें Docs के ऐड-ऑन स्टोर से इंस्टॉल किया जा सकता है. अगर आपने Docs के लिए कोई स्क्रिप्ट बनाई है और उसे दुनिया के साथ शेयर करना है, तो Apps Script की मदद से अपनी स्क्रिप्ट को ऐड-ऑन के तौर पर पब्लिश किया जा सकता है. इससे दूसरे लोग, ऐड-ऑन स्टोर से इसे इंस्टॉल कर पाएंगे.
Docs के लिए ऐड-ऑन बनाने के लिए, Docs के ऐड-ऑन बनाने के लिए क्विकस्टार्ट गाइड देखें.
ट्रिगर
Google दस्तावेज़ से बाउंड की गई स्क्रिप्ट, दस्तावेज़ के onOpen इवेंट का जवाब देने के लिए सिंपल ट्रिगर का इस्तेमाल कर सकती हैं. यह इवेंट तब होता है, जब दस्तावेज़ में बदलाव करने का ऐक्सेस रखने वाला कोई उपयोगकर्ता, उसे Docs में खोलता है.
ट्रिगर सेट अप करने के लिए, onOpen नाम का फ़ंक्शन लिखें. इस ट्रिगर के उदाहरण के लिए, Google Workspace में कस्टम मेन्यू देखें.
ट्रिगर, मेन्यू जोड़ने के लिए काम का होता है. हालांकि, यह Apps Script की उन सेवाओं का इस्तेमाल नहीं कर सकता जिनके लिए अनुमति ज़रूरी होती है.