Toán tử phần tử

API Google Trang trình bày cho phép bạn tạo và chỉnh sửa tài nguyên PageElement, bao gồm các hộp văn bản, hình ảnh, bảng, hình dạng cơ bản, đường kẻ và video được nhúng. Các ví dụ trên trang này cho thấy một số thao tác phổ biến đối với phần tử trang 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ể truy xuất 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 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 một 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 những hướng dẫn sau:

Thêm danh sách có dấu đầu dòng vào hộp văn bản

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức InsertTextRequest để chèn văn bản vào hộp văn bản trống do PAGE_ELEMENT_ID chỉ định. Sau đó, mẫu sẽ dùng phương thức CreateParagraphBulletsRequest để chuyển đổi tất cả văn bản trong hộp văn bản thành danh sách có dấu đầu dòng. Các mục trong danh sách được phân tách bằng ký tự \n, trong khi thụt lề được kiểm soát bằng \t ký tự.

Sau đây là giao thức yêu cầu để tạo bản trình bày:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My List\n\tItem 1\n\t\tItem 2\n\t\t\tItem 3",
        "insertionIndex": 0
      },
      "createParagraphBullets": {
        "objectId": PAGE_ELEMENT_ID,
        "bulletPreset": "BULLET_ARROW_DIAMOND_DISC",
        "textRange": {
          "type": "ALL"
        }
      }
    }
  ]
}

Yêu cầu này có thể tạo một danh sách có dấu đầu dòng như sau:

Kết quả về công thức nấu ăn dạng danh sách có dấu đầu dòng.

Thêm hình dạng 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ình dạng sóng vào trang trình bày do PAGE_ID chỉ định. Yêu cầu này chỉ định loại hình dạng, sau đó điều chỉnh theo tỷ lệ và định vị hình dạng trong trang trình bày. Sau đó, hàm này dùng phương thức InsertTextRequest để thêm văn bản vào hình dạng đó. Yêu cầu này sẽ đặt mã nhận dạng của dòng thành PAGE_ELEMENT_ID.

Sau đây là giao thức yêu cầu để thêm hình dạng 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,
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 0.6807,
            "scaleY": 0.4585,
            "translateX": 6583050,
            "translateY": 1673950,
            "unit": "EMU"
          }
        },
        "shapeType": "WAVE"
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Wave Shape",
        "insertionIndex": 0
      }
    }
  ]
}

Thêm video 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 CreateVideoRequest để nhúng video vào trang trình bày do PAGE_ID chỉ định. Yêu cầu này sẽ điều chỉnh theo tỷ lệ và xác định vị trí của video trong trang trình bày, đồng thời đặt mã nhận dạng của video thành PAGE_ELEMENT_ID. Giá trị nhận dạng duy nhất của video nguồn được đặt thành VIDEO_ID. Ví dụ: Video trên YouTube tại https://www.youtube.com/watch?v=7U3axjORYZ0 có mã nhận dạng 7U3axjORYZ0.

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

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createVideo": {
        "objectId": PAGE_ELEMENT_ID,
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 12000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 9000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 381,
            "scaleY": 381,
            "translateX": 152400,
            "translateY": 152400,
            "unit": "EMU"
          }
        },
        "source": "YOUTUBE",
        "id": VIDEO_ID
      }
    }
  ]
}

Sao chép và chỉnh sửa một phần tử

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức DuplicateObjectRequest để lấy hình dạng hiện có (do PAGE_ELEMENT_ID chỉ định) và tạo bản sao (do COPY_ELEMENT_ID chỉ định).

Sau đó, các yêu cầu tiếp theo thực hiện các thay đổi sau cho đối tượng trùng lặp:

  • Đặt màu nền thành màu giao diện LIGHT2.
  • Di chuyển bản sao xuống dưới trang (từ vị trí của hình dạng ban đầu).
  • Đặt phông chữ văn bản thành Georgia 18-pt.
  • Chỉnh sửa văn bản thành "Bản sao hình dạng của tôi".

Các yêu cầu ở đây sử dụng mặt nạ trường để giữ nguyên các thuộc tính hình dạng không thay đổi (chẳng hạn như kiểu đường viền). Việc sử dụng mặt nạ trường cũng giúp cải thiện hiệu suất.

Để biết thêm thông tin về cách sao chép trang trình bày, hãy xem mẫu Sao chép trang trình bày.

