Google Docs को बेहतर बनाया जा रहा है

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

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

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

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

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 के हिसाब से, Google दस्तावेज़ काफ़ी हद तक एक एचटीएमएल दस्तावेज़ की तरह होता है. इसका मतलब है कि Google दस्तावेज़, कई एलिमेंट (जैसे कि Paragraph या Table) से मिलकर बना होता है, जिनमें अक्सर अन्य एलिमेंट शामिल होते हैं. किसी Google दस्तावेज़ में बदलाव करने वाली ज़्यादातर स्क्रिप्ट getBody() पर कॉल करके शुरू होती हैं, क्योंकि Body एक मास्टर एलिमेंट होता है. इसमें HeaderSection, FooterSection, और Footnotes को छोड़कर बाकी सभी एलिमेंट शामिल होते हैं.

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

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

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

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

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

ध्यान दें कि ये दोनों फ़ंक्शन getActiveDocument() वाले तरीके का इस्तेमाल करते हैं, जो सिर्फ़ Google Doc में बनाई गई स्क्रिप्ट पर लागू होती है. स्टैंडअलोन स्क्रिप्ट में, इसके बजाय 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 आपको अपनी स्क्रिप्ट को ऐड-ऑन के तौर पर publish करने की सुविधा देता है. ऐसा इसलिए, ताकि दूसरे उपयोगकर्ता उसे ऐड-ऑन स्टोर से इंस्टॉल कर सकें.

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

ट्रिगर

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

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