पेज, पेज एलिमेंट, और प्रॉपर्टी

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 है

हर पेज एलिमेंट के लिए, एलिमेंट/प्रॉपर्टी/अपडेट करने के अनुरोध का एक ही सेट मौजूद होता है. टाइप: Image/imageProperties/UpdateImageProperties वगैरह.

किसी एलिमेंट को पढ़ते समय आपको जहां भी प्रॉपर्टी एट्रिब्यूट दिखता है, उसे यहां पढ़ा जा सकता है. उसकी वैल्यू बदलने के लिए, उसका मेल खाने वाले अनुरोध टाइप के साथ batchUpdate तरीके के पेलोड के रूप में इस्तेमाल करें. इससे आपको प्रज़ेंटेशन में इन वैल्यू को बदलने में मदद मिलेगी.

प्रॉपर्टी किस तरह की हैं

कुछ ऐसी प्रॉपर्टी हैं जो Slides API में कई तरह के ऑब्जेक्ट में होती हैं:

प्रॉपर्टी ब्यौरा
रंग Slides के एपीआई में मौजूद रंग आरजीबी वैल्यू या थीम के रंग का रेफ़रंस हो सकते हैं. थीम के रंगों को नाम से जाना जाता है (उदाहरण के लिए, "DARK1") और इन्हें पेज की कलर स्कीम का इस्तेमाल करके, आरजीबी वैल्यू के साथ मैप किया जा सकता है. Slides एडिटर में प्रज़ेंटेशन की थीम बदलते समय, आम तौर पर इस कलर स्कीम को अपडेट किया जाता है.
भरें फ़िल से किसी ऑब्जेक्ट के खाली स्पेस की रेंडरिंग के बारे में पता चलता है. Slides में सबसे ज़्यादा इस्तेमाल किया जाने वाला फ़िल को सॉलिड फ़िल के तौर पर इस्तेमाल किया जाता है. इसमें किसी ऑब्जेक्ट के अंदरूनी हिस्से में एक ही रंग भरा होता है. पेज के बैकग्राउंड के लिए भी फ़िल का इस्तेमाल किया जा सकता है.
आउटलाइन आउटलाइन, पेज के एलिमेंट को घेरने वाली लाइनों के सेट को दिखाती है. लाइनों का रंग फ़िल से कंट्रोल होता है. कॉलर, आउटलाइन की चौड़ाई और डैश की स्टाइल भी अडजस्ट कर सकते हैं.
शैडो शैडो एक विज़ुअल इफ़ेक्ट को दिखाता है. इसका मकसद, ऑब्जेक्ट की शैडो कास्ट की नकल करना होता है. फ़िलहाल, Slides API में शैडो सिर्फ़ पढ़ने के लिए हैं.

प्रॉपर्टी अपडेट की जा रही हैं

किसी प्रॉपर्टी को अपडेट करने के लिए, batchUpdate कॉल में दिए गए सही Update...Properties अनुरोध का इस्तेमाल करें. उदाहरण के लिए, Shapes के लिए UpdateShapeProperties. इन अनुरोधों के लिए प्रॉपर्टी का पूरा मैसेज दिखाया जाता है. फ़ील्ड मास्क का इस्तेमाल करके यह तय किया जा सकता है कि प्रॉपर्टी मैसेज में किन फ़ील्ड को अपडेट किया जाना चाहिए.

प्रॉपर्टी इनहेरिटेंस

कोई पेज या पेज एलिमेंट, अपने पैरंट ऑब्जेक्ट से प्रॉपर्टी इनहेरिट कर सकता है. किसी ऑब्जेक्ट की प्रॉपर्टी, उसका फ़ाइनल विज़ुअल लुक तय करती हैं. इनमें, इसके बारे में बताने वाली और इससे मिलने वाली प्रॉपर्टी भी शामिल हैं.

  • पेज प्रॉपर्टी — पेज ऐसी सभी प्रॉपर्टी इनहेरिट करता है जो उसके हिसाब से नहीं हैं, लेकिन वह उस लेआउट या मास्टर में तय की जाती हैं जिस पर वह आधारित होता है.
  • आकार की प्रॉपर्टी — आकार को प्लेसहोल्डर के तौर पर मार्क किया जा सकता है. इससे किसी दूसरे प्लेसहोल्डर आकार (पेज के पैरंट लेआउट या मास्टर पर) का साफ़ तौर पर रेफ़रंस दिया जा सकता है, जिससे प्रॉपर्टी इनहेरिट की जाती हैं.

इन आइडिया की ज़्यादा जानकारी नीचे दिए गए पैराग्राफ़ में दी गई है.

पेज प्रॉपर्टी का इनहेरिटेंस

स्लाइड, लेआउट, और मास्टर का स्ट्रक्चर प्रज़ेंटेशन में इनहेरिटेंस हैरारकी तय करता है: स्लाइड, लेआउट से इनहेरिट की जाती हैं और लेआउट, मास्टर से इनहेरिट किए जाते हैं. स्लाइड के पैरंट लेआउट और मास्टर की जानकारी, स्लाइड के slideProperties फ़ील्ड में दी गई होती है.

कोई पेज, पैरंट पेज से बैकग्राउंड और कलर स्कीम जैसी प्रॉपर्टी इनहेरिट कर सकता है. किसी प्रॉपर्टी को इनहेरिट करने के लिए, चाइल्ड पेज अपने PageProperties मैसेज में, उस प्रॉपर्टी के लिए वैल्यू सेट नहीं करता है. पैरंट की तय की गई वैल्यू को "बदलने" के बजाय, पेज इनहेरिट की गई वैल्यू को स्वीकार करता है.

