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

Những ví dụ này được trình bày dưới dạng yêu cầu HTTP để trung lập về 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 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 hộp văn bản mới (chứa chuỗi "Hộp văn bản đã thêm của tôi") vào trang trình bày do PAGE_ID chỉ định. 2 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à thứ hai để chèn văn bản vào đó.

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

Sau đây là giao thức yêu cầu để thêm một hộp văn bản vào một 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 trang trình bày do PAGE_ID chỉ định. API truy xuất hình ảnh bằng cách sử dụng IMAGE_URL. Yêu cầu này cũng điều chỉnh tỷ lệ và xác định 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 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 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 thông qua 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 theo hình dạng được 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 cách sử dụng startIndex dựa trên giá trị 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 "Văn bản hình dạng của tôi: ?", được thay thế bằng "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 ở hình dạng được chỉ định. Để thay thế văn bản ở mọi nơi trong một 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 theo 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à các hộp văn bản hoặc hình dạng có tên chuỗi riêng biệ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 bản sao của thẻ hình dạng bằng hình ảnh, duy trì cùng một vị trí và điều chỉnh tỷ lệ cho 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.

Yêu cầu cũng có thể được dùng để thay thế một hình ảnh bằng một hình ảnh khác. Yêu cầu 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 được 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ể được 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ày 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 cách sử dụng IMAGE_URL. Để duy trì tỷ lệ khung hình của hình ảnh trong khi giới hạn tỷ lệ đó ở 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ư 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
      }
    }
  ]
}