Google Docs को बढ़ाना

Google Apps स्क्रिप्ट से आप प्रोग्राम बनाकर Google Docs बना सकते हैं और उनमें बदलाव कर सकते हैं. साथ ही, नए मेन्यू, डायलॉग बॉक्स, और साइडबार के ज़रिए यूज़र इंटरफ़ेस को अपनी पसंद के मुताबिक बना सकते हैं.

बुनियादी बातें

Apps Script, Google Docs के साथ दो तरह से इंटरैक्ट कर सकता है: कोई भी स्क्रिप्ट कोई दस्तावेज़ बना सकती है या उसमें बदलाव कर सकती है, अगर स्क्रिप्ट के पास उपयोगकर्ता के पास दस्तावेज़ के लिए ज़रूरी अनुमतियां हों और स्क्रिप्ट को किसी दस्तावेज़ में बाइंड किया जा सकता हो, जिससे स्क्रिप्ट को यूज़र इंटरफ़ेस में बदलाव करने या दस्तावेज़ खोलने पर जवाब देने की खास सुविधाएं मिलती हैं. Google Docs में कंटेनर से जुड़ी स्क्रिप्ट बनाने के लिए, एक्सटेंशन > Apps Script पर क्लिक करें.

दोनों ही मामलों में, Apps Script's की दस्तावेज़ सेवा की मदद से Google Docs के साथ इंटरैक्ट करना आसान है, जैसा कि इस उदाहरण में दिखाया गया है.

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.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 में एक नया दस्तावेज़ बनाती है, फिर एक पैराग्राफ़ बनाती है, जिसमें दस्तावेज़ जैसा ही टेक्स्ट होता है. साथ ही, उसका नाम भी स्टाइल के तौर पर होता है और वह दो-डाइमेंशन वाली श्रेणी में दी गई वैल्यू के हिसाब से टेबल को जोड़ता है. स्क्रिप्ट, DocumentApp.create() के कॉल को DocumentApp.openById() या openByUrl() से बदलकर, किसी मौजूदा दस्तावेज़ में ये बदलाव आसानी से कर सकती है. दस्तावेज़ (कंटेनर-बाउंड) से बनाई गई स्क्रिप्ट के लिए, DocumentApp.getActiveDocument() इस्तेमाल करें.

दस्तावेज़ का स्ट्रक्चर

Apps Script&#39 के नज़रिए से, Google दस्तावेज़ को किसी एचटीएमएल दस्तावेज़ की तरह बनाया जाता है. इसका मतलब है कि Google Docs में कई तरह के एलिमेंट (जैसे कि Paragraph या Table) होते हैं, जिनमें अक्सर दूसरे एलिमेंट शामिल होते हैं. Google Docs में बदलाव करने वाली ज़्यादातर स्क्रिप्ट, getBody() पर कॉल से शुरू होती हैं, क्योंकि Body एक मास्टर एलिमेंट है. इसमें HeaderSection, FooterSection, और Footnotes के अलावा, बाकी सभी एलिमेंट शामिल होते हैं.

हालांकि, अलग-अलग तरह के एलिमेंट शामिल किए जा सकते हैं, इसके लिए नियम हैं. इसके अलावा, ऐप्लिकेशन स्क्रिप्ट में दस्तावेज़ सेवा में कुछ खास तरह के एलिमेंट ही जोड़े जा सकते हैं. नीचे दिया गया ट्री बताता है कि किसी खास तरह के एलिमेंट में कौनसे एलिमेंट हो सकते हैं.

बोल्ड में दिखाए गए एलिमेंट डाले जा सकते हैं; गैर-बोल्ड एलिमेंट को सिर्फ़ उनकी जगह पर बदला जा सकता है.

टेक्स्ट बदलना

Apps Script का इस्तेमाल, अक्सर Google Docs में टेक्स्ट बदलने के लिए किया जाता है. मान लें कि आपके पास क्लाइंट की जानकारी वाली स्प्रेडशीट है और आप हर क्लाइंट के लिए मनमुताबिक Google दस्तावेज़ जनरेट करना चाहते हैं. (इस तरह की कार्रवाई को अक्सर मेल मर्ज कहा जाता है.)

