Viết cơ bản

API Google Trang trình bày cho phép bạn thêm và sửa đổi các thành phần trên trang trình bày. Các ví dụ trên trang này cho biết cách thực hiện các thao tác đọc phổ biến bằng phương thức presentations.batchUpdate.

Những ví dụ này sử dụng các biến sau:

  • PRESENTATION_ID – Cho biết vị trí bạn cung cấp mã nhận dạng bản trình bày. Bạn có thể khám phá giá trị của mã nhận dạng này từ URL của bản trình bày.
  • PAGE_ID – Cho biết vị trí bạn cung cấp mã đối tượng trang. Bạn có thể truy xuất giá trị cho URL này từ URL hoặc bằng cách sử dụng yêu cầu đọc API.
  • PAGE_ELEMENT_ID – Cho biết vị trí bạn cung cấp mã đối tượng phần tử trang. Bạn có thể chỉ định mã nhận dạng này cho các thành phần bạn tạo (với một số hạn chế) hoặc cho phép API Trang trình bày tự động tạo. Bạn có thể truy xuất mã nhận dạng phần tử thông qua yêu cầu đọc API.

Các ví dụ này được trình bày dưới dạng yêu cầu HTTP để không phân biệt ngôn ngữ. Để tìm hiểu cách triển khai bản cập nhật hàng loạt bằng nhiều ngôn ngữ bằng cách sử dụng thư viện ứng dụng API của Google, hãy xem phần Thêm hình dạng và văn bản.

Thêm hộp văn bản vào trang trình bày

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức CreateShapeRequest để thêm một hộp văn bản mới (chứa chuỗi "My Added Text Box" (Hộp văn bản đã thêm của tôi)) vào một trang trình bày do PAGE_ID chỉ định. Hai yêu cầu được chỉ định trong phần nội dung yêu cầu – một yêu cầu để tạo hình dạng hộp văn bản (với kích thước và vị trí nhất định) và yêu cầu thứ hai để chèn văn bản vào hộp văn bản đó.

Yêu cầu đầu tiên chỉ định mã nhận dạng đối tượng để sử dụng cho hộp văn bản. Điều này cho phép yêu cầu thứ hai sử dụng trong cùng một lệnh gọi API, giảm thiểu hao tổn.

Sau đây là giao thức yêu cầu thêm hộp văn bản vào trang trình bày:

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

Thêm hình ảnh vào trang trình bày

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức CreateImageRequest để thêm hình ảnh vào một trang trình bày do PAGE_ID chỉ định. API truy xuất hình ảnh bằng IMAGE_URL. Yêu cầu này cũng điều chỉnh tỷ lệ và vị trí của hình ảnh trong trang trình bày.

Sau đây là giao thức yêu cầu để thêm hình ảnh vào một trang trình bày:

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"
          }
        }
      }
    }
  ]
}

Xoá trang hoặc phần tử trang

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức DeleteObjectRequest để xoá phần tử trang do PAGE_ELEMENT_ID chỉ định và trang trình bày do PAGE_ID chỉ định bằng hai yêu cầu riêng biệt.

Sau đây là giao thức yêu cầu để xoá một trang hoặc phần tử trang:

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

Chỉnh sửa văn bản trong một hình dạng đã chỉ định

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức DeleteTextRequest để thay thế một phần văn bản có trong hình dạng do PAGE_ELEMENT_ID chỉ định. Để thực hiện việc này, trước tiên, hãy xoá văn bản bằng startIndex dựa trên số 0, sau đó chèn văn bản mới vào vị trí đó. Trong ví dụ này, chuỗi văn bản gốc "My Shape Text: ????" (Văn bản hình dạng của tôi: ????) được thay thế bằng "My Shape Text: Trapezoid" (Văn bản hình dạng của tôi: Hình thang).

Yêu cầu này chỉ ảnh hưởng đến văn bản có hình dạng được chỉ định. Để thay thế văn bản ở mọi nơi trong bản trình bày, hãy sử dụng phương thức ReplaceAllTextRequest.

Sau đây là giao thức yêu cầu chỉnh sửa văn bản có hình dạng được chỉ định:

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

Thay thế thẻ hình dạng bằng hình ảnh

Thẻ là hộp văn bản hoặc hình dạng có tên chuỗi duy nhất, chẳng hạn như "tên-chủ-tài-khoản".

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức CreateImageRequest để thay thế một thực thể của thẻ hình dạng bằng một hình ảnh, duy trì cùng một vị trí và điều chỉnh tỷ lệ để vừa với kích thước của thẻ trong khi vẫn giữ nguyên tỷ lệ khung hình của hình ảnh.

Bạn cũng có thể dùng yêu cầu này để thay thế một hình ảnh bằng một hình ảnh khác. Yêu cầu này bao gồm việc thêm hình ảnh mới rồi xoá thẻ.

Phương thức CreateImageRequest chỉ thay thế một hình dạng đã chỉ định. Để thay thế hình dạng thẻ ở mọi nơi trong bản trình bày, hãy sử dụng phương thức ReplaceAllShapesWithImageRequest.

Thẻ hình dạng có các thuộc tính PageElement sau đây (có thể tìm thấy bằng yêu cầu 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"
  }
}

Hình dạng nằm trên trang trình bày do PAGE_ID chỉ định. Để chỉ định hình ảnh thay thế hình dạng, API sẽ truy xuất hình ảnh bằng IMAGE_URL. Để giữ nguyên tỷ lệ khung hình hình ảnh trong khi giới hạn tỷ lệ khung hình đó vào kích thước của thẻ, phương thức CreateImageRequest sẽ đặt cả kích thước hình ảnh thành tích của kích thước và tỷ lệ thẻ, cũng như các hệ số tỷ lệ hình ảnh thành 1. Để biết thêm thông tin, hãy xem phần Duy trì tỷ lệ khung hình.

Sau đây là giao thức yêu cầu để thay thế thẻ hình dạng bằng hình ảnh:

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