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

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

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

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

दोनों ही मामलों में, Apps Script की दस्तावेज़ सेवा की मदद से, Google 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 के हिसाब से, Google Docs दस्तावेज़ का स्ट्रक्चर, एचटीएमएल दस्तावेज़ के स्ट्रक्चर से काफ़ी मिलता-जुलता है. इसका मतलब है कि दस्तावेज़ में एक या उससे ज़्यादा Tab ऑब्जेक्ट होते हैं. इनमें से हर ऑब्जेक्ट में ऐसे एलिमेंट होते हैं जिनमें अक्सर अन्य एलिमेंट होते हैं. जैसे, Paragraph या Table. Google Docs दस्तावेज़ में बदलाव करने वाली ज़्यादातर स्क्रिप्ट, getTab() और asDocumentTab() के कॉल से शुरू होती हैं. इसके बाद, getBody() का इस्तेमाल किया जाता है. ऐसा इसलिए होता है, क्योंकि Body एक मुख्य एलिमेंट है. इसमें टैब में मौजूद सभी एलिमेंट होते हैं. हालांकि, इसमें HeaderSection, FooterSection, और Footnotes जैसे एलिमेंट शामिल नहीं होते.

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

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

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

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

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

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

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

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);
}

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

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

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

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

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

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

ट्रिगर

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

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