Operacje na elementach

Interfejs Google Slides API umożliwia tworzenie i edytowanie zasobu PageElement , w tym pól tekstowych, obrazów, tabel, kształtów podstawowych, linii i umieszczonych filmów. Przykłady na tej stronie pokazują niektóre typowe operacje na elementach strony wykonywane za pomocą presentations.batchUpdate metody.

W tych przykładach używane są te zmienne:

  • PRESENTATION_ID – wskazuje miejsce, w którym podajesz identyfikator prezentacji. Wartość tego identyfikatora możesz pobrać z adresu URL prezentacji.
  • PAGE_ID – wskazuje miejsce, w którym podajesz identyfikator obiektu strony. Wartość tego identyfikatora możesz pobrać z adresu URL lub za pomocą żądania odczytu interfejsu API.
  • PAGE_ELEMENT_ID – wskazuje miejsce, w którym podajesz identyfikator obiektu elementu strony page. Możesz określić ten identyfikator dla tworzonych elementów (z pewnymi ograniczeniami) lub pozwolić interfejsowi Slides API na automatyczne utworzenie identyfikatora. Identyfikatory elementów można pobrać za pomocą żądania odczytu interfejsu API.

Te przykłady są przedstawione jako żądania HTTP, aby były niezależne od języka. Aby dowiedzieć się, jak zaimplementować aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu Google API, zapoznaj się z tymi przewodnikami:

Dodawanie listy punktowanej do pola tekstowego

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody InsertTextRequest , aby wstawić tekst do pustego pola tekstowego określonego przez PAGE_ELEMENT_ID. Następnie przykład używa CreateParagraphBulletsRequest metody, aby przekształcić cały tekst w polu tekstowym w listę punktowaną. Elementy na liście są oddzielone znakami \n, a wcięcia są kontrolowane za pomocą znaków \t.

Oto protokół żądania utworzenia prezentacji:

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

To żądanie może utworzyć listę punktowaną, która wygląda tak:

Przykładowy wynik listy punktowanej

Dodawanie kształtu do slajdu

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody CreateShapeRequest , aby dodać kształt fali do slajdu określonego przez PAGE_ID. To żądanie określa typ kształtu, a następnie skaluje i umieszcza kształt na slajdzie. Następnie używa metody InsertTextRequest , aby dodać tekst do tego kształtu. Żądanie ustawia identyfikator linii na PAGE_ELEMENT_ID.

Oto protokół żądania dodania kształtu do slajdu:

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

Dodawanie filmu do slajdu

Ten przykładowy presentations.batchUpdate kod pokazuje, jak użyć metody CreateVideoRequest , aby umieścić film na slajdzie określonym przez PAGE_ID. To żądanie skaluje i umieszcza film na slajdzie oraz ustawia identyfikator filmu na PAGE_ELEMENT_ID. Unikalny identyfikator filmu źródłowego jest ustawiony na VIDEO_ID. Na przykład film na YouTube pod adresem https://www.youtube.com/watch?v=7U3axjORYZ0 ma identyfikator 7U3axjORYZ0.

Oto protokół żądania dodania filmu do slajdu:

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

Kopiowanie i edytowanie elementu

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody DuplicateObjectRequest , aby utworzyć kopię istniejącego kształtu (określonego przez PAGE_ELEMENT_ID) i utworzyć kopię (określoną przez COPY_ELEMENT_ID).

Kolejne żądania wprowadzają te zmiany w zduplikowanym obiekcie:

  • Ustawia kolor tła na kolor motywu LIGHT2.
  • Przesuwa kopię w dół strony (z pozycji oryginalnego kształtu).
  • Ustawia czcionkę tekstu na 18-punktową Georgia.
  • Edytuje tekst, aby brzmiał „Kopia mojego kształtu”.

Żądania używają masek pól, aby zachować właściwości kształtu, które nie są zmieniane (np. styl konturu). Używanie masek pól zwiększa też wydajność.

Więcej informacji o kopiowaniu slajdu znajdziesz w przykładzie Kopiowanie slajdu.

Oto protokół żądania skopiowania i edytowania elementu:

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

Oto jak może wyglądać kształt i jego kopia po tych aktualizacjach:

Skopiuj i edytuj przykładowy wynik elementu.

