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

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

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

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 Docs जनरेट करना है. (इस प्रकार की कार्रवाई को अक्सर मेल मर्ज कहा जाता है.)

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

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

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

ट्रिगर

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

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