पेज एलिमेंट का साइज़ बदलना और पोज़िशन करना

आप दो अलग-अलग तरीकों से इमेज का साइज़ और पोज़िशन बदल सकते हैं पेज एलिमेंट:

  1. साइज़ और पोज़िशन के लिए, इसके गैटर और सेटर फ़ंक्शन का इस्तेमाल किया जाता है.
  2. इसके अफ़ाइन ट्रांसफ़ॉर्म में हेर-फेर करना. ऐसा करने के लिए, इसके getTransform() और setTransform() फ़ंक्शन का इस्तेमाल किया जाता है. साथ ही, पहले से मौजूद साइज़ को बरकरार रखा जाता है.

पेज एलिमेंट की प्रॉपर्टी की जानकारी पढ़ना

घड़ी का आकार बदलना और घुमाना

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

  • बाएं और ऊपर: पेज के ऊपरी बाएं कोने से लेकर बिना घुमाए बाउंडिंग बॉक्स के ऊपरी बायां कोना. इसके लिए, getLeft() और getTop() का इस्तेमाल करें मान पढ़ें.
  • चौड़ाई और ऊंचाई: बिना घुमाए गए बाउंडिंग बॉक्स की चौड़ाई और ऊंचाई. वैल्यू पढ़ने के लिए, getWidth() और getHeight() का इस्तेमाल करें.
  • घूर्णन: आसपास की वर्टिकल रेखा के संबंध में घड़ी की सुई की दिशा में घुमाना बाउंडिंग बॉक्स के बीच में. वैल्यू पढ़ने के लिए getRotation() का इस्तेमाल करें.

सभी लंबाई पॉइंट (pt) में मापी जाती हैं. घुमाव को डिग्री में मापा जाता है (°).

पेज एलिमेंट प्रॉपर्टी सेट करना

पेज एलिमेंट का साइज़ और पोज़िशन सेट करने के लिए, डालने का तरीका, जैसे कि insertShape(). किसी मौजूदा आकार के लिए, आप इसे सेट कर सकते हैं साइज़, पोज़िशन, और रोटेशन; तो एलिमेंट की स्केलिंग को साइज़ बदलने या उसे इसके किसी एक किनारे से प्रतिबिंबित करने के लिए.

बनाए जाने के दौरान

पेज एलिमेंट बनाते समय, पोज़िशन और साइज़ की जानकारी दी जा सकती है.

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);

नीचे दिया गया चित्र दर्शाता है कि ऊपर दिया गया कोड 45°-घुमाए गए वर्ग आकार पर कैसे काम करता है. ध्यान दें कि स्केलिंग के दौरान बाउंडिंग बॉक्स का ऊपरी बायां कोना तय है.

स्लाइड स्केलिंग

किनारे पर दिखती परछाई

scaleWidth() और scaleHeight() में तर्क नकारात्मक हो सकता है, ताकि वे का इस्तेमाल किसी पेज एलिमेंट को हॉरिज़ॉन्टल या वर्टिकल तौर पर फ़्लिप करने के लिए किया जा सकता है.

shape.scaleWidth(-1); // Flip horizontally along the left edge of the bounding box.
shape.scaleHeight(-1); // Flip vertically along the top edge of the bounding box.

नीचे दिए गए डायग्राम में दिखाया गया है कि 45° घुमाए गए आकार पर ऊपर दिया गया कोड कैसे काम करता है. ध्यान दें कि पेज एलिमेंट को बाउंडिंग बॉक्स के किसी एक किनारे पर फ़्लिप किया गया हो, लेकिन उसके बीच में.

Slides में मौजूद रिफ़्लेक्शन

लाइन का रोटेशन

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

सीमाएं

साइज़ और पोज़िशन तय करने के कुछ तरीके, कुछ तरह के पेज के साथ काम नहीं करते एलिमेंट. यहां दी गई टेबल में उन तरीकों के बारे में बताया गया है जो Android 14 के साथ काम नहीं करते खास तरह के पेज एलिमेंट.

तरीके आकार वीडियो तालिका
getHeight(), getWidth() नहीं (शून्य दिखाता है)
setHeight(), setWidth() नहीं
setRotation() नहीं नहीं
scaleHeight(), scaleWidth() नहीं

साइज़ और पोज़िशन तय करने के सभी तरीकों से ऐसे नतीजे मिल सकते हैं जिनकी उम्मीद नहीं थी. ऐसा तब होगा, जब एलिमेंट में अपरूपता होती है. सभी सीमाएं बदल सकती हैं. इसके लिए रेफ़रंस देखें अप-टू-डेट जानकारी.

अफ़िनिटी ट्रांसफ़ॉर्म की सुविधा का इस्तेमाल करना

बेहतर कंट्रोल के लिए, पेज एलिमेंट का साइज़ और पोज़िशन, इसमें मौजूद (नेटिव) साइज़ और अफ़ीन ट्रांसफ़ॉर्म के हिसाब से कैलकुलेट और अडजस्ट किया जा सकता है.

Google Apps Script, Google Slides API के तौर पर अफ़ाइन ट्रांसफ़ॉर्म की सुविधा का इस्तेमाल करने के लिए मिलता-जुलता इंटरफ़ेस उपलब्ध कराता है.

  • पढ़ने के लिए, यह लेख में बताया गया है अफ़िनिटी ट्रांसफ़ॉर्म के कॉन्सेप्ट और पहले से मौजूद कॉन्टेंट से रेंडर किए गए साइज़ का पता लगाने का तरीका (नेटिव) साइज़ और पेज एलिमेंट के लिए ट्रांसफ़ॉर्म की सुविधा. Apps Script में, इसका इस्तेमाल करें
    • पेज के मूल आकार के लिए getInherentWidth() और getInherentHeight() एलिमेंट;
    • पेज एलिमेंट के अफ़ाइन ट्रांसफ़ॉर्म के लिए getTransform().
  • लिखने के लिए, यह लेख में बताया गया है अफ़ाइन ट्रांसफ़ॉर्म की मदद से पेज एलिमेंट का साइज़ और उन्हें पोज़िशन कैसे करें स्केलिंग, रोटेशन, रिफ़्लेक्शन वगैरह. Apps Script में, इसका इस्तेमाल करें
    • पेज एलिमेंट के अफ़ाइन ट्रांसफ़ॉर्म (इससे मिलता-जुलता है) को सेट करने के लिए setTransform() AVERAGE मोड);
    • इससे पहले के मुकाबले, preconcatenateTransform() पेज एलिमेंट का मौजूदा ट्रांसफ़ॉर्म (रिलेटिव मोड से मिलता-जुलता).

नीचे दी गई स्क्रिप्ट एक आकार बनाती है, उसका ट्रांसफ़ॉर्म सेट करती है, और उसके अंदर मौजूद साइज़ को पढ़ती है, और इसके संबद्ध ट्रांसफ़ॉर्म को पढ़ता है.

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°.