Sau đây là giao thức yêu cầu để sao chép và chỉnh sửa một phần tử:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "duplicateObject": {
        "objectId": PAGE_ELEMENT_ID,
        "objectIds": {
          PAGE_ELEMENT_ID: COPY_ELEMENT_ID
        }
      }
    },
    {
      "updateShapeProperties": {
        "objectId": COPY_ELEMENT_ID,
        "fields": "shapeBackgroundFill.solidFill.color",
        "shapeProperties": {
          "shapeBackgroundFill": {
            "solidFill": {
              "color": {
                "themeColor": "LIGHT2"
              }
            }
          }
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": COPY_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
          "scaleX": 1,
          "scaleY": 1,
          "translateX": 0,
          "translateY": 1250000,
          "unit": "EMU"
        }
      }
    },
    {
      "updateTextStyle": {
        "objectId": COPY_ELEMENT_ID,
        "fields": "fontFamily,fontSize",
        "textRange": {
          "type": "ALL"
        },
        "style": {
          "fontFamily": "Georgia",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteText": {
        "objectId": COPY_ELEMENT_ID,
        "textRange": {
          "type": "ALL"
        }
      }
    },
    {
      "insertText": {
        "objectId": COPY_ELEMENT_ID,
        "text": "My Shape Copy",
        "insertionIndex": 0
      }
    }
  ]
}

Sau đây là ví dụ về giao diện của hình dạng và bản sao của hình dạng đó sau những lần cập nhật này:

Sao chép và chỉnh sửa kết quả tìm kiếm công thức nấu một nguyên tố.

Chỉnh sửa hình ảnh hoặc đường viền video

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức UpdateImagePropertiesRequest để cập nhật giao diện đường viền của hình ảnh do IMAGE_ELEMENT_ID chỉ định. Thao tác này cũng sử dụng phương thức UpdateVideoPropertiesRequest để cập nhật giao diện phác thảo của video nhúng do VIDEO_ELEMENT_ID chỉ định.

Các yêu cầu này thực hiện các thay đổi sau đối với đối tượng:

  • Đặt màu đường viền hình ảnh thành màu giao diện ACCENT5 có độ trong suốt một phần.
  • Đặt màu đường viền video thành màu giao diện ACCENT1 không có độ trong suốt.
  • Đặt trọng số phác thảo thành 3-pt cho cả hai.
  • Đặt kiểu đường viền hình ảnh thành SOLID.
  • Đặt kiểu bố cục video thành DASH_DOT.

Cả phương thức UpdateImagePropertiesRequest và phương thức UpdateVideoPropertiesRequest đều chỉ có thể thay đổi giao diện của đường viền hình ảnh và video. Tất cả các thuộc tính khác đều ở chế độ chỉ có thể đọc. Các yêu cầu ở đây sử dụng mặt nạ trường để chỉ định rằng bạn chỉ nên thay đổi đường viền để bảo vệ mã khỏi các thay đổi về API trong tương lai. Việc sử dụng mặt nạ tại hiện trường cũng giúp cải thiện hiệu suất.

