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
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
इमेज मर्ज करना
इमेज को अपने प्रज़ेंटेशन में मर्ज भी किया जा सकता है.replaceAllShapesWithImage इस अनुरोध से, दी गई टेक्स्ट स्ट्रिंग वाली सभी शेप को दी गई इमेज से बदल दिया जाता है. अनुरोध, इमेज को टैग शेप की सीमाओं के अंदर फ़िट करने के लिए, उसे अपने-आप पोज़िशन करता है और उसका स्केल बदलता है. साथ ही, इमेज का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) भी बनाए रखता है.
उदाहरण
इस उदाहरण में, टेंप्लेट वाले प्रज़ेंटेशन की कॉपी बनाने के लिए, Google Drive API का इस्तेमाल किया गया है. इससे प्रज़ेंटेशन का एक नया इंस्टेंस बनता है. इसके बाद, Slides API का इस्तेमाल करके,
किसी भी शेप को ढूंढकर, उसकी जगह कंपनी के लोगो की इमेज लगाई जाती है.{{company-logo}} अनुरोध,
टेक्स्ट वाली किसी भी शेप को {{customer-graphic}}
दूसरी इमेज से भी बदलता है.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
खास टेक्स्ट बॉक्स या इमेज इंस्टेंस बदलना
The replaceAllText
and replaceAllShapesWithImage
अनुरोध, किसी प्रज़ेंटेशन में मौजूद सभी टैग को बदलने के लिए काम के होते हैं. हालांकि,
कभी-कभी आपको सिर्फ़ कुछ एलिमेंट को किसी दूसरी शर्त के हिसाब से बदलना होता है. जैसे, किसी खास स्लाइड पर मौजूद एलिमेंट.
ऐसे मामलों में, आपको उन टैग शेप के आईडी वापस पाने होंगे जिन्हें आपको बदलना है. टेक्स्ट बदलने के लिए, उन शेप में मौजूद टेक्स्ट को मिटाएं और फिर नया टेक्स्ट डालें. इसके लिए, तय की गई शेप में टेक्स्ट में बदलाव करना का सैंपल देखें.
इमेज बदलना ज़्यादा मुश्किल है. किसी इमेज को मर्ज करने के लिए, आपको ये काम करने होंगे:
- टैग शेप का आईडी पाएं.
- टैग से साइज़ और ट्रांसफ़ॉर्म की जानकारी कॉपी करें.
- साइज़ और ट्रांसफ़ॉर्म की जानकारी का इस्तेमाल करके, पेज में अपनी इमेज जोड़ें.
- टैग शेप मिटाएं.
इमेज का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखते हुए, उसे मनचाहे साइज़ में स्केल करने के लिए, कुछ बातों का ध्यान रखना पड़ सकता है. इसके बारे में, अगले सेक्शन में बताया गया है. यह सैंपल भी देखें: शेप टैग को इमेज से बदलना.
आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखना
Slides API का इस्तेमाल करके इमेज बनाते समय, आसपेक्ट फ़िट सिर्फ़ इमेज के साइज़ पर आधारित होते हैं. ये साइज़ और ट्रांसफ़ॉर्म डेटा पर आधारित नहीं होते. अनुरोध में दिया गया साइज़ डेटा, इमेज का मनचाहा साइज़ माना जाता है.createImage एपीआई, इमेज के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को इस मनचाहे साइज़ के हिसाब से फ़िट करता है. इसके बाद, दिया गया ट्रांसफ़ॉर्म लागू करता है.
किसी टैग को इमेज से बदलते समय, इमेज का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखने के लिए, इमेज का साइज़ और स्केल इस तरह सेट करें:
- चौड़ाई: टैग के
widthऔरscaleXके प्रॉडक्ट पर सेट करें - ऊंचाई: टैग के
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 का इस्तेमाल करके, वैल्यू बदलें.