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, अन्य एलिमेंट में सिर्फ़ कुछ तरह के एलिमेंट ही जोड़ सकती है. यहां दिए गए ट्री से पता चलता है कि किसी खास तरह के एलिमेंट में कौनसे एलिमेंट शामिल किए जा सकते हैं.
बोल्ड में दिखाए गए एलिमेंट जोड़े जा सकते हैं. वहीं, बोल्ड में नहीं दिखाए गए एलिमेंट में सिर्फ़ बदलाव किया जा सकता है.
- Document
- Tab
- DocumentTab
- Body
- HeaderSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Paragraph
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Table
- ListItem
- FooterSection
- ListItem
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Paragraph
- HorizontalRule
- InlineDrawing
- InlineImage
- Text
- UnsupportedElement (page number, etc.)
- Table
- ListItem
- FootnoteSection
- DocumentTab
- Tab
टेक्स्ट बदलें
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 Docs से जुड़ी स्क्रिप्ट, दस्तावेज़ के onOpen इवेंट का जवाब देने के लिए, सामान्य ट्रिगर का इस्तेमाल कर सकती हैं. यह इवेंट तब होता है, जब कोई ऐसा उपयोगकर्ता Docs में दस्तावेज़ खोलता है जिसके पास उसमें बदलाव करने का ऐक्सेस होता है.
ट्रिगर सेट अप करने के लिए, onOpen नाम का एक फ़ंक्शन लिखें. इस ट्रिगर का उदाहरण देखने के लिए, Google Workspace में कस्टम मेन्यू देखें.
हालांकि, मेन्यू जोड़ने के लिए ट्रिगर काम का है, लेकिन यह Apps Script की उन सेवाओं का इस्तेमाल नहीं कर सकता जिनके लिए अनुमति की ज़रूरत होती है.