नीचे दिया गया डायग्राम, एक ऐसी स्लाइड दिखाता है जो लेआउट से प्रॉपर्टी इनहेरिट करती है. यह लेआउट, मास्टर से लिया जाता है:

स्लाइड प्रॉपर्टी इनहेरिटेंस

किसी स्लाइड को रेंडर करने के लिए इस्तेमाल की जाने वाली प्रॉपर्टी, उसके बताए गए और उस पर इनहेरिट की जाने वाली प्रॉपर्टी का कॉम्बिनेशन होती हैं. इस उदाहरण में, स्लाइड 1 को रेंडर करने के लिए इस्तेमाल किए गए मान इस तरह हैं:

  • प्रॉपर्टीA "लाल" है.
  • प्रॉपर्टीB "नारंगी" है.

आकार की प्रॉपर्टी का इनहेरिटेंस

आकार, दूसरे आकार के प्रॉपर्टी को इनहेरिट कर सकते हैं, जैसे कि फ़िल, आउटलाइन या शैडो. अगर आकार Shape.placeholder फ़ील्ड को सेट किया जाता है, तो उसे प्लेसहोल्डर कहा जाता है. चाइल्ड प्लेसहोल्डर का Shape.placeholder.parentObjectId फ़ील्ड, इसके पैरंट प्लेसहोल्डर की पहचान करता है. जब किसी लेआउट के आधार पर एक नई स्लाइड बनाई जाती है, तो उस लेआउट में मौजूद कोई भी प्लेसहोल्डर नई स्लाइड में चाइल्ड शेप के तौर पर दिखता है. इसी तरह, मास्टर पेजों पर मौजूद प्लेसहोल्डर, लेआउट के प्लेसहोल्डर के पैरंट के तौर पर काम कर सकते हैं.

इनहेरिटेंस की हैरारकी तय करने के बाद, चाइल्ड पेज अपनी प्रॉपर्टी को इनहेरिट करता है. इसके लिए, वह वैल्यू अपने ShapeProperties मैसेज में सेट नहीं करता है. पैरंट की ओर से तय की गई वैल्यू को नहीं बदलने पर, चाइल्ड शेप इनहेरिट की गई वैल्यू को स्वीकार करता है.

नीचे दिया गया डायग्राम, स्लाइड, लेआउट, और मास्टर में शामिल तीन प्लेसहोल्डर के बीच प्रॉपर्टी की इनहेरिटेंस दिखाता है:

आकार वाली प्रॉपर्टी का इनहेरिटेंस

प्लेसहोल्डर के आकार को रेंडर करने के लिए इस्तेमाल की जाने वाली प्रॉपर्टी, उसके बारे में बताने वाली और उससे इनहेरिट की गई प्रॉपर्टी का कॉम्बिनेशन होती हैं. इस उदाहरण में, इन आकृतियों के समाधान किए गए मान इस तरह हैं:

  • प्लेसहोल्डर1: प्रॉपर्टीA को "पीले" और प्रॉपर्टीB को "हरा" के तौर पर रेंडर किया जाता है.
  • प्लेसहोल्डर2: propertyA को "पीले" और प्रॉपर्टीB को "बैंगनी" के तौर पर रेंडर किया जाता है.
  • प्लेसहोल्डर3: propertyA को "पीला" और प्रॉपर्टीB को "बैंगनी" के तौर पर रेंडर किया जाता है.

आकार ही सिर्फ़ ऐसे पेज एलिमेंट हैं जिनमें पैरंट हो सकते हैं. इमेज, टेबल, और चार्ट जैसे दूसरे टाइप में प्लेसहोल्डर नहीं हो सकते. साथ ही, इनमें पैरंट नहीं हो सकते.

प्रॉपर्टीस्टेट का इस्तेमाल करके प्रॉपर्टी "छिपाना"

PropertyState एन्युमेशन से यह कंट्रोल किया जाता है कि आकार की प्रॉपर्टी का इस्तेमाल, रेंडरिंग के लिए किया जाए या नहीं. प्रॉपर्टी की स्थिति NOT_RENDERED वाली प्रॉपर्टी का इस्तेमाल, उसके पेज पर आकार को रेंडर करते समय नहीं किया जाएगा. हालांकि, जिन बच्चों की प्रॉपर्टी की स्थिति RENDERED है वे अब भी इस प्रॉपर्टी को इनहेरिट कर सकते हैं.

नीचे दिया गया डायग्राम, उन तीन प्लेसहोल्डर के बीच प्रॉपर्टी का इनहेरिटेंस दिखाता है जो प्रॉपर्टीस्टेट फ़ील्ड में बदलाव करते हैं:

प्रॉपर्टी की स्थिति और इनहेरिटेंस

आकार की प्रॉपर्टी की रेंडरिंग पर PropertyState फ़ील्ड से असर पड़ सकता है. इस उदाहरण में, इन आकारों की समाधान की गई वैल्यू इस तरह हैं:

  • प्लेसहोल्डर1: propertyA को "लाल" के तौर पर रेंडर किया जाता है.
  • प्लेसहोल्डर2: propertyA को रेंडर नहीं किया गया है. अगर यह आउटलाइन प्रॉपर्टी होती, तो प्लेसहोल्डर2 में कोई आउटलाइन नहीं होती.
  • प्लेसहोल्डर3: propertyA को रेंडर नहीं किया गया है.

PropertyState की एक और वैल्यू यहां दी जा सकती है: INHERIT प्रॉपर्टी की स्थिति का मतलब है कि प्रॉपर्टी की स्थिति इनहेरिट की जाती है. साथ ही, इसमें पैरंट की वैल्यू का इस्तेमाल किया जाना चाहिए. बिना पैरंट वाले आकार में प्रॉपर्टी की स्थिति INHERIT नहीं हो सकती.