다음 두 가지 방법으로 광고의 크기와 위치를 가져와 변경할 수 있습니다. 페이지 요소:
- 크기 및 위치에 getter 함수와 setter 함수를 사용합니다.
- 고유한 크기를 유지하면서
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°.