टेक्स्ट बदलने के कई तरीके हैं. हालांकि, सबसे आसान तरीका है कि नीचे दिए गए उदाहरण में replaceText() तरीका दिखाया गया हो. replaceText, JavaScript की ज़्यादातर रेगुलर एक्सप्रेशन सुविधाओं के साथ काम करता है. नीचे दिए गए पहले फ़ंक्शन में Google दस्तावेज़ में प्लेसहोल्डर टेक्स्ट की कई लाइनें जोड़ी जाती हैं. असल दुनिया में, हो सकता है कि आप खुद दस्तावेज़ में प्लेसहोल्डर लिखें. दूसरा फ़ंक्शन, client ऑब्जेक्ट में दी गई प्लेसहोल्डर को प्लेसहोल्डर से बदल देता है.

ध्यान दें कि ये दोनों फ़ंक्शन getActiveDocument() तरीके का इस्तेमाल करते हैं, जो सिर्फ़ Google Docs में बनाई गई स्क्रिप्ट पर लागू होते हैं; स्टैंड-अलोन स्क्रिप्ट में, DocumentApp.create(), openById(), या openByUrl() का इस्तेमाल करें.

कुछ प्लेसहोल्डर जोड़ें

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

प्लेसहोल्डर बदलना

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .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);
}

कस्टम मेन्यू और यूज़र इंटरफ़ेस

आप Google Docs को मेन्यू, डायलॉग बॉक्स, और साइडबार जोड़कर पसंद के मुताबिक बना सकते हैं. ध्यान रखें कि हालांकि, स्क्रिप्ट सिर्फ़ खुले दस्तावेज़ के मौजूदा इंस्टेंस के लिए यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट कर सकती है. ऐसा सिर्फ़ तब हो सकता है, जब स्क्रिप्ट दस्तावेज़ के लिए बाउंड हो.

अपने Google Docs में कस्टम मेन्यू और डायलॉग जोड़ने का तरीका जानें. किसी डायलॉग या साइडबार के लिए कस्टम इंटरफ़ेस को बनाने के बारे में ज़्यादा जानने के लिए एचटीएमएल सेवा के लिए गाइड देखें. अगर आप ऐड-ऑन के तौर पर, अपने कस्टम इंटरफ़ेस को प्रकाशित करना चाहते हैं, तो Google Docs एडिटर के स्टाइल और लेआउट के साथ काम करने के लिए स्टाइल गाइड का पालन करें.

Google Docs के लिए ऐड-ऑन

ऐड-ऑन Google Docs में चलते हैं और इन्हें Google Docs ऐड-ऑन स्टोर से इंस्टॉल किया जा सकता है. अगर आपने Google Docs के लिए एक स्क्रिप्ट बनाई है और उसे दुनिया के साथ शेयर करना है, तो Apps Script के ज़रिए आप अपनी स्क्रिप्ट को ऐड-ऑन के तौर पर प्रकाशित कर सकते हैं. ऐसा करने से, दूसरे उपयोगकर्ता उसे ऐड-ऑन स्टोर से इंस्टॉल कर सकते हैं.

Google Docs के लिए ऐड-ऑन बनाने का तरीका जानने के लिए, Docs ऐड-ऑन बनाने की क्विकस्टार्ट गाइड देखें.

ट्रिगर

जो स्क्रिप्ट किसी Google दस्तावेज़ से जुड़ी होती हैं वे दस्तावेज़ के जवाब देने के लिए, आसान ट्रिगर का इस्तेमाल कर सकते हैं. यह onOpenइवेंट होता है. जब भी कोई उपयोगकर्ता जिसके पास दस्तावेज़ में बदलाव करने का ऐक्सेस है, वह दस्तावेज़ को Google Docs में खोल देता है.

ट्रिगर सेट अप करने के लिए, onOpen() नाम का एक फ़ंक्शन लिखें. इस ट्रिगर के उदाहरण के लिए, Google Workspace में कस्टम मेन्यू देखें. हालांकि, आसान ट्रिगर मेन्यू जोड़ने में मदद करता है, लेकिन उन ऐप्लिकेशन स्क्रिप्ट का इस्तेमाल नहीं कर सकता जिन्हें अनुमति की ज़रूरत होती है.