Operasi elemen

Google Slides API memungkinkan Anda membuat dan mengedit PageElement sumber daya, termasuk kotak teks, gambar, tabel, bentuk dasar, garis, dan video tersemat. Contoh di halaman ini menunjukkan beberapa elemen halaman umum menggunakan presentations.batchUpdate .

Contoh ini menggunakan variabel berikut:

  • PRESENTATION_ID—Menunjukkan tempat Anda menyediakan presentasi ID. Anda dapat ambil nilai untuk ID ini dari URL presentasi.
  • PAGE_ID—Menunjukkan tempat Anda memberikan objek halaman ID. Anda dapat mengambil nilai untuk ini dari URL atau dengan menggunakan permintaan baca API.
  • PAGE_ELEMENT_ID—Menunjukkan tempat Anda menyediakan halaman ID objek elemen. Anda dapat menentukan ID ini untuk elemen yang Anda buat (dengan beberapa pembatasan) atau mengizinkan Slides API untuk otomatis membuatnya. ID Elemen dapat diambil melalui permintaan baca API.

Contoh ini disajikan sebagai permintaan HTTP agar tidak menggunakan bahasa yang netral. Untuk mempelajari cara mengimplementasikan update secara batch dalam berbagai bahasa menggunakan Google API library klien, lihat panduan berikut:

Menambahkan daftar berbutir ke kotak teks

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan InsertTextRequest metode untuk menyisipkan teks ke dalam kotak teks kosong yang ditetapkan oleh PAGE_ELEMENT_ID. Sampel kemudian menggunakan CreateParagraphBulletsRequest untuk mengonversi semua teks kotak teks menjadi daftar berbutir. Item dalam daftar dipisahkan oleh \n karakter, sedangkan indentasi dikontrol dengan \t karakter.

Berikut adalah protokol permintaan untuk membuat presentasi:

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

Permintaan ini dapat membuat daftar berbutir yang terlihat seperti ini:

Hasil resep daftar berbutir.

Menambahkan bentuk ke slide

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan CreateShapeRequest untuk menambahkan bentuk gelombang ke slide yang ditentukan oleh PAGE_ID. Permintaan ini menentukan jenis bentuk, lalu menskalakan dan memosisikan bentuk tersebut pada {i>slide<i}. Lalu, LLM menggunakan InsertTextRequest untuk menambahkan teks ke bentuk tersebut. Permintaan tersebut menetapkan ID jalur ke PAGE_ELEMENT_ID.

Berikut adalah protokol permintaan untuk menambahkan bentuk ke slide:

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

Menambahkan video ke slide

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan CreateVideoRequest untuk menyematkan video ke dalam slide yang ditentukan oleh PAGE_ID. Permintaan ini menskalakan dan memosisikan video di slide, serta menyetel ID ke PAGE_ELEMENT_ID. ID unik video sumber adalah ditetapkan ke VIDEO_ID. Misalnya, video YouTube di https://www.youtube.com/watch?v=7U3axjORYZ0 memiliki ID 7U3axjORYZ0.

Berikut adalah protokol permintaan untuk menambahkan video ke slide:

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

Menyalin dan mengedit elemen

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan DuplicateObjectRequest untuk mengambil bentuk yang sudah ada (ditentukan oleh PAGE_ELEMENT_ID) dan buat salinannya (ditentukan oleh COPY_ELEMENT_ID).

Permintaan berikutnya kemudian membuat perubahan berikut pada objek duplikat:

  • Menetapkan warna latar belakang ke warna tema LIGHT2.
  • Memindahkan salinan ke bawah halaman (dari posisi bentuk asal).
  • Menetapkan font teks ke Georgia 18-pt.
  • Mengedit teks agar terbaca "My Shape Copy".

Permintaan di sini menggunakan mask kolom untuk mempertahankan properti bentuk yang tidak berubah (seperti gaya garis batas). Menggunakan {i>field mask<i} juga meningkatkan kinerja.

Untuk informasi selengkapnya tentang cara menyalin slide, lihat contoh Menyalin yang ditunjukkan pada slide ini.

Berikut adalah protokol permintaan untuk menyalin dan mengedit elemen:

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

Seperti inilah bentuk dan salinannya mungkin terlihat setelah pembaruan ini:

Menyalin dan mengedit hasil urutan langkah elemen.

Mengedit struktur gambar atau video

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan UpdateImagePropertiesRequest untuk memperbarui tampilan garis batas gambar yang ditentukan oleh atribut IMAGE_ELEMENT_ID. Model ini juga menggunakan UpdateVideoPropertiesRequest untuk memperbarui tampilan garis batas video tersemat yang ditentukan oleh VIDEO_ELEMENT_ID.

