Slides API का बेहतर तरीके से इस्तेमाल करने के लिए, आपको प्रज़ेंटेशन और उनके कॉम्पोनेंट के साथ-साथ, इन कॉम्पोनेंट के बीच के इंटरैक्शन के आर्किटेक्चर को समझना होगा. इस पेज पर इन विषयों के बारे में पूरी जानकारी दी गई है:
- प्रज़ेंटेशन कॉम्पोनेंट का कॉन्सेप्ट मॉडल
- एपीआई इन कॉम्पोनेंट को कैसे दिखाता है
- कॉम्पोनेंट की स्टाइल से जुड़ी प्रॉपर्टी
इस और कॉन्सेप्ट की अन्य खास जानकारी को पढ़ने से, कैसे करें गाइड, रेफ़रंस दस्तावेज़, और रेसिपी के सैंपल को समझना और इस्तेमाल करना आसान हो जाएगा.
प्रज़ेंटेशन, पेज, और पेज एलिमेंट
Google Slides में सबसे बाहरी कंटेनर एलिमेंट, प्रज़ेंटेशन होता है. यह ऐसी यूनिट है जिसे Google Drive में सेव किया जा सकता है, दूसरे उपयोगकर्ताओं के साथ शेयर किया जा सकता है वगैरह.
हर प्रज़ेंटेशन में अलग-अलग तरह के पेज होते हैं. पेज का एक टाइप स्लाइड होता है. ये ऐसे पेज होते हैं जिन्हें स्क्रीन पर प्रज़ेंटेशन रेंडर होने पर, उपयोगकर्ता देखते हैं और एक से दूसरे पेज पर जाते हैं.
हर पेज में कई पेज एलिमेंट होते हैं. ये एलिमेंट मिलकर पेज का कॉन्टेंट बनाते हैं, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है:
स्लाइड के अलावा, ऐसे अन्य पेज भी होते हैं जिन पर कई अलग-अलग स्लाइड में डिज़ाइन लागू किया जा सकता है. इससे सभी स्लाइड एक जैसी दिखती हैं. इन अन्य पेज टाइप में मास्टर और लेआउट शामिल हैं. इनकी प्रॉपर्टी से यह तय होता है कि स्लाइड किस तरह रेंडर की जाएंगी. इस बारे में यहां दिए गए डायग्राम में बताया गया है:
मास्टर — मास्टर पेज दो काम करता है. आपके प्रज़ेंटेशन में इस्तेमाल होने वाले टेक्स्ट स्टाइल के डिफ़ॉल्ट वैल्यू, मास्टर में मौजूद प्लेसहोल्डर में होती हैं. मास्टर स्लाइड पर मौजूद बैकग्राउंड और अन्य आकार, उस मास्टर के आधार पर सभी स्लाइड के लिए डिफ़ॉल्ट बैकग्राउंड बनाते हैं. अगर आपके पास कंपनी का कोई ऐसा लोगो है जिसे आपको अपने प्रज़ेंटेशन की हर स्लाइड पर दिखाना है, तो उसे मास्टर पर डालें.
लेआउट — लेआउट टेंप्लेट से यह तय होता है कि हर तरह की स्लाइड पर कॉन्टेंट कैसे व्यवस्थित किया जाए. अगर आपको अपनी सभी टाइटल स्लाइड को एक जैसा दिखाना है, तो उदाहरण के लिए, टाइटल लेआउट टेंप्लेट में बदलाव किया जा सकता है.
नोट पेज और नोट मास्टर्स, दो और तरह के पेज होते हैं. ये स्पीकर के नोट के साथ काम करने के लिए ज़्यादा काम के होते हैं.
एपीआई के टाइप और स्ट्रक्चर
इस सेक्शन में बताया गया है कि ऊपर बताए गए Google Slides के कॉन्सेप्ट मॉडल को Slides API में कैसे दिखाया जाता है.
नीचे दिए गए डायग्राम में, Slides API में प्रज़ेंटेशन, पेजों, और पेज एलिमेंट के बीच के संबंध को दिखाया गया है:
नीचे दिए गए सेक्शन में बताया गया है कि इन टाइप को JSON में कैसे दिखाया जाता है.
प्रज़ेंटेशन
प्रज़ेंटेशन में कई प्रॉपर्टी शामिल होती हैं. साथ ही, इसमें ये पेज भी शामिल होते हैं:
{
"presentationId": string,
"pageSize": { object(Size) },
"slides": [ { object(Page) } ],
"title": string,
"masters": [ { object(Page) } ],
"layouts": [ { object(Page) } ],
"notesMaster": object(Page),
"locale": string,
}
पेज
पेज में प्रॉपर्टी का एक सेट शामिल होता है. साथ ही, इसमें पेज के ये एलिमेंट शामिल होते हैं:
{
"objectId": string,
"pageType": enum(PageType),
"pageElements": [ { object(PageElement) } ],
"pageProperties": { object(PageProperties) },
// Union field properties can be only one of the following:
"slideProperties": { object(SlideProperties) },
"layoutProperties": { object(LayoutProperties) },
"notesProperties": { object(NotesProperties) },
// End of list of possible types for union field properties.
}
पेज एलिमेंट
पेज एलिमेंट, पेजों पर डाले जाने वाले विज़ुअल कॉम्पोनेंट होते हैं. एपीआई में मौजूद पेज एलिमेंट में कई प्रॉपर्टी होती हैं. इनमें एक फ़ील्ड भी होता है, जो पेज एलिमेंट के टाइप के हिसाब से अलग-अलग होता है:
{
"objectId": string,
"size": { object(Size) },
"transform": { object(AffineTransform) },
"title": string,
"description": string,
// Union field element_kind can be only one of the following:
"elementGroup": { object(Group) },
"shape": { object(Shape) },
"image": { object(Image) },
"video": { object(Video) },
"line": { object(Line) },
"table": { object(Table) },
"wordArt": { object(WordArt) },
"sheetsChart": { object(SheetsChart) },
// End of list of possible types for union field element_kind.
}
पेज एलिमेंट कई तरह के होते हैं. इनके बारे में ऊपर दी गई परिभाषा में, यूनियन फ़ील्डelement_kind
के ज़रिए बताया गया है. इस तरह के पेज एलिमेंट के बारे में, नीचे दी गई टेबल में बताया गया है:
एलिमेंट का टाइप | ब्यौरा |
---|---|
ग्रुप | पेज एलिमेंट का एक सेट, जिसे अलग-अलग यूनिट के तौर पर माना जाता है. इन्हें एक साथ एक ही दिशा में घुमाया, स्केल किया, और दूसरी जगह ले जाया जा सकता है. |
आकार | कोई सादा विज़ुअल ऑब्जेक्ट, जैसे कि रेक्टैंगल, एलिप्स, और टेक्स्ट बॉक्स. आकारों में टेक्स्ट शामिल किया जा सकता है. इसलिए, ये स्लाइड बनाने के लिए सबसे सामान्य पेज एलिमेंट हैं. |
इमेज | Slides में इंपोर्ट किया गया ग्राफ़िक. |
वीडियो | Slides में इंपोर्ट किया गया वीडियो. |
लाइन | विज़ुअल लाइन, कर्व या कनेक्टर. |
तालिका | कॉन्टेंट का ग्रिड. |
WordArt | विज़ुअल टेक्स्ट एलिमेंट, जो किसी शेप की तरह काम करता है. |
SheetsChart | Google Sheets से Slides में इंपोर्ट किया गया चार्ट. |
पेज और पेज एलिमेंट की प्रॉपर्टी
Slides API की मदद से, अपने प्रज़ेंटेशन में पेजों और पेज एलिमेंट के दिखने का तरीका पढ़ा और अपडेट किया जा सकता है. अलग-अलग पेज एलिमेंट, अलग-अलग प्रॉपर्टी के साथ काम करते हैं. इन प्रॉपर्टी से यह कंट्रोल होता है कि पेज एलिमेंट को कैसे रेंडर किया जाए.
हर तरह के पेज एलिमेंट का एक प्रॉपर्टी एलिमेंट और प्रॉपर्टी के अपडेट का मैसेज होता है. उदाहरण के लिए:
- पेज एलिमेंट टाइप आकार है
- इसका प्रॉपर्टी फ़ील्ड shapeProperties है
- इन प्रॉपर्टी को अपडेट करने का अनुरोध, UpdateShapePropertiesRequest है
हर पेज एलिमेंट टाइप के लिए, एलिमेंट/प्रॉपर्टी/अपडेट अनुरोध का एक ही सेट मौजूद होता है: इमेज/imageProperties/UpdateImageProperties वगैरह.
किसी एलिमेंट को पढ़ते समय, प्रॉपर्टी एट्रिब्यूट को कहीं भी पढ़ा जा सकता है. इसमें मौजूद वैल्यू बदलने के लिए, batchUpdate तरीके के लिए पेलोड के तौर पर, मैच करने वाले अनुरोध टाइप के साथ इसका इस्तेमाल करें. इससे, प्रज़ेंटेशन में इन वैल्यू को बदला जा सकता है.
प्रॉपर्टी के टाइप
Slides API में कुछ प्रॉपर्टी, कई तरह के ऑब्जेक्ट के लिए एक जैसी होती हैं:
प्रॉपर्टी | ब्यौरा |
---|---|
रंग | Slides API में रंग, आरजीबी वैल्यू या थीम के रंग का रेफ़रंस हो सकते हैं. थीम के रंगों को नाम से रेफ़र किया जाता है, जैसे कि "DARK1". साथ ही, पेज की कलर स्कीम का इस्तेमाल करके, उन्हें आरजीबी वैल्यू पर मैप किया जा सकता है. Slides एडिटर में प्रज़ेंटेशन की थीम बदलने पर, आम तौर पर यह कलर स्कीम अपडेट हो जाती है. |
भरें | 'भरें' एट्रिब्यूट, किसी ऑब्जेक्ट के अंदर खाली जगह को रेंडर करता है. Slides में, आम तौर पर ऑब्जेक्ट को एक ही रंग से भरा जाता है. पेजों के बैकग्राउंड के लिए भी, भरण का इस्तेमाल किया जा सकता है. |
आउटलाइन | आउटलाइन, पेज एलिमेंट के चारों ओर मौजूद लाइनों के सेट को दिखाता है. लाइनों का रंग, 'भरें' से कंट्रोल किया जाता है. कॉल करने वाले लोग, आउटलाइन की चौड़ाई और डैश स्टाइल में भी बदलाव कर सकते हैं. |
शैडो | शैडो एक विज़ुअल इफ़ेक्ट है, जिसका मकसद किसी ऑब्जेक्ट की परछाई की नकल करना है. फ़िलहाल, Slides API में मौजूद शैडो सिर्फ़ पढ़ने के लिए हैं. |
प्रॉपर्टी अपडेट करना
किसी प्रॉपर्टी को अपडेट करने के लिए, batchUpdate कॉल में सही Update...Properties
अनुरोध का इस्तेमाल करें. उदाहरण के लिए, आकार के लिए UpdateShapeProperties
. ये अनुरोध, पूरी प्रॉपर्टी मैसेज स्वीकार करते हैं. साथ ही, फ़ील्ड मास्क का इस्तेमाल करके यह तय कर सकते हैं कि प्रॉपर्टी मैसेज में कौनसे फ़ील्ड अपडेट किए जाने चाहिए.
प्रॉपर्टी इनहेरिटेंस
कोई पेज या पेज एलिमेंट, अपने पैरंट ऑब्जेक्ट से प्रॉपर्टी इनहेरिट कर सकता है. किसी ऑब्जेक्ट की प्रॉपर्टी से यह तय होता है कि वह आखिर में कैसा दिखेगा. इन प्रॉपर्टी में, ऑब्जेक्ट की तय की गई प्रॉपर्टी और इनहेरिट की गई प्रॉपर्टी, दोनों शामिल होती हैं.
- पेज प्रॉपर्टी — पेज में ऐसी सभी प्रॉपर्टी शामिल होती हैं जिन्हें वह तय नहीं करता, लेकिन वे उस लेआउट या मास्टर में तय होती हैं जिस पर पेज आधारित होता है.
- आकार की प्रॉपर्टी — किसी आकार को प्लेसहोल्डर के तौर पर मार्क किया जा सकता है. इससे, पेज के पैरंट लेआउट या मास्टर पर मौजूद किसी दूसरे प्लेसहोल्डर आकार का साफ़ तौर पर रेफ़रंस दिया जा सकता है, ताकि प्रॉपर्टी इनहेरिट की जा सकें.
इन आइडिया के बारे में नीचे दिए गए पैराग्राफ़ में ज़्यादा जानकारी दी गई है.
पेज प्रॉपर्टी का इनहेरिटेंस
स्लाइड, लेआउट, और मास्टर्स का स्ट्रक्चर, प्रज़ेंटेशन में इनहेरिटेंस के क्रम को तय करता है: स्लाइड, लेआउट से इनहेरिट करती हैं और लेआउट, मास्टर्स से इनहेरिट करते हैं. स्लाइड के पेरंट लेआउट और मास्टर को स्लाइड के slideProperties फ़ील्ड में बताया जाता है.
कोई पेज, पैरंट पेज से बैकग्राउंड और रंग योजना जैसी प्रॉपर्टी इनहेरिट कर सकता है. किसी प्रॉपर्टी को इनहेरिट करने के लिए, चाइल्ड पेज अपने PageProperties मैसेज में उस प्रॉपर्टी के लिए वैल्यू सेट नहीं करता. पैरंट की तय की गई वैल्यू को "ओवरराइड" न करके, पेज इनहेरिट की गई वैल्यू को स्वीकार करता है.
नीचे दिए गए डायग्राम में, एक स्लाइड को लेआउट से इनहेरिट की गई प्रॉपर्टी दिखाया गया है. यह लेआउट, एक मास्टर से इनहेरिट करता है:
स्लाइड को रेंडर करने के लिए इस्तेमाल की जाने वाली प्रॉपर्टी, उन प्रॉपर्टी का कॉम्बिनेशन होती हैं जिन्हें स्लाइड में तय किया जाता है और जिन्हें इनहेरिट किया जाता है. इस उदाहरण में, स्लाइड 1 को रेंडर करने के लिए इस्तेमाल की गई वैल्यू इस तरह हैं:
- PropertyA "लाल" है.
- PropertyB "Orange" है.
शेप प्रॉपर्टी का इनहेरिटेंस
आकार, दूसरे आकारों से प्रॉपर्टी इनहेरिट कर सकते हैं. जैसे, भरना, आउटलाइन या शैडो. अगर किसी शेप का Shape.placeholder फ़ील्ड सेट है, तो वह प्लेसहोल्डर होता है. चाइल्ड प्लेसहोल्डर का Shape.placeholder.parentObjectId
फ़ील्ड, अपने पैरंट प्लेसहोल्डर की पहचान करता है. किसी लेआउट के आधार पर नई स्लाइड बनाने पर, उस लेआउट में मौजूद प्लेसहोल्डर, नई स्लाइड में चाइल्ड शेप के तौर पर दिखते हैं.
इसी तरह, मास्टर पेजों पर मौजूद प्लेसहोल्डर, लेआउट के प्लेसहोल्डर के पैरंट के तौर पर काम कर सकते हैं.
इनहेरिटेंस की इस हैरारकी के साथ, चाइल्ड पेज को कोई प्रॉपर्टी इनहेरिट करने के लिए, ShapeProperties मैसेज में वैल्यू सेट नहीं करनी पड़ती. पैरंट के तय किए गए वैल्यू को बदले बिना, चाइल्ड शेप, इनहेरिट की गई वैल्यू को स्वीकार करता है.
इस डायग्राम में, स्लाइड, लेआउट, और मास्टर में मौजूद तीन प्लेसहोल्डर के बीच प्रॉपर्टी के इनहेरिटेंस को दिखाया गया है:
प्लेसहोल्डर के आकार को रेंडर करने के लिए इस्तेमाल की जाने वाली प्रॉपर्टी, उन प्रॉपर्टी का कॉम्बिनेशन होती हैं जिन्हें प्लेसहोल्डर तय करता है और जिन्हें वह इनहेरिट करता है. इस उदाहरण में, इन आकारों के लिए हल की गई वैल्यू इस तरह हैं:
- प्लेसहोल्डर1: propertyA को "पीला" और propertyB को "हरा" के तौर पर रेंडर किया गया है.
- प्लेसहोल्डर2: propertyA को "पीले" और propertyB को "बैंगनी" के तौर पर रेंडर किया गया है.
- प्लेसहोल्डर3: propertyA को "पीले" और propertyB को "बैंगनी" के तौर पर रेंडर किया गया है.
पेज के सिर्फ़ आकार वाले एलिमेंट में पैरंट एलिमेंट हो सकते हैं. इमेज, टेबल, और चार्ट जैसे अन्य आइटम, प्लेसहोल्डर नहीं हो सकते. साथ ही, इनके पैरंट भी नहीं हो सकते.
PropertyState का इस्तेमाल करके प्रॉपर्टी "छिपाना"
PropertyState सूची से यह कंट्रोल होता है कि किसी आकार की प्रॉपर्टी का इस्तेमाल, रेंडर करने के लिए किया जाता है या नहीं. इसके अलावा, यह भी कंट्रोल होता है कि वैल्यू का इस्तेमाल सिर्फ़ चाइल्ड आकार के इनहेरिटेंस के लिए किया जाता है या नहीं. प्रॉपर्टी की स्थिति NOT_RENDERED
वाली प्रॉपर्टी का इस्तेमाल, उसके पेज पर आकार को रेंडर करते समय नहीं किया जाएगा. हालांकि, जिन चाइल्ड प्रॉपर्टी की प्रॉपर्टी की स्थिति RENDERED
है वे अब भी इस प्रॉपर्टी को इनहेरिट कर सकती हैं.
नीचे दिए गए डायग्राम में, PropertyState फ़ील्ड में बदलाव करने वाले तीन प्लेसहोल्डर के बीच प्रॉपर्टी के इनहेरिटेंस को दिखाया गया है:
शेप प्रॉपर्टी की रेंडरिंग पर, PropertyState फ़ील्ड का असर पड़ सकता है. इस उदाहरण में, इन आकारों के लिए हल की गई वैल्यू इस तरह हैं:
- प्लेसहोल्डर1: propertyA को "लाल" के तौर पर रेंडर किया जाता है.
- प्लेसहोल्डर2: propertyA रेंडर नहीं किया गया. अगर यह आउटलाइन प्रॉपर्टी होती, तो Placeholder2 में कोई आउटलाइन नहीं होता.
- प्लेसहोल्डर3: propertyA रेंडर नहीं किया गया.
PropertyState सूची के लिए एक और वैल्यू हो सकती है: INHERIT
प्रॉपर्टी स्टेटस का मतलब है कि प्रॉपर्टी स्टेटस को इनहेरिट किया जाता है और पैरंट की वैल्यू का इस्तेमाल किया जाना चाहिए. जिन आकारों का कोई पैरंट नहीं है उनके लिए, प्रॉपर्टी की स्थिति INHERIT
नहीं हो सकती.