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 में मौजूद दस्तावेज़ सेवा, दूसरे एलिमेंट में सिर्फ़ कुछ तरह के एलिमेंट डाल सकती है. नीचे दिए गए ट्री से पता चलता है कि किसी खास तरह के एलिमेंट में कौनसे एलिमेंट शामिल किए जा सकते हैं.

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

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

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

टेक्स्ट बदलने के कई तरीके हैं, लेकिन सबसे आसान तरीका 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 दस्तावेज़ से बाउंड की गई स्क्रिप्ट, दस्तावेज़ के onOpen इवेंट का जवाब देने के लिए, साधारण ट्रिगर का इस्तेमाल कर सकती हैं. यह इवेंट तब होता है, जब दस्तावेज़ में बदलाव करने का ऐक्सेस रखने वाला कोई उपयोगकर्ता, उसे Google Docs में खोलता है.

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