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 bản trình bày. Ví dụ trên trang này cho thấy 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ị cho 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 phần tử 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ã 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 nhằm đảm bảo trung lập về ngôn ngữ. Để tìm hiểu cách triển khai việc cập nhật theo lô ở 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 một 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 một trang trình bày do PAGE_ID chỉ định. Hai yêu cầu được chỉ định trong 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 đó.

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úp giảm mức 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 một 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à định vị 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 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 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 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: ?" sẽ đượ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 có 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 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à các 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ư "account-holder-name".

Mã mẫu presentations.batchUpdate sau đây cho thấy cách sử dụng phương thức CreateImageRequest để thay thế một thực thể duy nhất 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 theo tỷ lệ cho phù hợp 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 để 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 (bạn có thể tìm thấy các thuộc tính này bằng cách sử dụ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 sẽ 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 vẫn 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ẻ lẫn 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
      }
    }
  ]
}