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 का इस्तेमाल किया गया है. इससे प्रज़ेंटेशन का एक नया इंस्टेंस बनता है. इसके बाद, यह Sheets स्प्रेडशीट से डेटा पढ़ने के लिए, Google Sheets API का इस्तेमाल करता है. आखिर में, नया प्रज़ेंटेशन अपडेट करने के लिए, 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 का इस्तेमाल करके वैल्यू बदलें.