Slides API কার্যকরভাবে ব্যবহার করার জন্য, আপনাকে প্রেজেন্টেশনের আর্কিটেকচার এবং এর উপাদানগুলি এবং এই উপাদানগুলির মধ্যে ইন্টারঅ্যাকশন বুঝতে হবে। এই পৃষ্ঠায় এইসব বিষয়ের বিস্তারিত ওভারভিউ দেওয়া হয়েছে:
- প্রেজেন্টেশনের উপাদানগুলির ধারণাগত মডেল
- API কীভাবে এইসব কম্পোনেন্ট দেখায়
- কম্পোনেন্টের স্টাইলিং প্রপার্টি
এই এবং অন্যান্য ধারণার ওভারভিউ পড়লে, কীভাবে-করবেন গাইড, রেফারেন্স ডকুমেন্টেশন এবং কোড স্যাম্পেল বোঝা ও ব্যবহার করা সহজ হবে।
উপস্থাপনা, পৃষ্ঠা এবং পৃষ্ঠা উপাদান
Google Slides-এ সবচেয়ে বাইরের কন্টেনার এলিমেন্ট হল প্রেজেন্টেশন। এটি হল এমন ইউনিট যা Google Drive-এ সেভ করা, অন্যান্য ব্যবহারকারীর সাথে শেয়ার করা এবং আরও অনেক কিছু করা যায়।
প্রতিটি প্রেজেন্টেশনে বিভিন্ন ধরনের পৃষ্ঠা থাকে। এক ধরনের পৃষ্ঠা হল স্লাইড, যা ব্যবহারকারীরা স্ক্রিনে প্রেজেন্টেশন রেন্ডার করার সময় দেখেন এবং ফ্লিপ করেন।
প্রতিটি পৃষ্ঠায় একাধিক পৃষ্ঠা উপাদান থাকে, যা একসাথে পৃষ্ঠার কন্টেন্ট তৈরি করে, যেমনটি নিম্নলিখিত ডায়াগ্রামে দেখানো হয়েছে:

স্লাইড ছাড়াও, অন্যান্য ধরনের পৃষ্ঠা আছে যা আপনাকে অনেক বিভিন্ন স্লাইডে ডিজাইন প্রয়োগ করতে দেয়, একটি সামঞ্জস্যপূর্ণ চেহারা তৈরি করে। এই অন্যান্য পৃষ্ঠার ধরনগুলি হল মাস্টার এবং লেআউট, এবং তাদের বৈশিষ্ট্যগুলি স্লাইডগুলি যেভাবে রেন্ডার করা হয় তা নির্ধারণ করে, যেমনটি নিম্নলিখিত ডায়াগ্রামে দেখানো হয়েছে:

মাস্টার — মাস্টার পৃষ্ঠা দুটি উদ্দেশ্যে কাজ করে। মাস্টার স্লাইডের প্লেসহোল্ডারে আপনার প্রেজেন্টেশন জুড়ে ব্যবহৃত টেক্সট স্টাইলের ডিফল্ট থাকে। মাস্টার স্লাইডের ব্যাকগ্রাউন্ড এবং অন্য যেকোনও আকার, সেই মাস্টারের উপর ভিত্তি করে সব স্লাইডের জন্য ডিফল্ট ব্যাকগ্রাউন্ড তৈরি করে। আপনার কোম্পানির লোগো যদি প্রেজেন্টেশনের প্রতিটি স্লাইডে দেখাতে চান, তাহলে সেটি মাস্টার স্লাইডে রাখুন।
লেআউট — লেআউট টেমপ্লেট নির্ধারণ করে যে প্রতিটি ধরনের স্লাইডে কন্টেন্ট কীভাবে সাজানো হবে। আপনি যদি চান যে আপনার সব টাইটেল স্লাইড একটি নির্দিষ্ট উপায়ে দেখানো হোক, যেমন, আপনি টাইটেল লেআউট টেমপ্লেট এডিট করতে পারেন।
আরও দুই ধরনের পৃষ্ঠা আছে—নোট পৃষ্ঠা ও নোট মাস্টার—যেগুলি মূলত স্পিকারের নোট-এর সাথে কাজ করার জন্য প্রাসঙ্গিক।
API রিপ্রেজেন্টেশনের ধরন ও স্ট্রাকচার
এই বিভাগে উপরে বর্ণিত 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.
}
পৃষ্ঠা উপাদান
পৃষ্ঠার এলিমেন্ট হল ভিজ্যুয়াল কম্পোনেন্ট যা পৃষ্ঠায় প্লেস করা হয়। API-তে পৃষ্ঠা উপাদানে একাধিক প্রপার্টি থাকে, যার মধ্যে এমন একটি ফিল্ডও থাকে যা পৃষ্ঠা উপাদানের ধরন অনুযায়ী পরিবর্তিত হয়:
{
"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 API-তে রঙ, RGB ভ্যালু বা থিমের রঙের রেফারেন্স হতে পারে। থিমের রঙকে নাম দিয়ে উল্লেখ করা হয় (যেমন, "DARK1") এবং পৃষ্ঠার রঙের স্কিম ব্যবহার করে RGB ভ্যালুতে ম্যাপ করা যেতে পারে। Slides এডিটরে প্রেজেন্টেশনের থিম পরিবর্তন করার সময় সাধারণত এই রঙের স্কিম আপডেট করা হয়। |
| পূরণ করুন | কোনও অবজেক্টের মধ্যে ফাঁকা স্পেসের রেন্ডারিং ফিল দিয়ে দেখানো হয়। Slides-এ সবচেয়ে বেশি ব্যবহৃত ফিল হল সলিড ফিল, যেখানে কোনও অবজেক্টের ভিতরের অংশ একটি সলিড রঙ দিয়ে ফিল করা হয়। পৃষ্ঠার ব্যাকগ্রাউন্ডের জন্যও ফিল ব্যবহার করা যেতে পারে। |
| আউটলাইন | পৃষ্ঠা উপাদানের চারপাশে থাকা লাইনের সেটকে আউটলাইন বলা হয়। লাইনের রঙ ফিল দিয়ে নিয়ন্ত্রণ করা হয়। এছাড়াও, কলাররা আউটলাইনের প্রস্থ ও ড্যাশ স্টাইল অ্যাডজাস্ট করতে পারবেন। |
| শ্যাডো | ছায়াটি একটি ভিজ্যুয়াল এফেক্টকে উপস্থাপন করে যা অবজেক্টের দ্বারা কাস্ট করা একটি ফিজিক্যাল ছায়াকে অনুকরণ করার জন্য তৈরি করা হয়েছে। বর্তমানে, Slides API-তে শ্যাডো শুধু পড়া যায়। |
প্রপার্টি আপডেট করা হচ্ছে
কোনও প্রপার্টি আপডেট করতে,
batchUpdate
কলে উপযুক্ত Update...Properties অনুরোধ ব্যবহার করুন—যেমন, আকারের জন্য UpdateShapeProperties। এইসব অনুরোধ
সম্পূর্ণ প্রপার্টি মেসেজ গ্রহণ করে এবং প্রপার্টি মেসেজের কোন কোন ফিল্ড
আপডেট করা উচিত তা নির্ধারণ করতে
ফিল্ড মাস্ক ব্যবহার করতে পারে।
প্রপার্টি উত্তরাধিকার সূত্রে পাওয়া
কোনও পৃষ্ঠা বা পৃষ্ঠা উপাদান তার মূল অবজেক্ট থেকে প্রপার্টি গ্রহণ করতে পারে। কোনও অবজেক্টের প্রপার্টি, যার মধ্যে এটি যা নির্ধারণ করে এবং যা এটি উত্তরাধিকার সূত্রে পায়, তার চূড়ান্ত ভিজ্যুয়াল উপস্থিতি নির্ধারণ করে।
- পৃষ্ঠার প্রপার্টি — কোনও পৃষ্ঠা এমন কোনও প্রপার্টি ইনহেরিট করে যা এটি সংজ্ঞায়িত করে না, তবে এটি যে লেআউট বা মাস্টারের উপর ভিত্তি করে তৈরি করা হয়েছে তাতে সংজ্ঞায়িত করা হয়েছে।
- আকৃতির প্রপার্টি — কোনও আকৃতিকে প্লেসহোল্ডার হিসেবে চিহ্নিত করা যেতে পারে, যার ফলে আপনি অন্য প্লেসহোল্ডার আকৃতি (পৃষ্ঠার পেরেন্ট লেআউট বা মাস্টার) থেকে প্রপার্টি উত্তরাধিকার সূত্রে পেতে পারেন।
এইসব আইডিয়া নিম্নলিখিত অনুচ্ছেদে আরও ব্যাখ্যা করা হয়েছে।
পৃষ্ঠার প্রপার্টি ইনহেরিট করা
স্লাইড, লেআউট এবং মাস্টারের স্ট্রাকচার প্রেজেন্টেশনের মধ্যে ইনহেরিটেন্স হায়ারার্কি নির্ধারণ করে: স্লাইড লেআউট থেকে ইনহেরিট করে এবং লেআউট মাস্টার থেকে ইনহেরিট করে। স্লাইডের পেরেন্ট লেআউট এবং মাস্টার স্লাইডের slideProperties ফিল্ডে উল্লেখ করা থাকে।
কোনও পৃষ্ঠা, পেরেন্ট পৃষ্ঠা থেকে ব্যাকগ্রাউন্ড এবং রঙের স্কিম-এর মতো প্রপার্টি উত্তরাধিকার সূত্রে পেতে পারে। কোনও প্রপার্টি ইনহেরিট করতে, চাইল্ড পৃষ্ঠাটি তার PageProperties মেসেজে সেই প্রপার্টির জন্য কোনও ভ্যালু সেট করে না। পেরেন্ট দ্বারা সংজ্ঞায়িত মান "ওভাররাইড" না করে, পৃষ্ঠাটি উত্তরাধিকারসূত্রে প্রাপ্ত মান গ্রহণ করে।
নিচের ডায়াগ্রামে দেখানো হয়েছে যে একটি স্লাইড লেআউট থেকে প্রপার্টি ইনহেরিট করছে, যা মাস্টার থেকে ইনহেরিট করে:

স্লাইড রেন্ডার করার জন্য ব্যবহৃত প্রপার্টি হল এটির দ্বারা সংজ্ঞায়িত এবং উত্তরাধিকার সূত্রে প্রাপ্ত প্রপার্টির একটি সংমিশ্রণ। এই উদাহরণে, স্লাইড ১ রেন্ডার করার জন্য ব্যবহৃত সমাধান করা ভ্যালু নিম্নলিখিত:
- PropertyA হল "লাল"।
- PropertyB হল "Orange"।
আকৃতির প্রপার্টি ইনহেরিট করা
শেপ অন্যান্য শেপ থেকে ফিল, আউটলাইন বা ছায়ার মতো প্রপার্টি ইনহেরিট করতে পারে। কোনও আকার প্লেসহোল্ডার হয় যদি তার
Shape.placeholder
ফিল্ড সেট করা থাকে। চাইল্ড প্লেসহোল্ডারের Shape.placeholder.parentObjectId ফিল্ড
তার পেরেন্ট প্লেসহোল্ডারকে শনাক্ত করে। আপনি কোনও লেআউটের ভিত্তিতে নতুন স্লাইড তৈরি করলে, সেই লেআউটের যেকোনও প্লেসহোল্ডার নতুন স্লাইডে চাইল্ড শেপ হিসেবে দেখা যায়।
একইভাবে, মাস্টার পৃষ্ঠার প্লেসহোল্ডার লেআউটের প্লেসহোল্ডারের পেরেন্ট হিসেবে কাজ করতে পারে।
এই ইনহেরিটেন্স হায়ারার্কি সংজ্ঞায়িত করার মাধ্যমে, চাইল্ড পৃষ্ঠাটি তার ShapeProperties মেসেজে সেই ভ্যালু সেট না করে একটি প্রপার্টি ইনহেরিট করে। প্যারেন্ট শেপের ভ্যালু ওভাররাইড না করে, চাইল্ড শেপ ইনহেরিট করা ভ্যালু গ্রহণ করে।
নিচের ডায়াগ্রামটি একটি স্লাইড, একটি লেআউট এবং একটি মাস্টারে থাকা তিনটি প্লেসহোল্ডারের মধ্যে প্রপার্টির ইনহেরিটেন্স দেখায়:

প্লেসহোল্ডার শেপ রেন্ডার করার জন্য ব্যবহৃত প্রপার্টি হল এটির দ্বারা সংজ্ঞায়িত এবং এটির দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত প্রপার্টির একটি কম্বিনেশন। এই উদাহরণে, এইসব আকারের জন্য সমাধান করা ভ্যালু নিম্নলিখিত:
- Placeholder1: propertyA "হলুদ" হিসেবে এবং propertyB "সবুজ" হিসেবে দেখানো হয়েছে।
- Placeholder2: propertyA "হলুদ" হিসেবে এবং propertyB "বেগুনি" হিসেবে দেখানো হয়েছে।
- Placeholder3: propertyA "হলুদ" হিসেবে এবং propertyB "বেগুনি" হিসেবে দেখানো হয়েছে।
আকার হল একমাত্র পৃষ্ঠার উপাদান যার পেরেন্ট থাকতে পারে। অন্যান্য ধরনের, যেমন ছবি, টেবিল এবং চার্ট, প্লেসহোল্ডার হতে পারে না এবং এর কোনও প্যারেন্ট থাকতে পারে না।
PropertyState ব্যবহার করে প্রপার্টি "লুকানো"
PropertyState
এনিউমারেশন নিয়ন্ত্রণ করে যে কোনও শেপের প্রপার্টি আসলে রেন্ডারিংয়ের জন্য ব্যবহার করা হয় কিনা,
অথবা ভ্যালুটি শুধুমাত্র চাইল্ড শেপের মাধ্যমে ইনহেরিটেন্সের জন্য ব্যবহার করা হয় কিনা। NOT_RENDERED প্রপার্টি স্টেট সহ
প্রপার্টি, তার পৃষ্ঠায় আকার রেন্ডার করার সময় ব্যবহার করা হবে না, তবে RENDERED-এর সাথে সম্পর্কিত প্রপার্টি স্টেট আছে এমন চাইল্ড
এখনও এই প্রপার্টি ইনহেরিট করতে পারবে।
নিচে দেওয়া ডায়াগ্রামে তিনটি প্লেসহোল্ডারের মধ্যে প্রপার্টির ইনহেরিটেন্স দেখানো হয়েছে যা PropertyState ফিল্ডকে ম্যানিপুলেট করে:

PropertyState ফিল্ডের মাধ্যমে শেপের প্রপার্টি রেন্ডার করার বিষয়টি প্রভাবিত হতে পারে। এই উদাহরণে, এইসব আকারের জন্য সমাধান করা ভ্যালুগুলি নিচে দেওয়া হল:
- Placeholder1: propertyA "লাল" হিসেবে রেন্ডার করা হয়েছে।
- Placeholder2: propertyA রেন্ডার করা হয়নি। এটি যদি আউটলাইন প্রপার্টি হত, তাহলে Placeholder2-এর কোনও আউটলাইন থাকত না।
- Placeholder3: propertyA রেন্ডার করা হয়নি।
PropertyState
এনিউমারেশনের আরও একটি সম্ভাব্য ভ্যালু আছে: INHERIT প্রপার্টি স্টেট মানে হল, প্রপার্টি স্টেট নিজেই
ইনহেরিট করা হয়েছে এবং অভিভাবকের ভ্যালু ব্যবহার করা উচিত। কোনও পেরেন্ট নেই এমন শেপের
INHERIT-এর প্রপার্টি স্টেট থাকতে পারে না।