একটি পৃষ্ঠার উপাদানের আকার এবং অবস্থান পেতে এবং পরিবর্তন করার দুটি ভিন্ন উপায় রয়েছে:
- আকার এবং অবস্থানের জন্য এর গেটার এবং সেটার ফাংশন ব্যবহার করা।
- এর অ্যাফাইন ট্রান্সফর্মটি ম্যানিপুলেট করা, এর
getTransform()এবংsetTransform()ফাংশন ব্যবহার করে সহজাত আকার সংরক্ষণ করা।
পৃষ্ঠার উপাদানের বৈশিষ্ট্যগুলি পড়ুন

চিত্রে দেখানো হয়েছে, যখন কোনও ঘূর্ণন না থাকে তখন রেন্ডার করা পৃষ্ঠা উপাদানের বাউন্ডিং বাক্সের সাপেক্ষে আকার এবং অবস্থান পরিমাপ করা হয়:
- Left and Top : পৃষ্ঠার উপরের বাম কোণ থেকে অপরিবর্তিত বাউন্ডিং বাক্সের উপরের বাম কোণ পর্যন্ত পরিমাপ করা হয়েছে। মানগুলি পড়তে
getLeft()এবংgetTop()ব্যবহার করুন। - Width and Height : ঘূর্ণনহীন বাউন্ডিং বাক্সের প্রস্থ এবং উচ্চতা। মানগুলি পড়তে
getWidth()এবংgetHeight()ব্যবহার করুন। - ঘূর্ণন : বাউন্ডিং বাক্সের কেন্দ্রের চারপাশে উল্লম্ব রেখার সাপেক্ষে ঘড়ির কাঁটার দিকে ঘূর্ণন। মানটি পড়তে
getRotation()ব্যবহার করুন।
সমস্ত দৈর্ঘ্য বিন্দুতে (pt) পরিমাপ করা হয়। ঘূর্ণন ডিগ্রীতে (°) পরিমাপ করা হয়।
পৃষ্ঠার উপাদানের বৈশিষ্ট্য সেট করুন
insertShape() এর মতো insert পদ্ধতি ব্যবহার করে একটি পৃষ্ঠা উপাদান তৈরি করার সময় এর আকার এবং অবস্থান সেট করুন। বিদ্যমান আকৃতির জন্য, আপনি আকার, অবস্থান এবং ঘূর্ণন সেট করতে পারেন; আপনি একটি উপাদানের স্কেলিংও সেট করতে পারেন যাতে এটি আকার পরিবর্তন করতে পারে বা এর একটি প্রান্ত বরাবর প্রতিফলিত করতে পারে।
সৃষ্টির সময়
পৃষ্ঠার উপাদান তৈরি করার সময় অবস্থান এবং আকারের তথ্য প্রদান করুন।
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
Logger.log('Left: ' + shape.getLeft() + 'pt; Top: '
+ shape.getTop() + 'pt; Width: '
+ shape.getWidth() + 'pt; Height: '
+ shape.getHeight() + 'pt; Rotation: '
+ shape.getRotation() + ' degrees.');
পূর্ববর্তী স্ক্রিপ্টটি সক্রিয় উপস্থাপনার প্রথম স্লাইডে নির্দিষ্ট অবস্থান এবং আকার সহ একটি আকৃতি তৈরি করে এবং আকৃতির অবস্থান এবং আকারের তথ্য পড়ে। প্রত্যাশিত লগটি হল:
Left: 100pt; Top: 200pt; Width: 300pt; Height: 60pt; Rotation: 0 degrees.
আকার, অবস্থান এবং ঘূর্ণন
তৈরির পরে একটি পৃষ্ঠা উপাদানের আকার এবং অবস্থান আপডেট করুন:
- ঘূর্ণনহীন বাউন্ডিং বক্সের উপরের বাম কোণার অবস্থান সেট করতে
setLeft()এবংsetTop()ব্যবহার করুন। - বাউন্ডিং বক্সের রেন্ডার করা প্রস্থ এবং উচ্চতা সেট করতে
setWidth()এবংsetHeight()ব্যবহার করুন। -
setRotation()ব্যবহার করে বাউন্ডিং বক্সের কেন্দ্রের চারপাশে ঘড়ির কাঁটার দিকে ঘূর্ণন সেট করুন।
নিম্নলিখিত স্ক্রিপ্টটি সক্রিয় উপস্থাপনার প্রথম স্লাইডে একটি আকৃতি তৈরি করে, এর অবস্থান, আকার এবং ঘূর্ণন আপডেট করার জন্য সেটার ব্যবহার করে এবং আকৃতির অবস্থান এবং আকারের তথ্য পড়ে।
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setLeft(100).setTop(200).setWidth(50).setHeight(60).setRotation(90);
Logger.log('Left: ' + shape.getLeft()
+ 'pt; Top: ' + shape.getTop()
+ 'pt; Width: ' + shape.getWidth()
+ 'pt; Height: ' + shape.getHeight()
+ 'pt; Rotation: ' + shape.getRotation() + '\u00B0.');
প্রত্যাশিত লগ হল:
Left: 100pt; Top: 200pt; Width: 50pt; Height: 60pt; Rotation: 90°.
আকার, অবস্থান এবং ঘূর্ণন সেটারগুলি যেকোনো ক্রম বা সংমিশ্রণে ব্যবহার করা যেতে পারে। পূর্ববর্তী স্ক্রিপ্টের তৃতীয় লাইনটি নিম্নলিখিত স্ক্রিপ্ট দিয়ে প্রতিস্থাপন করলে একই ফলাফল পাওয়া যাবে:
shape.setWidth(55);
shape.setRotation(90).setHeight(60).setLeft(100);
shape.setWidth(50).setTop(200);
একটি পৃষ্ঠার উপাদান স্কেল করুন
আকৃতির আকারকে একটি পরম মানে সেট করার জন্য setWidth() এবং setHeight() ব্যবহার করার পরিবর্তে, scaleWidth() এবং scaleHeight() ব্যবহার করে একটি আপেক্ষিক স্কেলিং ফ্যাক্টর ব্যবহার করে একটি পৃষ্ঠা উপাদান প্রসারিত বা স্কুইজ করা যেতে পারে।
shape.scaleHeight(0.5).scaleWidth(2);
নিচের চিত্রটি ৪৫°-ঘূর্ণিত বর্গাকার আকৃতিতে পূর্ববর্তী কোডটি কীভাবে কাজ করে তা দেখায়। মনে রাখবেন যে স্কেলিংয়ের সময় বাউন্ডিং বাক্সের উপরের বাম কোণটি স্থির থাকে।

