Sayfa öğelerini boyutlandırma ve konumlandırma

Reklamınızın konumunu ve konumunu değiştirmek için bir sayfa öğesidir:

  1. Boyut ve konum için alıcı ve belirleyici işlevlerini kullanma.
  2. Doğal boyutu korurken getTransform() ve setTransform() işlevlerini kullanarak afin dönüşümünü manipüle etme.

Sayfa öğesi özelliklerini okuma

Boyutlandırma ve Rotasyon

Şekilde gösterildiği gibi, boyut ve konum oluşturulan bir sayfa öğesinin sınırlama kutusu:

  • Sol ve Üst: Sayfanın sol üst köşesinden döndürmeyen sınırlayıcı kutunun sol üst köşesinde görünür. getLeft() ve getTop() özelliklerini kullanarak değerleri okumalısınız.
  • Genişlik ve Yükseklik: Döndürülmemiş sınırlama kutusunun genişliği ve yüksekliği. Değerleri okumak için getWidth() ve getHeight() öğelerini kullanın.
  • Döndürme: etrafındaki dikey çizgiye göre saat yönünde döndürme ortasını çizin. Değeri okumak için getRotation() kullanın.

Tüm uzunluklar puan (pt) cinsinden ölçülür. Döndürme derece olarak ölçülür (°).

Sayfa öğesi özelliklerini ayarlama

Bir sayfa öğesini oluştururken boyutunu ve konumunu ayarlamak için insertShape() gibi bir ekleme yöntemi. Mevcut bir şekil için boyut, konum ve rotasyon. bir öğenin ölçeklendirmesini kenarlarından biri boyunca yansıtmak için yeniden boyutlandırabilirsiniz.

Oluşturulduğunda

Bir sayfa öğesi oluştururken konum ve boyut bilgilerini sağlayabilirsiniz.

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

Yukarıdaki komut dosyası, etkin sununun ilk slaytında bir şekil oluşturuyor belirtilen konum ve boyutla çalışır, konum ve boyut bilgilerini okur şeklidir. Beklenen günlük:

Left: 100pt; Top: 200pt; Width: 300pt; Height: 60pt; Rotation: 0 degrees.

Boyut, konum ve döndürme

Bir sayfa öğesini oluşturduktan sonra boyutunu ve konumunu güncelleyebilirsiniz:

  • Reklamın sol üst köşesinin konumunu ayarlamak için setLeft() ve setTop() tuşlarını kullanın. döndürülmemiş sınırlayıcı kutusu.
  • Sınırlamanın oluşturulan genişliğini ve yüksekliğini ayarlamak için setWidth() ve setHeight() öğelerini kullanın seçin.
  • Çevresindeki sınırlayıcı kutunun saat yönünde dönüşünü ayarlamak için setRotation() işlevini kullanın yardım etmek istiyorum.

Aşağıdaki komut dosyası etkin sununun ilk slaytında bir şekil oluşturur: konumunu, boyutunu ve rotasyonunu güncellemek için belirleyicileri kullanır ve konumu okur ve şeklin boyut bilgilerini içerir.

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

Bu komut dosyasından beklenen günlük çıkışı aşağıda gösterilmiştir:

Left: 100pt; Top: 200pt; Width: 50pt; Height: 60pt; Rotation: 90°.

Boyut, konum ve rotasyon belirleyicileri herhangi bir sırada veya kombinasyonda kullanılabilir. Yukarıdaki üçüncü satırı aşağıdaki komut dosyasıyla değiştirdiğinizde aynı sonucu elde edersiniz:

shape.setWidth(55);
shape.setRotation(90).setHeight(60).setLeft(100);
shape.setWidth(50).setTop(200);

Ölçeklendirme

Şeklin boyutunu ayarlamak için yukarıdaki setWidth() ve setHeight() kullanmak yerine mutlak bir değere dönüştürülebilirse, scaleWidth() ve scaleHeight(), uzatmak veya bir sayfa öğesini göreceli ölçeklendirme faktörüyle sıkıştırmak.

shape.scaleHeight(0.5).scaleWidth(2);

