एक या ज़्यादा डेटा सोर्स से जानकारी को टेंप्लेट वाले स्लाइड डेक में मर्ज करना, 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 एपीआई में presentations.create का इस्तेमाल करके प्रज़ेंटेशन बनाएं.
- अनुमतियां अपडेट करें, ताकि प्रज़ेंटेशन पाने वाले लोग, Drive API में permissions.create इस्तेमाल करके उसे पढ़ सकें.
- Drive API में permissions.create का इस्तेमाल करके, टेम्प्लेट के लेखकों को फ़ाइल में बदलाव करने की अनुमति देने के लिए, अनुमतियों को अपडेट करें.
- ज़रूरत के हिसाब से टेंप्लेट में बदलाव करें.
प्रज़ेंटेशन का इंस्टेंस बनाने के लिए, उपयोगकर्ता के क्रेडेंशियल की मदद से यह तरीका अपनाएं:
- Drive API में files.copy का इस्तेमाल करके, टेंप्लेट की एक कॉपी बनाएं.
- Slides एपीआई में presentation.batchUpdate का इस्तेमाल करके वैल्यू बदलें.