기본 쓰기

Google Slides API를 사용하면 프레젠테이션 페이지에 요소를 추가하고 수정할 수 있습니다. 이 페이지의 예시에서는 presentations.batchUpdate 메서드를 사용하여 일반적인 읽기 작업을 실행하는 방법을 보여줍니다.

이 예에서는 다음 변수를 사용합니다.

  • PRESENTATION_ID - 프레젠테이션 ID를 제공하는 위치를 나타냅니다. 이 ID의 값은 프레젠테이션 URL에서 찾을 수 있습니다.
  • PAGE_ID: 페이지 객체 ID를 제공하는 위치를 나타냅니다. 이 값은 URL에서 가져오거나 API 읽기 요청을 사용하여 가져올 수 있습니다.
  • PAGE_ELEMENT_ID - 페이지 요소 객체 ID를 제공하는 위치를 나타냅니다. 생성하는 요소에 이 ID를 지정하거나 (일부 제한사항 적용) Slides API에서 자동으로 ID를 생성하도록 허용할 수 있습니다. 요소 ID는 API 읽기 요청을 통해 검색할 수 있습니다.

이 예는 언어 중립을 위해 HTTP 요청으로 제공됩니다. Google API 클라이언트 라이브러리를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법은 도형 및 텍스트 추가를 참고하세요.

슬라이드에 텍스트 상자 추가하기

다음 presentations.batchUpdate 코드 샘플은 CreateShapeRequest 메서드를 사용하여 PAGE_ID로 지정된 슬라이드에 새 텍스트 상자('내가 추가한 텍스트 상자' 문자열 포함)를 추가하는 방법을 보여줍니다. 요청 본문에 두 개의 요청이 지정되어 있습니다. 하나는 (지정된 크기와 위치로) 텍스트 상자 모양을 만들고 다른 하나는 텍스트를 삽입하는 요청입니다.

첫 번째 요청은 텍스트 상자에 사용할 객체 ID를 지정합니다. 이렇게 하면 두 번째 요청이 동일한 API 호출에서 이를 사용할 수 있으므로 오버헤드가 줄어듭니다.

다음은 슬라이드에 텍스트 상자를 추가하는 요청 프로토콜입니다.

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

슬라이드에 이미지 추가

다음 presentations.batchUpdate 코드 샘플은 CreateImageRequest 메서드를 사용하여 PAGE_ID에서 지정한 슬라이드에 이미지를 추가하는 방법을 보여줍니다. API는 IMAGE_URL를 사용하여 이미지를 가져옵니다. 이 요청은 또한 슬라이드에서 이미지의 크기를 조정하고 배치합니다.

다음은 슬라이드에 이미지를 추가하는 요청 프로토콜입니다.

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

페이지 또는 페이지 요소 삭제

다음 presentations.batchUpdate 코드 샘플은 DeleteObjectRequest 메서드를 사용하여 PAGE_ELEMENT_ID로 지정된 페이지 요소와 PAGE_ID로 지정된 슬라이드를 별도의 두 요청을 사용하여 삭제하는 방법을 보여줍니다.

다음은 페이지 또는 페이지 요소를 삭제하는 요청 프로토콜입니다.

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

지정된 도형에서 텍스트 수정

다음 presentations.batchUpdate 코드 샘플은 DeleteTextRequest 메서드를 사용하여 PAGE_ELEMENT_ID로 지정된 도형에 있는 텍스트의 일부를 바꾸는 방법을 보여줍니다. 이렇게 하려면 먼저 0부터 시작하는 startIndex를 사용하여 텍스트를 삭제한 다음 해당 위치에 새 텍스트를 삽입합니다. 이 예시에서는 원본 텍스트 문자열인 'My Shape Text: ????'가 'My Shape Text: Trapezoid'로 대체됩니다.

이 요청은 지정된 도형의 텍스트에만 영향을 미칩니다. 프레젠테이션 내의 모든 곳에서 텍스트를 바꾸려면 ReplaceAllTextRequest 메서드를 사용합니다.

다음은 지정된 도형에서 텍스트를 수정하는 요청 프로토콜입니다.

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": PAGE_ELEMENT_ID,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

도형 태그를 이미지로 바꾸기

태그는 'account-owner-name'과 같이 고유한 문자열 이름을 갖는 텍스트 상자나 도형입니다.

다음 presentations.batchUpdate 코드 샘플은 CreateImageRequest 메서드를 사용하여 도형 태그의 단일 인스턴스를 이미지로 대체하고, 동일한 위치를 유지하고, 이미지의 가로세로 비율을 유지하면서 태그의 크기에 맞게 조정하는 방법을 보여줍니다.

이 요청을 사용하여 한 이미지를 다른 이미지로 바꿀 수도 있습니다. 요청은 새 이미지를 추가한 후 태그를 삭제하는 단계로 구성됩니다.

CreateImageRequest 메서드는 지정된 도형만 바꿉니다. 프레젠테이션 내의 모든 위치에서 태그 도형을 바꾸려면 ReplaceAllShapesWithImageRequest 메서드를 사용합니다.

도형 태그에는 다음과 같은 PageElement 속성이 있습니다 (presentations.pages.get 요청을 사용하여 찾을 수 있음).

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

도형은 PAGE_ID로 지정된 슬라이드에 있습니다. 도형을 대체하는 이미지를 지정하기 위해 API는 IMAGE_URL를 사용하여 이미지를 가져옵니다. 이미지의 가로세로 비율을 태그 크기로 제한하면서 이미지의 가로세로 비율을 유지하기 위해 CreateImageRequest 메서드는 이미지 크기를 태그 크기와 배율의 곱으로 설정하고 이미지 배율 비율을 1로 설정합니다. 자세한 내용은 가로세로 비율 유지를 참고하세요.

다음은 도형 태그를 이미지로 대체하는 요청 프로토콜입니다.

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      }
    }
  ]
}