Sau đây là giao thức yêu cầu để chỉnh sửa đường viền của một hình ảnh hoặc video:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateImageProperties": {
        "objectId": IMAGE_ELEMENT_ID,
        "fields": "outline",
        "imageProperties": {
          "outline": {
            "dashStyle": "SOLID",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.8,
                "color": {
                  "themeColor": "ACCENT5"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    },
    {
      "updateVideoProperties": {
        "objectId": VIDEO_ELEMENT_ID,
        "fields": "outline",
        "videoProperties": {
          "outline": {
            "dashStyle": "DASH_DOT",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.8,
                "color": {
                  "themeColor": "ACCENT1"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    }
  ]
}

Dưới đây là giao diện của hình ảnh và video được nhúng sau những cập nhật này:

Kết quả về công thức nấu ăn đường viền ở dạng hình ảnh và video.

Chỉnh sửa đường viền của hình dạng

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức UpdateShapePropertiesRequest để tạo hình dạng hiện có (do PAGE_ELEMENT_ID chỉ định) và cập nhật giao diện của đường viền.

Các yêu cầu này thực hiện các thay đổi sau đối với đối tượng:

  • Đặt màu đường viền thành màu giao diện ACCENT5 có độ trong suốt một phần.
  • Đặt độ đậm viền thành 3 pt.
  • Đặt kiểu đường viền thành LONG_DASH.

Các yêu cầu ở đây sử dụng mặt nạ trường để giữ nguyên các thuộc tính hình dạng không thay đổi (chẳng hạn như màu nền). Việc sử dụng mặt nạ trường cũng giúp cải thiện hiệu suất.

Dưới đây là giao thức yêu cầu để chỉnh sửa đường viền của hình:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateShapeProperties": {
        "objectId": PAGE_ELEMENT_ID,
        "fields": "outline",
        "shapeProperties": {
          "outline": {
            "dashStyle": "LONG_DASH",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.6,
                "color": {
                  "themeColor": "ACCENT5"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    }
  ]
}

Sau đây là ví dụ về một hình dạng sau những lần cập nhật này:

Chỉnh sửa kết quả về công thức nấu ăn đường viền.

Định dạng văn bản trong một hình dạng hoặc hộp văn bản

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức UpdateTextStyleRequest để lấy hình dạng hiện có (do PAGE_ELEMENT_ID chỉ định) và cập nhật giao diện văn bản của văn bản đó.

Các yêu cầu này thực hiện các thay đổi sau đối với đối tượng:

  • Đặt màu văn bản thành màu giao diện ACCENT5.
  • Đặt phông chữ thành chữ đậm, nghiêng 18-pt kiểu Corsiva.
  • Gạch dưới văn bản.

Các yêu cầu ở đây sử dụng mặt nạ trường để giữ nguyên các thuộc tính kiểu văn bản không bị thay đổi (chẳng hạn như màu nền, đường liên kết hoặc độ lệch đường cơ sở). Việc sử dụng mặt nạ cho trường (field mask) cũng giúp cải thiện hiệu suất.

Sau đây là giao thức yêu cầu để định dạng văn bản ở dạng hình dạng hoặc hộp văn bản:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateTextStyle": {
        "objectId": PAGE_ELEMENT_ID,
        "fields": "foregroundColor,bold,italic,fontFamily,fontSize,underline",
        "style": {
          "foregroundColor": {
            "opaqueColor": {
              "themeColor": "ACCENT5"
            }
          },
          "bold": true,
          "italic": true,
          "underline": true,
          "fontFamily": "Corsiva",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        },
        "textRange": {
          "type": "ALL"
        }
      }
    }
  ]
}

Sau đây là giao diện của văn bản có hình dạng sau những cập nhật này:

Chỉnh sửa kết quả công thức định dạng văn bản.

Nhập biểu đồ từ Google Trang tính

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức CreateSheetsChartRequest để nhập biểu đồ từ một trang tính và đặt biểu đồ đó vào trang trình bày do PAGE_ID chỉ định.

Yêu cầu này cần có mã nhận dạng bảng tính (do SPREADSHEET_ID chỉ định) và mã biểu đồ bảng tính (do SPREADSHEET_CHART_ID chỉ định). Mã biểu đồ trong bản trình bày trên Trang trình bày do PRESENTATION_CHART_ID chỉ định.

Yêu cầu này cũng đặt LinkingMode của biểu đồ Trang trình bày thành LINKED để bạn có thể cập nhật biểu đồ được nhúng nếu biểu đồ trên bảng tính nguồn được cập nhật.

Sau đây là giao thức yêu cầu để nhập một biểu đồ từ Trang tính:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createSheetsChart": {
        "objectId": PRESENTATION_CHART_ID,
        "spreadsheetId": SPREADSHEET_ID,
        "chartId": SPREADSHEET_CHART_ID,
        "linkingMode": "LINKED",
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 4000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 4000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 100000,
            "translateY": 100000,
            "unit": "EMU"
          }
      }
    }
  ]
}

Làm mới biểu đồ từ Trang tính

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức RefreshSheetsChartRequest để làm mới biểu đồ được liên kết trong bản trình bày, thay thế biểu đồ đó bằng phiên bản mới nhất của biểu đồ đó từ bảng tính nguồn trên Trang tính. Yêu cầu này cần có mã biểu đồ trong bản trình bày Trang trình bày (do PRESENTATION_CHART_ID chỉ định).

Sau đây là giao thức yêu cầu để làm mới một biểu đồ từ Trang tính:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "refreshSheetsChart": {
        "objectId": PRESENTATION_CHART_ID
      }
    }
  ]
}