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

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

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

নিম্নলিখিত বিভাগগুলিতে দেখানো হয়েছে 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 ইউনিয়ন ফিল্ড দ্বারা সংজ্ঞায়িত বিভিন্ন ধরণের পেজ এলিমেন্ট রয়েছে। এই ধরণের পেজ এলিমেন্টগুলো নিম্নলিখিত সারণিতে বর্ণনা করা হলো:
| উপাদানের প্রকার | বর্ণনা |
|---|---|
| গ্রুপ | পৃষ্ঠার উপাদানগুলির একটি সেট যা একটি স্বতন্ত্র একক হিসাবে বিবেচিত হয়। এগুলিকে একসাথে সরানো, আকার পরিবর্তন করা এবং ঘোরানো যায়। |
| আকৃতি | একটি সাধারণ দৃশ্যমান বস্তু, যেমন আয়তক্ষেত্র, উপবৃত্ত এবং টেক্সট বক্স। আকারগুলোর মধ্যে লেখা থাকতে পারে, তাই স্লাইড তৈরির জন্য এগুলোই সবচেয়ে সাধারণ পেজ এলিমেন্ট। |
| ছবি | স্লাইডসে একটি গ্রাফিক আমদানি করা হয়েছে। |
| ভিডিও | স্লাইডসে একটি ভিডিও ইম্পোর্ট করা হয়েছে। |
| লাইন | একটি দৃশ্যমান রেখা, বক্ররেখা বা সংযোগকারী। |
| টেবিল | বিষয়বস্তুর একটি গ্রিড। |
| ওয়ার্ডআর্ট | একটি ভিজ্যুয়াল টেক্সট এলিমেন্ট যা অনেকটা শেপের মতো আচরণ করে। |
| শীটসচার্ট | গুগল শিটস থেকে স্লাইডসে ইম্পোর্ট করা একটি চার্ট। |
পৃষ্ঠা এবং পৃষ্ঠা উপাদানের বৈশিষ্ট্য
স্লাইডস এপিআই আপনাকে আপনার প্রেজেন্টেশনের পেজ এবং পেজ এলিমেন্টগুলোর চেহারা পড়তে ও আপডেট করতে দেয়। বিভিন্ন পেজ এলিমেন্ট বিভিন্ন প্রপার্টি সাপোর্ট করে, যা পেজ এলিমেন্টটি কীভাবে রেন্ডার হবে তা নিয়ন্ত্রণ করে।
প্রতিটি পেজ এলিমেন্ট কাইন্ডের একটি সংশ্লিষ্ট প্রপার্টিজ এলিমেন্ট এবং একটি প্রপার্টিজ আপডেট মেসেজ থাকে, উদাহরণস্বরূপ:
- একটি পেজ এলিমেন্ট টাইপ শেপ আছে
- এর প্রপার্টি ফিল্ড হলো shapeProperties
- এই প্রোপার্টিগুলো আপডেট করার অনুরোধটি হলো UpdateShapePropertiesRequest
প্রতিটি পেজ এলিমেন্ট টাইপের জন্য একই ধরনের এলিমেন্ট/প্রপার্টি/আপডেট রিকোয়েস্ট বিদ্যমান থাকে: যেমন Image / imageProperties / UpdateImageProperties ইত্যাদি।
কোনো এলিমেন্ট পড়ার সময় যেখানেই properties অ্যাট্রিবিউটটি পাবেন, সেখানেই তা পড়তে পারবেন; এর ভেতরের মানগুলো পরিবর্তন করতে, batchUpdate মেথডের পেলোড হিসেবে সংশ্লিষ্ট রিকোয়েস্ট টাইপের সাথে এটি ব্যবহার করুন, যা আপনাকে প্রেজেন্টেশনেই এই মানগুলো পরিবর্তন করার সুযোগ দেবে।
বৈশিষ্ট্যের প্রকারভেদ
স্লাইডস এপিআই-এর বিভিন্ন ধরণের অবজেক্টের মধ্যে কিছু সাধারণ বৈশিষ্ট্য রয়েছে:
| সম্পত্তি | বর্ণনা |
|---|---|
| রঙ | স্লাইডস এপিআই-তে রংগুলো একটি আরজিবি (RGB) মান অথবা কোনো থিম রঙের রেফারেন্স হতে পারে। থিম রঙগুলোকে নাম দিয়ে উল্লেখ করা হয় (যেমন "DARK1") এবং একটি পৃষ্ঠার কালার স্কিম ব্যবহার করে সেগুলোকে আরজিবি মানের সাথে ম্যাপ করা যায়। স্লাইডস এডিটরে প্রেজেন্টেশনের থিম পরিবর্তন করার সময় সাধারণত এই কালার স্কিমটি আপডেট করা হয়। |
| পূরণ করুন | ফিল বলতে কোনো অবজেক্টের ভেতরের খালি জায়গার রেন্ডারিং বোঝায়। স্লাইডসে সবচেয়ে বেশি ব্যবহৃত ফিল হলো সলিড ফিল, যেখানে কোনো অবজেক্টের অভ্যন্তর একটিমাত্র নিরেট রঙ দিয়ে পূর্ণ করা হয়। পেজের ব্যাকগ্রাউন্ডের জন্যও ফিল ব্যবহার করা যায়। |
| রূপরেখা | আউটলাইন হলো সেই রেখাগুলোর সমষ্টি যা পেজ এলিমেন্টকে ঘিরে থাকে। রেখাগুলোর রঙ একটি ফিল (Fill) দ্বারা নিয়ন্ত্রণ করা হয়। ব্যবহারকারীরা আউটলাইনের প্রস্থ এবং ড্যাশ স্টাইলও পরিবর্তন করতে পারেন। |
| ছায়া | ছায়া হলো একটি ভিজ্যুয়াল ইফেক্ট, যা কোনো বস্তুর বাস্তব ছায়াকে অনুকরণ করার জন্য তৈরি। বর্তমানে, স্লাইডস এপিআই-তে ছায়াগুলো শুধুমাত্র পঠনযোগ্য (read only)। |
বৈশিষ্ট্যগুলি আপডেট করা হচ্ছে
কোনো প্রপার্টি আপডেট করতে, একটি batchUpdate কলে উপযুক্ত Update ... Properties রিকোয়েস্টটি ব্যবহার করুন—উদাহরণস্বরূপ, Shape-এর জন্য UpdateShapeProperties । এই রিকোয়েস্টগুলো একটি সম্পূর্ণ প্রপার্টিজ মেসেজ গ্রহণ করে এবং প্রপার্টিজ মেসেজের কোন ফিল্ডগুলো আপডেট করা হবে তা নির্ধারণ করতে ফিল্ড মাস্ক ব্যবহার করতে পারে।
সম্পত্তির উত্তরাধিকার
একটি পৃষ্ঠা বা পৃষ্ঠার উপাদান তার জনক বস্তুগুলো থেকে বৈশিষ্ট্য উত্তরাধিকার সূত্রে পেতে পারে। একটি বস্তু তার নিজস্ব বৈশিষ্ট্য এবং উত্তরাধিকার সূত্রে প্রাপ্ত বৈশিষ্ট্যসহ তার চূড়ান্ত দৃশ্যমান রূপ নির্ধারণ করে।
- পৃষ্ঠার বৈশিষ্ট্যসমূহ — একটি পৃষ্ঠা তার ভিত্তি হিসেবে ব্যবহৃত লেআউট বা মাস্টারে সংজ্ঞায়িত, কিন্তু নিজে সংজ্ঞায়িত নয় এমন যেকোনো বৈশিষ্ট্য উত্তরাধিকারসূত্রে লাভ করে।
- শেপের প্রোপার্টি — একটি শেপকে প্লেসহোল্ডার হিসেবে চিহ্নিত করা যেতে পারে, যা আপনাকে প্রোপার্টি উত্তরাধিকারসূত্রে পাওয়ার জন্য অন্য একটি প্লেসহোল্ডার শেপকে (পেজের প্যারেন্ট লেআউট বা মাস্টারে থাকা) স্পষ্টভাবে রেফারেন্স করার সুযোগ দেয়।
এই ধারণাগুলো পরবর্তী অনুচ্ছেদগুলোতে আরও বিশদভাবে ব্যাখ্যা করা হয়েছে।
পৃষ্ঠার বৈশিষ্ট্যগুলির উত্তরাধিকার
স্লাইড, লেআউট এবং মাস্টারের কাঠামো প্রেজেন্টেশনের মধ্যে একটি উত্তরাধিকারের স্তরক্রম নির্ধারণ করে: স্লাইডগুলো লেআউট থেকে এবং লেআউটগুলো মাস্টার থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়। একটি স্লাইডের প্যারেন্ট লেআউট এবং মাস্টার সেই স্লাইডের ' slideProperties ' ফিল্ডে নির্দিষ্ট করা থাকে।
একটি পেজ তার প্যারেন্ট পেজ থেকে ব্যাকগ্রাউন্ড এবং কালার স্কিমের মতো প্রোপার্টি উত্তরাধিকার সূত্রে পেতে পারে। কোনো প্রোপার্টি উত্তরাধিকার সূত্রে পেতে হলে, চাইল্ড পেজটি তার PageProperties মেসেজে সেই প্রোপার্টির জন্য কোনো ভ্যালু সেট করে না। প্যারেন্ট দ্বারা নির্ধারিত ভ্যালুকে 'ওভাররাইড' না করার মাধ্যমে, পেজটি উত্তরাধিকার সূত্রে প্রাপ্ত ভ্যালুটি গ্রহণ করে নেয়।
নিম্নলিখিত ডায়াগ্রামটি এমন একটি স্লাইড দেখাচ্ছে যা একটি লেআউট থেকে বৈশিষ্ট্য গ্রহণ করছে, এবং সেই লেআউটটি আবার একটি মাস্টার থেকে বৈশিষ্ট্য গ্রহণ করেছে:

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

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

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