기본 쓰기

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 메서드를 사용하여 새 텍스트 상자('My추가된 텍스트 상자' 문자열 포함)를 PAGE_ID에서 지정한 슬라이드에 추가하는 방법을 보여줍니다. 요청 본문에 두 개의 요청이 지정됩니다. 하나는 지정된 크기와 위치로 텍스트 상자 도형을 만드는 요청이고, 다른 하나는 그 안에 텍스트를 삽입하는 요청입니다.

첫 번째 요청은 텍스트 상자에 사용할 객체 ID를 지정합니다. 이렇게 하면 두 번째 요청에서 이 API를 동일한 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
      }
    }
  ]
}

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

태그는 고유한 문자열 이름이 있는 텍스트 상자 또는 도형입니다(예: '계정 소유자 이름').

다음 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
      }
    }
  ]
}