기본 쓰기

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

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

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

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

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

다음 presentations.batchUpdate 코드 샘플은 CreateShapeRequest 메서드를 사용하여 PAGE_ID로 지정된 슬라이드에 새 텍스트 상자('My Added Text Box' 문자열 포함)를 추가하는 방법을 보여줍니다. 요청 본문에는 두 가지 요청이 지정됩니다. 하나는 지정된 크기와 위치로 텍스트 상자 도형을 만드는 요청이고, 다른 하나는 텍스트 상자에 텍스트를 삽입하는 요청입니다.

첫 번째 요청은 텍스트 상자에 사용할 객체 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-holder-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
      }
    }
  ]
}