Operacje na elementach

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

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

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

Te przykłady są prezentowane jako żądania HTTP bez względu na język. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu API Google, zapoznaj się z tymi przewodnikami:

Dodawanie listy punktowanej do pola tekstowego

Z przykładowego kodu presentations.batchUpdate dowiesz się, jak użyć metody InsertTextRequest do wstawienia tekstu w pustym polu tekstowym określonym przez PAGE_ELEMENT_ID. W przykładzie następnie korzysta się z metody CreateParagraphBulletsRequest, aby przekonwertować cały tekst pola tekstowego na listę punktowaną. Pozycje na liście są rozdzielone znakami \n, a wcięcie określa wcięcie \t znaków.

Oto protokół żądań tworzenia 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 spowodować utworzenie listy punktowanej w następujący sposób:

Wynik przepisu w postaci listy punktowanej.

Dodawanie kształtu do slajdu

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody CreateShapeRequest dodać kształt fali do slajdu określonego przez PAGE_ID. To żądanie określa typ kształtu, a następnie skaluje i ustawia kształt na slajdzie. Następnie dodaje tekst do kształtu za pomocą metody InsertTextRequest. Żądanie ustawia identyfikator linii na PAGE_ELEMENT_ID.

Oto protokół żądań dodawania 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

Poniższy przykładowy kod presentations.batchUpdate 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 jego identyfikator na PAGE_ELEMENT_ID. Unikalny identyfikator filmu źródłowego jest ustawiony na VIDEO_ID. Na przykład film w 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

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody DuplicateObjectRequest przyjąć istniejący kształt (określony przez PAGE_ELEMENT_ID) i utworzyć jego kopię (określoną przez zasadę COPY_ELEMENT_ID).

Kolejne żądania wprowadzają te zmiany do zduplikowanego obiektu:

  • Ustawia kolor tła na kolor motywu LIGHT2.
  • Przenosi kopię w dół strony (z pozycji oryginalnego kształtu).
  • Ustawia czcionkę tekstu na 18 punktów – Georgia.
  • Zmienia tekst tak, aby brzmiał „Kopia mojego kształtu”.

Żądania w tym miejscu korzystają z masek pól, aby zachować właściwości kształtu, które nie zostały zmienione (np. styl konturu). Użycie masek pola również zwiększa wydajność.

Więcej informacji na temat kopiowania slajdu znajdziesz w przykładzie Kopiowanie slajdu.

Protokół żądania do skopiowania i edytowania elementu wygląda tak:

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 kształt i jego kopia mogą wyglądać po aktualizacji:

Skopiuj i zmodyfikuj wynik przepisu dotyczący elementu.

Edytowanie konspektu obrazu lub filmu

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody UpdateImagePropertiesRequest zaktualizować kontur obrazu określonego przez IMAGE_ELEMENT_ID. Wykorzystuje również metodę UpdateVideoPropertiesRequest do aktualizowania konspektu umieszczonego filmu określonego przez VIDEO_ELEMENT_ID.

Te żą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 wagę konspektu na 3 punkty w przypadku obu opcji.
  • Ustawia styl konspektu obrazu na SOLID.
  • Ustawia styl konspektu filmu na DASH_DOT.

Zarówno metoda UpdateImagePropertiesRequest, jak i UpdateVideoPropertiesRequest mogą zmieniać tylko wygląd obramowań obrazów i filmów. Pozostałe właściwości są tylko do odczytu. W tych żądaniach używane są maski pól, które określają, że w celu ochrony kodu przed przyszłymi zmianami interfejsu API należy zmienić tylko jego konspekt. Użycie masek terenowych również zwiększa wydajność.

Protokół żądania umożliwiający edytowanie konspektu 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 po aktualizacji mogą wyglądać obraz i umieszczony film:

W wyniku wyszukiwania
przepisów na konspekty obrazów i filmów.

Edytowanie obrysu kształtu

Ten przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody UpdateShapePropertiesRequest przyjąć istniejący kształt (określony przez PAGE_ELEMENT_ID) i zaktualizować jego konspekt.

Te żądania wprowadzają te zmiany w obiekcie:

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

W żądaniach przedstawionych w tym miejscu maski pola służą do zachowywania właściwości kształtu, które nie zmieniają się (np. koloru wypełnienia kształtu). Użycie masek pola również zwiększa wydajność.

Protokół żądań do edytowania konspektu kształtu znajduje się poniżej:

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 aktualizacji:

Edytuj wynik przepisu konspektu.

Formatowanie tekstu w kształcie lub polu tekstowym

Ten przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody UpdateTextStyleRequest przyjąć istniejący kształt (określony przez PAGE_ELEMENT_ID) i zaktualizować wygląd tekstu.

Te żądania wprowadzają te zmiany w obiekcie:

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

W żądaniach przedstawionych tutaj maski pola pozwalają zachować właściwości stylu tekstu, które się nie zmieniają (takie jak kolor tła, linki czy odsunięcia punktu odniesienia). Użycie masek pól również zwiększa wydajność.

Poniżej znajduje się protokół żądania do 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 wprowadzeniu aktualizacji:

Edytuj wynik przepisu w formacie tekstowym.

Importowanie wykresu z Arkuszy Google

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody CreateSheetsChartRequest do zaimportowania wykresu z arkusza i umieszczenia go na slajdzie określonym przez właściwość PAGE_ID.

Żądanie wymaga identyfikatora arkusza kalkulacyjnego (określonego za pomocą atrybutu SPREADSHEET_ID) oraz identyfikatora wykresu arkusza kalkulacyjnego (określonego przez właściwość SPREADSHEET_CHART_ID). Identyfikator wykresu w prezentacji w Prezentacjach jest określany przez PRESENTATION_CHART_ID.

Taka prośba ustawia też wartość LinkingMode wykresu Prezentacji na LINKED, aby umożliwić Ci zaktualizowanie osadzonego wykresu, gdy wykres w źródłowym arkuszu kalkulacyjnym zostanie zaktualizowany.

Poniżej znajdziesz protokół żądań 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 w Arkuszach

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody RefreshSheetsChartRequest odświeżyć połączony wykres w prezentacji, zastępując go najnowszą wersją tego wykresu ze źródłowego arkusza kalkulacyjnego Arkuszy. Żądanie wymaga identyfikatora wykresu w Prezentacjach (określonego w zasadzie PRESENTATION_CHART_ID).

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

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