Google Slides API का एक फ़ायदेमंद इस्तेमाल यह है कि इसकी मदद से, एक या उससे ज़्यादा डेटा सोर्स से मिली जानकारी को टेंप्लेट वाले स्लाइड डेक में मर्ज किया जा सकता है.
इस पेज पर, किसी बाहरी सोर्स से डेटा लेकर उसे मौजूदा टेंप्लेट प्रज़ेंटेशन में डालने का तरीका बताया गया है. यह कॉन्सेप्ट, वर्ड प्रोसेसर और स्प्रेडशीट का इस्तेमाल करके मेल मर्ज करने जैसा ही है.
इस तरीके के फ़ायदे कई हैं:
Google Slides के एडिटर का इस्तेमाल करके, डिज़ाइनर आसानी से प्रज़ेंटेशन के डिज़ाइन को बेहतर बना सकते हैं. यह, रेंडर की गई स्लाइड का डिज़ाइन सेट करने के लिए, अपने ऐप्लिकेशन में पैरामीटर को ट्यून करने से ज़्यादा आसान है.
कॉन्टेंट को प्रज़ेंटेशन से अलग करना, डिज़ाइन का एक जाना-माना सिद्धांत है. इसके कई फ़ायदे हैं.
एक सामान्य रेसिपी
यहां एक उदाहरण दिया गया है. इसमें बताया गया है कि Slides API का इस्तेमाल करके, किसी प्रज़ेंटेशन में डेटा कैसे मर्ज किया जा सकता है:
अपने प्रज़ेंटेशन को अपनी पसंद के मुताबिक बनाएं. इसके लिए, प्लेसहोल्डर कॉन्टेंट का इस्तेमाल करें. इससे आपको डिज़ाइन बनाने में मदद मिलेगी.
आपको जिस कॉन्टेंट एलिमेंट को डालना है उसके लिए, प्लेसहोल्डर कॉन्टेंट को टैग से बदलें. टैग, टेक्स्ट बॉक्स या आकार होते हैं. इनमें यूनीक स्ट्रिंग होती है. ऐसी स्ट्रिंग का इस्तेमाल करें जो आम तौर पर नहीं दिखती हैं. उदाहरण के लिए,
{{account-holder-name}}
एक अच्छा टैग हो सकता है.अपने कोड में, Google Drive API का इस्तेमाल करके प्रज़ेंटेशन की कॉपी बनाएं.
अपने कोड में, Slides API के
batchUpdate
तरीके का इस्तेमाल करें. साथ ही,replaceAllText
अनुरोधों के सेट का इस्तेमाल करके, पूरे प्रज़ेंटेशन में टेक्स्ट बदलें. पूरे प्रज़ेंटेशन में इमेज बदलने के लिए,replaceAllShapesWithImage
अनुरोधों का इस्तेमाल करें.
टैग वाला डेक बनाने के बाद, उसकी एक कॉपी ज़रूर बनाएं. साथ ही, कॉपी में बदलाव करने के लिए Slides API का इस्तेमाल करें. Slides API का इस्तेमाल करके, अपने मुख्य "टेंप्लेट" की कॉपी में बदलाव न करें!
यहां दिए गए सेक्शन में, कोड स्निपेट शामिल हैं. इनसे इस प्रोसेस के बारे में कुछ जानकारी मिलती है. ऊपर दिया गया वीडियो देखकर, पूरा उदाहरण (Python) भी देखा जा सकता है. इसमें नीचे दिए गए अलग-अलग सेक्शन के कई कॉन्सेप्ट को एक साथ दिखाया गया है.
टेक्स्ट मर्ज करना
किसी प्रज़ेंटेशन में मौजूद किसी टेक्स्ट स्ट्रिंग के सभी इंस्टेंस को नए टेक्स्ट से बदलने के लिए, replaceAllText
अनुरोध का इस्तेमाल किया जा सकता है. मर्ज करने के लिए, यह तरीका टेक्स्ट के हर इंस्टेंस को अलग-अलग ढूंढने और बदलने के मुकाबले ज़्यादा आसान है. इस तरीके को सबसे बेहतर इसलिए माना जाता है, क्योंकि पेज एलिमेंट के आईडी का अनुमान लगाना मुश्किल होता है. ऐसा खास तौर पर तब होता है, जब साथ मिलकर काम करने वाले लोग टेंप्लेट प्रज़ेंटेशन को बेहतर बनाते हैं और उसे बनाए रखते हैं.
उदाहरण
इस उदाहरण में, Drive API का इस्तेमाल करके टेंप्लेट प्रज़ेंटेशन को कॉपी किया गया है. इससे प्रज़ेंटेशन का एक नया इंस्टेंस बन जाता है. इसके बाद, यह Google Sheets API का इस्तेमाल करके, Sheets स्प्रेडशीट से डेटा पढ़ता है. आखिर में, यह Slides API का इस्तेमाल करके, नए प्रज़ेंटेशन को अपडेट करता है.
इस उदाहरण में, स्प्रेडशीट में मौजूद किसी नाम वाली रेंज की एक लाइन में मौजूद तीन सेल से डेटा लिया गया है. इसके बाद, यह उस डेटा को प्रज़ेंटेशन में उन सभी जगहों पर बदल देता है जहां {{customer-name}}
, {{case-description}}
या {{total-portfolio}}
स्ट्रिंग मौजूद होती हैं.
Apps Script
ऐप पर जाएं
Java
JavaScript
Node.js
PHP
Python
Ruby
इमेज मर्ज करना
replaceAllShapesWithImage
अनुरोध का इस्तेमाल करके, इमेज को अपने प्रज़ेंटेशन में मर्ज किया जा सकता है. इस अनुरोध में, दी गई इमेज से टेक्स्ट स्ट्रिंग वाले सभी शेप बदल दिए जाते हैं. अनुरोध करने पर, इमेज को टैग के आकार के हिसाब से अपने-आप सेट कर दिया जाता है. साथ ही, इमेज के आसपेक्ट रेशियो यानी लंबाई-चौड़ाई के अनुपात को भी बनाए रखा जाता है.
उदाहरण
इस उदाहरण में, Google Drive API का इस्तेमाल करके, टेंप्लेट प्रज़ेंटेशन को कॉपी किया गया है. इससे प्रज़ेंटेशन का एक नया इंस्टेंस बन जाता है. इसके बाद, यह Slides API का इस्तेमाल करके, {{company-logo}}
टेक्स्ट वाले किसी भी शेप को ढूंढता है और उसे कंपनी के लोगो की इमेज से बदल देता है. अनुरोध में, किसी भी शेप को टेक्स्ट {{customer-graphic}}
और किसी दूसरी इमेज से बदला जाता है.
Apps Script
ऐप पर जाएं
Java
JavaScript
Node.js
PHP
Python
Ruby
किसी खास टेक्स्ट बॉक्स या इमेज के इंस्टेंस बदलना
replaceAllText
और replaceAllShapesWithImage
अनुरोध, पूरे प्रज़ेंटेशन में टैग बदलने के लिए काम आते हैं. हालांकि, कभी-कभी आपको सिर्फ़ कुछ एलिमेंट बदलने होते हैं. जैसे, किसी खास स्लाइड पर मौजूद एलिमेंट.
ऐसे मामलों में, आपको उन टैग शेप के आईडी वापस पाने होंगे जिन्हें आपको बदलना है. टेक्स्ट बदलने के लिए, उन शेप में मौजूद टेक्स्ट को मिटाएं. इसके बाद, नया टेक्स्ट डालें. उदाहरण के लिए, किसी शेप में मौजूद टेक्स्ट में बदलाव करना देखें.
इमेज को बदलना ज़्यादा मुश्किल होता है. किसी इमेज को मर्ज करने के लिए, आपको यह करना होगा:
- टैग शेप का आईडी पाएं.
- टैग से साइज़ और ट्रांसफ़ॉर्म की जानकारी कॉपी करें.
- साइज़ और ट्रांसफ़ॉर्मेशन की जानकारी का इस्तेमाल करके, पेज में अपनी इमेज जोड़ें.
- टैग के आकार को मिटाएं.
इमेज के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बनाए रखते हुए, उसे अपनी पसंद के साइज़ में स्केल करने के लिए, कुछ बातों का ध्यान रखना पड़ सकता है. इनके बारे में यहां बताया गया है. यह सैंपल भी देखें: शेप टैग को इमेज से बदलना.
आस्पेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखना
Slides API का इस्तेमाल करके इमेज बनाते समय, आसपेक्ट फ़िट सिर्फ़ इमेज के साइज़ पर आधारित होते हैं. ये साइज़ और ट्रांसफ़ॉर्म डेटा पर आधारित नहीं होते. createImage
अनुरोध में दिए गए साइज़ के डेटा को, इमेज का पसंदीदा साइज़ माना जाता है. एपीआई, इमेज के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को इस साइज़ के हिसाब से सेट करता है. इसके बाद, दिए गए ट्रांसफ़ॉर्म को लागू करता है.
किसी टैग को इमेज से बदलते समय, इमेज के पहलू के अनुपात को बनाए रखा जाता है. इसके लिए, इमेज का साइज़ और स्केलिंग इस तरह से सेट करें:
- width: इसे टैग के
width
औरscaleX
के प्रॉडक्ट पर सेट किया जाता है - height: इसे टैग के
height
औरscaleY
के प्रॉडक्ट पर सेट किया जाता है - scale_x:
1
पर सेट किया गया - scale_y:
1
पर सेट किया गया
इस वजह से, Slides API इमेज को टैग के विज़ुअल साइज़ के हिसाब से फ़िट करता है. ऐसा, इमेज के नॉन-स्केल्ड साइज़ के बजाय किया जाता है. ज़्यादा जानकारी के लिए, किसी शेप टैग को इमेज से बदलना लेख पढ़ें.
स्केलिंग पैरामीटर को 1
पर सेट करने से, इमेज को दो बार स्केल नहीं किया जाता.
इस तरह से इमेज को व्यवस्थित करने पर, इमेज का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बना रहता है. साथ ही, इमेज का साइज़ टैग के साइज़ से ज़्यादा नहीं होता. इमेज का सेंटर पॉइंट, टैग के आकार के सेंटर पॉइंट के जैसा ही है.
टेंप्लेट मैनेज करना
टेंप्लेट प्रज़ेंटेशन के लिए, ऐप्लिकेशन तय करता है और उसका मालिकाना हक रखता है. इसलिए, ऐप्लिकेशन के लिए एक खास खाता इस्तेमाल करके टेंप्लेट बनाएं. सेवा खाते एक अच्छा विकल्प हैं. साथ ही, इनसे Google Workspace की उन नीतियों से जुड़ी समस्याएं नहीं होती हैं जो शेयर करने पर पाबंदी लगाती हैं.
टेंप्लेट से प्रज़ेंटेशन के इंस्टेंस बनाते समय, हमेशा एंड-यूज़र क्रेडेंशियल का इस्तेमाल करें. इससे उपयोगकर्ताओं को, जनरेट किए गए प्रज़ेंटेशन पर पूरा कंट्रोल मिलता है. साथ ही, Google Drive में हर उपयोगकर्ता के लिए तय की गई सीमा से जुड़ी समस्याओं को हल करने में मदद मिलती है.
सेवा खाते का इस्तेमाल करके टेंप्लेट बनाने के लिए, ऐप्लिकेशन के क्रेडेंशियल का इस्तेमाल करके यह तरीका अपनाएं:
- Slides API में presentations.create का इस्तेमाल करके, कोई प्रज़ेंटेशन बनाएं.
- Drive API में permissions.create का इस्तेमाल करके, अनुमतियों को अपडेट करें, ताकि प्रज़ेंटेशन पाने वाले लोग इसे पढ़ सकें.
- अनुमतियां अपडेट करें, ताकि टेंप्लेट बनाने वाले लोग Drive API में permissions.create का इस्तेमाल करके, टेंप्लेट में बदलाव कर सकें.
- ज़रूरत के मुताबिक टेंप्लेट में बदलाव करें.
प्रज़ेंटेशन का इंस्टेंस बनाने के लिए, उपयोगकर्ता क्रेडेंशियल का इस्तेमाल करके यह तरीका अपनाएं:
- Drive API में files.copy का इस्तेमाल करके, टेंप्लेट की कॉपी बनाएं.
- Slides API में, presentation.batchUpdate का इस्तेमाल करके वैल्यू बदलें.