이 가이드에서는 Google Slides API를 사용하여 어파인 변환으로 페이지 요소의 크기를 조정하고 배치하는 방법을 설명합니다. 어파인 변환에 대한 개념적 소개는 변환 및 페이지 요소 개념 가이드를 참고하세요.
요소 변환
Slides API를 사용하면 페이지에서 요소의 위치를 변경하고 크기를 조정할 수 있습니다. 이렇게 하려면 먼저 적용해야 하는 변환 유형을 결정한 후
하나 이상의
UpdatePageElementTransformRequest
요소가 포함된
presentations.batchUpdate()
메서드를 사용하여 변환을 적용합니다.
변환은 an
ApplyMode를 사용하여 수행할 수 있습니다.
ABSOLUTE변환은 요소의 기존 변환 매트릭스를 대체 합니다. 변환 업데이트 요청에서 생략하는 매개변수는 0으로 설정됩니다.RELATIVE변환은 요소의 기존 변환 매트릭스와 곱해집니다 (곱셈 순서가 중요함).
상대 변환은 페이지 요소를 현재 위치에서 이동하거나 크기를 조정합니다. 예를 들어 도형을 왼쪽으로 100포인트 이동하거나 40도 회전합니다. 절대 변환은 기존 위치 및 크기 조정 정보를 삭제합니다. 예를 들어 도형을 페이지 중앙으로 이동하거나 특정 너비로 크기를 조정합니다.
복잡한 변환은 일반적으로 더 간단한 변환의 시퀀스로 표현할 수 있습니다. 변환을 미리 계산하면(매트릭스 곱셈을 사용하여 여러 변환 결합) 오버헤드를 줄일 수 있는 경우가 많습니다.
일부 작업의 경우 요소의 기존 변환 매개변수를 알아야 합니다. 이러한 값이 없는 경우
presentations.pages.get()
메서드를 사용하여 값을 검색할 수 있습니다.
변환
변환은 페이지 요소를 동일한 페이지의 새 위치로 이동하는 작업입니다. 절대 변환은 요소를 특정 지점으로 이동하는 반면 상대 변환은 요소를 특정 거리만큼 이동합니다.
기본 변환 변환 매트릭스의 형식은 다음과 같습니다.
요소의 크기, 기울이기 또는 방향을 변경하지 않고 요소를 변환하기 위해
UpdatePageElementTransformRequest
를 사용하는 경우 다음
AffineTransform
구조 중 하나를 사용할 수 있습니다.
// Absolute translation: { 'transform': { 'scaleX': current scaleX value, 'scaleY': current scaleY value, 'shearX': current shearX value, 'shearY': current shearY value, 'translateX': X coordinate to move to, 'translateY': Y coordinate to move to, 'unit': 'EMU' // or 'PT' } } // Relative translation (scaling must also be provided to avoid a matrix multiplication error): { 'transform': { 'scaleX': 1, 'scaleY': 1, 'translateX': X coordinate to move by, 'translateY': Y coordinate to move by, 'unit': 'EMU' // or 'PT' } }
크기 조정
크기 조정은 X 또는 Y 차원을 따라 요소를 늘리거나 압축하여 크기를 변경하는 작업입니다. 기본 크기 조정 변환 매트릭스의 형식은 다음과 같습니다.
이 매트릭스 형식을 RELATIVE 변환으로 직접 사용하여 요소의 크기를 조정할 수 있지만 요소의 렌더링된 기울이기 및 변환에도 영향을 줄 수 있습니다.
기울이기 또는 변환에 영향을 주지 않고 요소의 크기를 조정하려면 요소 참조 프레임으로
전환합니다.
회전
회전 변환은 크기 조정 및 기울이기 매개변수를 사용하여 점을 중심으로 페이지 요소를 회전합니다. 기본 회전 변환 매트릭스의 형식은 다음과 같습니다. 여기서 회전 각도 (라디안)는 X축에서 시계 반대 방향으로 측정됩니다.
크기 조정과 마찬가지로 이 매트릭스 형식을 RELATIVE 변환으로 직접 사용하여 요소를 회전할 수 있지만 이렇게 하면 요소가 페이지의 원점을 중심으로 회전합니다. 요소를 중심 또는 다른 점을 중심으로 회전하려면,
해당 요소 참조
프레임으로 전환합니다.
반사
반사는 특정 선 또는 축을 기준으로 요소를 미러링합니다. 기본 x축 및 y축 반사 변환 매트릭스의 형식은 다음과 같습니다.
크기 조정과 마찬가지로 이 매트릭스 형식을 RELATIVE 변환으로 직접 사용하여 요소를 반영할 수 있지만 이렇게 하면 요소도 변환됩니다. 변환 없이 요소를 반영하려면 요소 참조
프레임으로 전환합니다.
요소 참조 프레임
기본 크기 조정, 회전 또는 반사 변환을 페이지 요소에 직접 적용하면 페이지의 참조 프레임에서 변환이 생성됩니다. 예를 들어 기본 회전은 페이지의 원점 (왼쪽 상단 모서리)을 중심으로 요소를 회전합니다. 하지만 요소의 참조 프레임에서 작동할 수 있습니다. 예를 들어 중심점을 중심으로 요소를 회전할 수 있습니다.
자체 참조 프레임 내에서 요소를 변환하려면 요소를 두 개의 다른 변환 사이에 묶습니다. 요소 중심을 페이지 원점으로 이동하는 이전 변환 T1과 요소를 원래 위치로 다시 이동하는 다음 변환 T2입니다. 전체 작업은 매트릭스 곱셈으로 표현할 수 있습니다.
대신 다른 점을 원점으로 변환하여 다른 참조 프레임으로 전환할 수도 있습니다. 이러한 점은 새 참조 프레임의 중심이 됩니다.
이러한 각 변환을 순차적 RELATIVE 변환 요청으로 개별적으로 실행할 수 있습니다. 이상적으로는 매트릭스 곱셈으로 위의 A'
를 미리 계산하고 결과를 단일 ABSOLUTE
변환으로 적용해야 합니다. 또는 T2 * B * T1 곱을 미리 계산하고 이를 단일 RELATIVE 변환으로 적용합니다. 이 두 가지 모두 변환 요청을 개별적으로 전송하는 것보다 API 작업 측면에서 더 효율적입니다.
제한사항
일부 크기 조정 및 배치 필드는 일부 유형의 페이지 요소와 호환되지 않습니다. 다음 표에서는 특정 페이지 요소와 크기 조정 및 배치 필드의 호환성을 요약합니다.
| 필드 | 도형 | 동영상 | 표 |
|---|---|---|---|
| 변환 | ✔ | ✔ | ✔ |
| 크기 조정 | ✔ | ✔ | 아니요** |
| 기울이기 | ✔ | 아니요 | 아니요 |
표 행 및 열 크기를 업데이트하려면
UpdateTableRowPropertiesRequest
및
UpdateTableColumnPropertiesRequest를 사용합니다.
페이지 요소에 기울이기가 있는 경우 모든 크기 조정 및 배치 필드에서 예기치 않은 결과가 발생할 수 있습니다. 모든 제한사항은 변경될 수 있습니다. 최신 정보는 Google Slides API를 참고하세요.
리팩터링된 값
페이지 요소를 만들 때 특정 시각적 결과를 제공하는 크기와 변환을 지정할 수 있습니다. 하지만 Slides API는 제공된 값을 동일한 시각적 모양을 생성하는 다른 값으로 대체할 수 있습니다. 일반적으로 API를 사용하여 크기를 작성하는 경우 동일한 크기가 반환된다고 보장할 수는 없습니다. 하지만 변환을 고려하면 동일한 결과를 얻을 수 있습니다.