Edytowanie konturu obrazu lub filmu

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody UpdateImagePropertiesRequest , aby zaktualizować wygląd konturu obrazu określonego przez IMAGE_ELEMENT_ID. Używa też metody UpdateVideoPropertiesRequest , aby zaktualizować wygląd konturu umieszczonego filmu określonego przez VIDEO_ELEMENT_ID.

Żądania wprowadzają te zmiany w obiekcie:

  • Ustawia kolor konturu obrazu na kolor motywu ACCENT5 z częściową przezroczystością.
  • Ustawia kolor konturu filmu na kolor motywu ACCENT1 bez przezroczystości.
  • Ustawia grubość konturu na 3 punkty w obu przypadkach.
  • Ustawia styl konturu obrazu na SOLID.
  • Ustawia styl konspektu filmu na DASH_DOT.

Zarówno metoda UpdateImagePropertiesRequest, jak i UpdateVideoPropertiesRequest mogą zmieniać tylko wygląd konturów obrazów i filmów. Wszystkie inne właściwości są tylko do odczytu. Żądania używają masek pól, aby określić, że należy zmienić tylko kontur , aby chronić kod przed przyszłymi zmianami w interfejsie API. Używanie masek pól zwiększa też wydajność.

Oto protokół żądania edytowania konturu obrazu lub filmu:

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

Oto jak może wyglądać obraz i umieszczony film po tych aktualizacjach:

Przykładowy wynik z konturem obrazu i filmu.

Edytowanie konturu kształtu

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody UpdateShapePropertiesRequest , aby pobrać istniejący kształt (określony przez PAGE_ELEMENT_ID) i zaktualizować wygląd jego konturu.

Żądania wprowadzają te zmiany w obiekcie:

  • Ustawia kolor konturu na kolor motywu ACCENT5 z częściową przezroczystością.
  • Ustawia grubość konturu na 3 punkty.
  • Ustawia styl konturu na LONG_DASH.

Żądania używają masek pól, aby zachować właściwości kształtu, które nie są zmieniane (np. kolor wypełnienia kształtu). Używanie masek pól zwiększa też wydajność.

Oto protokół żądania edytowania konturu kształtu:

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

Oto jak może wyglądać kształt po tych aktualizacjach:

Edytuj przykładowy wynik konspektu.

Formatowanie tekstu w kształcie lub polu tekstowym

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody UpdateTextStyleRequest , aby pobrać istniejący kształt (określony przez PAGE_ELEMENT_ID) i zaktualizować wygląd jego tekstu.

Żądania wprowadzają te zmiany w obiekcie:

  • Ustawia kolor tekstu na kolor motywu ACCENT5.
  • Ustawia czcionkę na pogrubioną, kursywę 18-punktową Corsiva.
  • Podkreśla tekst.

Żądania używają masek pól, aby zachować właściwości stylu tekstu, które nie są zmieniane (np. kolor tła, linki lub przesunięcia linii bazowej). Używanie masek pól zwiększa też wydajność.

Oto protokół żądania formatowania tekstu w kształcie lub polu tekstowym:

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

Oto jak może wyglądać tekst kształtu po tych aktualizacjach:

Edytuj próbkę formatu tekstu
wynik.

Importowanie wykresu z Arkuszy Google

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody CreateSheetsChartRequest , aby zaimportować wykres z arkusza i umieścić go na slajdzie określonym przez PAGE_ID.

Żądanie wymaga identyfikatora arkusza kalkulacyjnego (określonego przez the SPREADSHEET_ID) i identyfikatora wykresu arkusza kalkulacyjnego (określonego przez the SPREADSHEET_CHART_ID). Identyfikator wykresu w the prezentacji Prezentacji jest określony przez the PRESENTATION_CHART_ID.

Żądanie ustawia też LinkingMode wykresu Prezentacji na LINKED, aby można było zaktualizować umieszczony wykres, jeśli wykres w arkuszu źródłowym zostanie zaktualizowany.

Oto protokół żądania importowania wykresu z Arkuszy:

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

Odświeżanie wykresu z Arkuszy

Ten przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody RefreshSheetsChartRequest , aby odświeżyć połączony wykres w prezentacji, zastępując go najnowszą wersją tego wykresu z arkusza źródłowego. Żądanie wymaga identyfikatora wykresu w prezentacji Prezentacji (określonego przez PRESENTATION_CHART_ID).

Oto protokół żądania odświeżenia wykresu z Arkuszy:

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