Google Slides API का एक फ़ायदा यह है कि एक या उससे ज़्यादा डेटा सोर्स से जानकारी को टेंप्लेट वाले स्लाइड डेक में मर्ज किया जा सकता है.
इस पेज में बताया गया है कि किसी बाहरी सोर्स से डेटा लेकर उसे किसी मौजूदा टेंप्लेट प्रज़ेंटेशन में कैसे डाला जा सकता है. यह कॉन्सेप्ट, वर्ड प्रोसेसर और स्प्रेडशीट का इस्तेमाल करके मेल मर्ज करने के तरीके से मिलता-जुलता है.
यह तरीका उपयोगी होने के कई कारण हैं:
Google Slides एडिटर का इस्तेमाल करके, डिज़ाइनर के लिए प्रज़ेंटेशन का डिज़ाइन बेहतर बनाना आसान है. यह रेंडर किए गए स्लाइड डिज़ाइन को सेट करने के लिए आपके ऐप्लिकेशन में पैरामीटर को ट्यून करने से कहीं ज़्यादा आसान है.
प्रज़ेंटेशन से कॉन्टेंट को अलग करना एक जाना-माना डिज़ाइन है और इसके कई फ़ायदे हैं.
एक बुनियादी रेसिपी
इस उदाहरण में बताया गया है कि प्रज़ेंटेशन में डेटा मर्ज करने के लिए, Slides API का इस्तेमाल कैसे किया जा सकता है:
डिज़ाइन में मदद के लिए प्लेसहोल्डर कॉन्टेंट का इस्तेमाल करके, अपना प्रज़ेंटेशन बनाएं.
डाले जाने वाले हर कॉन्टेंट एलिमेंट के लिए, प्लेसहोल्डर कॉन्टेंट को टैग से बदलें. टैग, खास स्ट्रिंग वाले टेक्स्ट बॉक्स या आकार होते हैं. ऐसी स्ट्रिंग का इस्तेमाल करें जिनके सामान्य रूप से आने की संभावना न हो. उदाहरण के लिए,
{{account-holder-name}}
एक अच्छा टैग हो सकता है.अपने कोड में, प्रज़ेंटेशन की कॉपी बनाने के लिए, Google Drive API का इस्तेमाल करें.
पूरे प्रज़ेंटेशन में टेक्स्ट के सभी विकल्पों को बदलने के लिए, अपने कोड में
replaceAllText
अनुरोधों के सेट के साथ Slides API केbatchUpdate
मेथड का इस्तेमाल करें. पूरे प्रज़ेंटेशन के दौरान इमेज को बदलने के लिए,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 का इस्तेमाल करके वैल्यू बदलें.