Permintaan tersebut membuat perubahan berikut pada objek:

  • Menetapkan warna garis batas gambar ke warna tema ACCENT5 dengan sebagian transparansi.
  • Menyetel warna garis batas video ke warna tema ACCENT1 tanpa transparansi.
  • Menetapkan ketebalan garis batas ke 3 poin untuk keduanya.
  • Menetapkan gaya garis batas gambar ke SOLID.
  • Menyetel gaya struktur video ke DASH_DOT.

Baik metode UpdateImagePropertiesRequest maupun metode Metode UpdateVideoPropertiesRequest hanya dapat mengubah tampilan gambar dan kerangka video. Semua properti lainnya bersifat hanya baca. Permintaan di sini menggunakan field masks untuk menentukan bahwa hanya garis batas harus diubah untuk melindungi kode terhadap perubahan API di masa mendatang. Menggunakan kolom {i>mask <i}juga meningkatkan kinerja.

Berikut adalah protokol permintaan untuk mengedit struktur gambar atau 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"
            }
          }
        }
      }
    }
  ]
}

Berikut tampilan gambar dan video yang disematkan setelah pembaruan ini:

Resep struktur gambar dan video
hasil pengujian tersebut.

Mengedit struktur bentuk

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan UpdateShapePropertiesRequest untuk mengambil bentuk yang sudah ada (ditentukan oleh PAGE_ELEMENT_ID) dan memperbarui tampilan garis batasnya.

Permintaan tersebut membuat perubahan berikut pada objek:

  • Menetapkan warna garis batas ke warna tema ACCENT5 dengan sebagian transparansi.
  • Menetapkan ketebalan garis batas ke 3 poin.
  • Menetapkan gaya garis batas ke LONG_DASH.

Permintaan di sini menggunakan mask kolom untuk mempertahankan properti bentuk yang tidak berubah (seperti warna isian bentuk). Menggunakan {i>field mask<i} juga meningkatkan kinerja.

Berikut adalah protokol permintaan untuk mengedit garis luar bentuk:

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

Seperti inilah bentuk bentuk setelah pembaruan tersebut:

Edit hasil resep struktur.

Memformat teks dalam bentuk atau kotak teks

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan UpdateTextStyleRequest untuk mengambil bentuk yang sudah ada (ditentukan oleh PAGE_ELEMENT_ID) dan mengupdate tampilan teksnya.

Permintaan tersebut membuat perubahan berikut pada objek:

  • Menetapkan warna teks ke warna tema ACCENT5.
  • Menyetel font menjadi tebal, miring 18-pt Corsiva.
  • Menggarisbawahi teks.

Permintaan di sini menggunakan mask kolom untuk mempertahankan properti gaya teks yang tidak berubah (seperti warna latar belakang, tautan, atau offset dasar pengukuran). Menggunakan mask kolom juga akan meningkatkan performa.

Berikut adalah protokol permintaan untuk memformat teks dalam bentuk atau kotak teks:

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

Seperti inilah tampilan teks bentuk setelah pembaruan ini:

Edit resep format teks
hasil pengujian tersebut.

Impor diagram dari Google Spreadsheet

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan CreateSheetsChartRequest untuk mengimpor bagan dari lembar dan meletakkannya pada {i>slide<i} yang ditentukan oleh PAGE_ID.

Permintaan memerlukan ID spreadsheet (ditentukan oleh SPREADSHEET_ID) dan ID diagram spreadsheet (ditentukan oleh SPREADSHEET_CHART_ID). ID diagram dalam Presentasi Slide ditentukan oleh PRESENTATION_CHART_ID.

Permintaan tersebut juga menyetel LinkingMode diagram Slide ke LINKED sehingga Anda dapat memperbarui diagram yang disematkan jika diagram pada spreadsheet sumber diperbarui.

Berikut adalah protokol permintaan untuk mengimpor diagram dari Spreadsheet:

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

Memuat ulang diagram dari Spreadsheet

Hal berikut presentations.batchUpdate contoh kode menunjukkan cara menggunakan RefreshSheetsChartRequest untuk memuat ulang diagram tertaut dalam presentasi, menggantinya dengan yang terbaru versi diagram tersebut dari spreadsheet sumber Spreadsheet. Tujuan memerlukan ID diagram dalam presentasi Slide (ditentukan oleh PRESENTATION_CHART_ID).

Berikut adalah protokol permintaan untuk memuat ulang diagram dari Spreadsheet:

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