페이지 요소 크기 및 배치

다음 두 가지 방법으로 광고의 크기와 위치를 가져와 변경할 수 있습니다. 페이지 요소:

  1. 크기 및 위치에 getter 함수와 setter 함수를 사용합니다.
  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()를 사용하여 경계 상자 주위로 시계 방향으로 회전을 설정합니다. 센터를 방문하세요.

다음 스크립트는 활성 프레젠테이션의 첫 번째 슬라이드에 도형을 만듭니다. setter를 사용하여 위치, 크기, 회전을 업데이트하고 위치를 읽습니다. 도형의 크기 정보를 알 수 있습니다.

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

크기, 위치 및 회전 setter는 순서나 조합에 관계없이 사용할 수 있습니다. 위의 세 번째 줄을 다음 스크립트로 바꾸면 동일한 결과가 생성됩니다.

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° 회전된 도형에서 작동하는 방식을 보여줍니다. 참고: 페이지 요소가 경계 상자의 가장자리 중 하나를 따라 뒤집히지 않은 경우 있습니다.

슬라이드 복습

선 회전

다른 페이지 요소와 마찬가지로 선의 회전은 페이지의 수직각과 경계 상자의 회전입니다. 선행 학습된 BERT 모델에서 지정한 시작점과 끝점이 지정된 경우 회전은 항상 0°입니다. 드래그 Google Slides UI에서 선의 끝점이 세로 각도도 변경됩니다. 크기와 위치를 사용하지만 변경되지는 않습니다. 볼 수 있습니다. setRotation()를 사용하면 선의 경계 상자가 회전합니다. 효과적으로 수직 각도를 변경할 수 있습니다. 따라서 두 줄이 시각적 수직 각도는 동일하지만 경계 상자도 다르기 때문에 크기, 위치, 회전 값이 다를 수 있습니다.

제한사항

일부 크기 및 위치 지정 방법이 일부 페이지 유형과 호환되지 않습니다. 요소 아래 표에는 특정 유형의 페이지 요소를 가져올 수 있습니다

메서드 도형 동영상
getHeight(), getWidth() NO (null을 반환함)
setHeight(), setWidth() 아니요
setRotation() 아니요 아니요
scaleHeight(), scaleWidth() 아니요

페이지가 요소에 기울기가 있습니다. 모든 제한사항은 변경될 수 있습니다. 다음에 대한 참조 확인 최신 정보.

아핀 변환 사용

고급 제어의 경우 페이지 요소의 크기와 위치도 아핀 변환을 통해 계산 및 조정됩니다.

Google Apps Script는 Google Slides API로 affine 변환을 사용하기 위한 유사한 인터페이스를 제공합니다.

  • 읽으려면 문서에서 아핀 변환의 개념과 내재된 모델로부터 렌더링된 크기를 추론하는 방법을 (네이티브) 크기 및 변환을 지정합니다. Apps Script에서 <ph type="x-smartling-placeholder">
      </ph>
    • 페이지의 네이티브 크기에 대한 getInherentWidth()getInherentHeight() 요소
    • getTransform(): 페이지 요소의 아핀 변환
  • 쓰려면 문서에서 아핀 변환을 사용하여 페이지 요소의 크기 및 위치를 지정하여 크기 조정, 회전, 반사 등입니다. Apps Script에서는 <ph type="x-smartling-placeholder">
      </ph>
    • setTransform(): 페이지 요소의 아핀 변환을 설정합니다( 절대 모드).
    • preconcatenateTransform()를 사용하여 아핀 변환을 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°.