기본 쓰기

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

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

  • PRESENTATION_ID: 프레젠테이션 ID를 제공하는 위치를 나타냅니다. 프레젠테이션 URL에서 이 ID의 값을 확인할 수 있습니다.
  • PAGE_ID: 페이지 객체 ID를 제공하는 위치를 나타냅니다. URL에서 또는 API 읽기 요청을 사용하여 이 값을 가져올 수 있습니다.
  • PAGE_ELEMENT_ID: 페이지 요소 객체 ID를 제공하는 위치를 나타냅니다. 만드는 요소에 이 ID를 지정하거나 (일부 제한사항 있음) Slides API가 자동으로 만들도록 허용할 수 있습니다. 요소 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
      }
    }
  ]
}