Aşağıdaki şekilde, yukarıdaki kodun 45° döndürülmüş kare bir şekil üzerinde nasıl çalıştığı gösterilmektedir. Sınırlayıcı kutunun sol üst köşesinin ölçeklendirme sırasında sabit olduğuna dikkat edin.

Slaytlar Ölçeklendirme

Kenar boyunca yansıma

scaleWidth() ve scaleHeight() ifadelerindeki bağımsız değişken negatif olabilir. Böylece şunları yapabilirler: bir sayfa öğesini yatay veya dikey olarak çevirmek için kullanılır.

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.

Aşağıdaki şekilde, yukarıdaki kodun 45° döndürülmüş bir şekil üzerinde nasıl çalıştığı gösterilmektedir. Lütfen sayfa öğesi, sınırlayıcı kutusunun kenarlarından biri boyunca çevrilmiş ancak merkezi bir nokta.

Slaytlar Yansıması

Çizgi döndürme

Diğer sayfa öğelerinde olduğu gibi, bir çizginin dönüşü de çizgiyle değil, sınırlayıcı kutusunun dönüşünü dikkate alır. Şununla bir satır oluşturduğunuzda: belirtildiğinde, dönüş her zaman 0° olur. Sürükleme Google Slaytlar kullanıcı arayüzündeki çizginin uç noktaları dikey açısını da değiştiriyor sınırlayıcı kutusunun boyutu ve konumu gibi, ancak değişmeyen döndürülmesini sağlıyor. setRotation() kullanılması, çizginin sınırlayıcı kutusunu döndürür. dikey açısını etkili bir şekilde değiştiriyor. Yani iki satır aynı görsel dikey açıya, ancak farklı sınırlayıcı kutulara ve farklı boyut, konum ve rotasyon değerleri sunar.

Sınırlamalar

Bazı boyutlandırma ve konumlandırma yöntemleri bazı sayfa türleriyle uyumsuz. öğeler. Aşağıdaki tabloda her tür sayfa öğesi için geçerlidir.

Yöntemler Şekil Video Tablo
getHeight(), getWidth() HAYIR (boş değer döndürür)
setHeight(), setWidth() HAYIR
setRotation() HAYIR HAYIR
scaleHeight(), scaleWidth() HAYIR

Sayfa, tüm boyutlandırma ve yerleştirme yöntemleri için beklenmedik sonuçlar verebilir. kesmeye sahip. Tüm sınırlamalar değiştirilebilir. Referansı kontrol et: güncel bilgiler.

Afin dönüşümleri kullanma

Gelişmiş kontrol için bir sayfa öğesinin boyutu ve konumu da doğal (yerel) boyutu ve afin dönüşüm aracılığıyla hesaplanıp ayarlanır.

Google Apps Komut Dosyası, afin dönüşümü Google Slaytlar API'si ile kullanmak için benzer bir arayüz sunar.

  • Okumak için bu makale afin dönüşüm kavramları ve oluşturulan boyutun doğal boyutlardan nasıl çıkarılacağı (yerel) boyut ve dönüşüm sağlar. Apps Komut Dosyası'nda
    • Sayfanın yerel boyutu için getInherentWidth() ve getInherentHeight() öğeler;
    • Sayfa öğelerinin afin dönüşümü için getTransform().
  • Yazmak için, makalenin elde etmek için afin dönüşüm kullanarak sayfa öğelerini nasıl boyutlandıracağınızı ve konumlandıracağınızı yansıtma gibi özellikleri görebilirsiniz. Apps Komut Dosyası'nda,
    • Sayfa öğelerinin afin dönüşümünü ayarlamak için setTransform() ( MUTLAK modu);
    • preconcatenateTransform() sayfa öğelerinin mevcut dönüşümünü (RELATIVE moduna benzer)

Aşağıdaki komut dosyası bir şekil oluşturur, dönüşümünü ayarlar, doğal boyutunu okur, ve afin dönüşümünü okur.

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

Bu komut dosyasından beklenen günlük çıkışı aşağıda gösterilmiştir:

Inherent width: 236.2pt; Inherent height: 236.2pt.

Ortaya çıkan şekil, aşağıdaki dönüştürmeye, boyut ve konuma sahip olur:

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