একটি পৃষ্ঠার উপাদান প্রতিফলিত করুন
scaleWidth() এবং scaleHeight() এর আর্গুমেন্টগুলি নেতিবাচক হতে পারে যাতে এগুলি অনুভূমিকভাবে বা উল্লম্বভাবে একটি পৃষ্ঠা উপাদান উল্টাতে ব্যবহার করা যেতে পারে।
// Flip horizontally along the left edge of the bounding box.
shape.scaleWidth(-1);
// Flip vertically along the top edge of the bounding box.
shape.scaleHeight(-1);
নিচের চিত্রটি ৪৫°-ঘূর্ণিত আকৃতিতে পূর্ববর্তী কোডটি কীভাবে কাজ করে তা দেখায়। লক্ষ্য করুন যে পৃষ্ঠা উপাদানটি তার বাউন্ডিং বাক্সের একটি প্রান্ত বরাবর উল্টানো হয়েছে কিন্তু এর কেন্দ্রে নয়।

লাইন ঘূর্ণন
অন্যান্য পৃষ্ঠার উপাদানের মতো, একটি রেখার ঘূর্ণন রেখার উল্লম্ব কোণ নয়, বরং এর বাউন্ডিং বাক্সের ঘূর্ণন। যখন আপনি নির্দিষ্ট শুরু এবং শেষ বিন্দু সহ একটি রেখা তৈরি করেন, তখন এর ঘূর্ণন সর্বদা 0° হয়। Slides UI-তে রেখার শেষ বিন্দুগুলি টেনে আনলে এর উল্লম্ব কোণের পাশাপাশি এর বাউন্ডিং বাক্সের আকার এবং অবস্থান পরিবর্তন হয়, কিন্তু এর ঘূর্ণন পরিবর্তন হয় না। setRotation() ব্যবহার করে রেখার বাউন্ডিং বাক্সটি ঘোরানো হয়, যা কার্যকরভাবে এর উল্লম্ব কোণ পরিবর্তন করে। তাই দুটি রেখার একই দৃশ্যমান উল্লম্ব কোণ থাকতে পারে, তবে বিভিন্ন বাউন্ডিং বাক্স থাকতে পারে এবং তাই আকার, অবস্থান এবং ঘূর্ণনের মান ভিন্ন হতে পারে।
সীমাবদ্ধতা
কিছু সাইজিং এবং পজিশনিং পদ্ধতি কিছু ধরণের পৃষ্ঠা উপাদানের সাথে সামঞ্জস্যপূর্ণ নয়। নিম্নলিখিত সারণীতে সেই পদ্ধতিগুলির সারসংক্ষেপ দেওয়া হয়েছে যা নির্দিষ্ট ধরণের পৃষ্ঠা উপাদানের সাথে সামঞ্জস্যপূর্ণ নয়।
| পদ্ধতি | আকৃতি | ভিডিও | টেবিল |
|---|---|---|---|
| উচ্চতা (), প্রস্থ () | ✔ | ✔ | না (শূন্য ফেরত দেয়) |
| সেটউচ্চতা(), সেটপ্রস্থ() | ✔ | ✔ | না |
| সেটরোটেশন() | ✔ | না | না |
| স্কেলউচ্চতা(), স্কেলপ্রস্থ() | ✔ | ✔ | না |
পৃষ্ঠার উপাদানে শিয়ারিং থাকলে সমস্ত আকার এবং অবস্থান নির্ধারণের পদ্ধতি অপ্রত্যাশিত ফলাফল দিতে পারে। সমস্ত সীমাবদ্ধতা পরিবর্তন সাপেক্ষে। হালনাগাদ তথ্যের জন্য রেফারেন্স পরীক্ষা করুন।
অ্যাফাইন ট্রান্সফর্ম ব্যবহার করুন
উন্নত নিয়ন্ত্রণের জন্য, একটি পৃষ্ঠা উপাদানের আকার এবং অবস্থান তার সহজাত (নেটিভ) আকার এবং অ্যাফাইন ট্রান্সফর্মের মাধ্যমেও গণনা এবং সমন্বয় করা যেতে পারে।
অ্যাফাইন ট্রান্সফর্ম ব্যবহারের জন্য গুগল অ্যাপস স্ক্রিপ্ট গুগল স্লাইডস এপিআই-এর মতো একটি ইন্টারফেস প্রদান করে।
- বৈশিষ্ট্যগুলি পড়ার জন্য, আপনি একটি অ্যাফাইন ট্রান্সফর্ম ব্যবহার করতে পারেন, যা বর্ণনা করে যে কীভাবে একটি উপাদানকে স্কেল করা, ঘোরানো, শিয়ার করা এবং অবস্থান নির্ধারণ করা হয়। একটি স্লাইডে একটি উপাদানের রূপান্তর এবং অন্তর্নিহিত (নেটিভ) আকার ব্যবহার করে এর ভিজ্যুয়াল আকার গণনা করতে শিখতে, Transforms দেখুন। Apps Script-এ, ব্যবহার করুন:
- পৃষ্ঠা উপাদানের অন্তর্নিহিত (নেটিভ) আকারের জন্য
getInherentWidth()এবংgetInherentHeight(); - পৃষ্ঠার উপাদানগুলির অ্যাফাইন রূপান্তরের জন্য
getTransform()।
- পৃষ্ঠা উপাদানের অন্তর্নিহিত (নেটিভ) আকারের জন্য
- বৈশিষ্ট্য পরিবর্তন করতে, আপনি স্কেলিং, ঘূর্ণন, প্রতিফলন এবং আরও অনেক কিছু করার জন্য অ্যাফাইন ট্রান্সফর্ম ব্যবহার করতে পারেন। অ্যাফাইন ট্রান্সফর্ম ব্যবহার করে পৃষ্ঠার উপাদানগুলির আকার এবং অবস্থান কীভাবে নির্ধারণ করবেন তা শিখতে, সাইজিং এবং পজিশনিং দেখুন। অ্যাপস স্ক্রিপ্টে, ব্যবহার করুন:
-
setTransform()পৃষ্ঠা উপাদানের অ্যাফাইন রূপান্তর সেট করতে (ABSOLUTE মোডের অনুরূপ); -
preconcatenateTransform()ব্যবহার করে একটি affine ট্রান্সফর্মকে পৃষ্ঠা উপাদানের বর্তমান ট্রান্সফর্মের সাথে প্রি-কনক্যাটেনেট করা যায় (RELATIVE মোডের অনুরূপ)।
-
নিম্নলিখিত স্ক্রিপ্টটি একটি আকৃতি তৈরি করে, এর রূপান্তর সেট করে, এর অন্তর্নিহিত আকার পড়ে এবং এর অ্যাফাইন রূপান্তর পড়ে।
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setTransform(SlidesApp.newAffineTransformBuilder()
.setScaleX(2)
.setScaleY(1)
.setTranslateX(100)
.setTranslateY(200)
.build());
Logger.log('Inherent width: ' + shape.getInherentWidth()
+ 'pt; Inherent height: '
+ shape.getInherentHeight() + 'pt.');
প্রত্যাশিত লগ আউটপুট হল:
Inherent width: 236.2pt; Inherent height: 236.2pt.
ফলস্বরূপ আকৃতিতে নিম্নলিখিত রূপান্তর, রেন্ডার করা আকার এবং অবস্থান রয়েছে:
AffineTransform{scaleX=2.0, scaleY=1.0, shearX=0.0, shearY=0.0, translateX=100.0, translateY=200.0}
Left: 100pt; Top: 200pt; Width: 472.4pt; Height: 236.2pt; Rotation: 0°.