Operazioni elemento

L'API Presentazioni Google consente di creare e modificare una risorsa di PageElement, tra cui caselle di testo, immagini, tabelle, forme di base, linee e video incorporati. Gli esempi in questa pagina mostrano alcune operazioni comuni relative agli elementi di pagina utilizzando il metodo presentations.batchUpdate.

In questi esempi vengono utilizzate le seguenti variabili:

  • PRESENTATION_ID: indica dove fornisci l'ID presentazione. Puoi recuperare il valore di questo ID dall'URL della presentazione.
  • PAGE_ID: indica dove fornisci l'ID dell'oggetto pagina. Puoi recuperare il valore dall'URL o utilizzando una richiesta di lettura API.
  • PAGE_ELEMENT_ID: indica dove fornisci l'ID oggetto dell'elemento della pagina. Puoi specificare questo ID per gli elementi che crei (con alcune limitazioni) o consentire all'API Presentazioni di crearne uno automaticamente. Gli ID elemento possono essere recuperati tramite una richiesta di lettura dell'API.

Questi esempi vengono presentati come richieste HTTP per essere indipendenti dal linguaggio. Per scoprire come implementare un aggiornamento batch in diversi linguaggi utilizzando le librerie client dell'API di Google, consulta le seguenti guide:

Aggiungere un elenco puntato a una casella di testo

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo InsertTextRequest per inserire testo in una casella di testo vuota specificata da PAGE_ELEMENT_ID. L'esempio utilizza quindi il metodo CreateParagraphBulletsRequest per convertire tutto il testo della casella di testo in un elenco puntato. Gli elementi nell'elenco sono separati da \n caratteri, mentre l'inserimento è controllato da \t caratteri.

Di seguito è riportato il protocollo di richiesta per creare una presentazione:

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

Questa richiesta può creare un elenco puntato simile al seguente:

Risultato della formula con elenco puntato.

Aggiungere una forma a una slide

Il seguente esempio di codice per presentations.batchUpdate mostra come utilizzare il metodo CreateShapeRequest per aggiungere una forma d'onda a una slide specificata da PAGE_ID. Questa richiesta specifica il tipo di forma, quindi scala e posiziona la forma nella slide. Dopodiché utilizza il metodo InsertTextRequest per aggiungere testo alla forma in questione. La richiesta imposta l'ID della riga su PAGE_ELEMENT_ID.

Di seguito è riportato il protocollo di richiesta per aggiungere una forma a una 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
      }
    }
  ]
}

Aggiungere un video a una slide

Il seguente esempio di codice per presentations.batchUpdate mostra come utilizzare il metodo CreateVideoRequest per incorporare un video in una slide specificata da PAGE_ID. Questa richiesta scala e posiziona il video nella slide e imposta l'ID del video su PAGE_ELEMENT_ID. L'identificatore univoco del video di origine è impostato su VIDEO_ID. Ad esempio, il video di YouTube all'indirizzo https://www.youtube.com/watch?v=7U3axjORYZ0 ha l'ID 7U3axjORYZ0.

Di seguito è riportato il protocollo di richiesta per aggiungere un video a una 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
      }
    }
  ]
}

Copiare e modificare un elemento

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo DuplicateObjectRequest per assumere una forma esistente (specificata daPAGE_ELEMENT_ID) e creare una copia (specificata dalCOPY_ELEMENT_ID).

Le richieste successive apportano quindi le seguenti modifiche all'oggetto duplicato:

  • Imposta il colore di sfondo sul colore del tema LIGHT2.
  • Sposta la copia verso il basso nella pagina (dalla posizione della forma originale).
  • Imposta il carattere del testo su Georgia a 18 pt.
  • Modifica il testo in "My Shape Copy".

Queste richieste utilizzano le maschere di campo per preservare le proprietà della forma che non vengono modificate (come lo stile del contorno). L'utilizzo delle maschere di campo migliora anche le prestazioni.

Per ulteriori informazioni sulla copia di una slide, vedi l'esempio di Copia di una slide.

Di seguito è riportato il protocollo di richiesta per copiare e modificare un elemento:

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

Ecco il possibile aspetto di una forma e della sua copia dopo questi aggiornamenti:

Copia e modifica il risultato di una formula di elementi.

Modificare la struttura di un'immagine o di un video

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo UpdateImagePropertiesRequest per aggiornare l'aspetto del contorno di un'immagine specificata da IMAGE_ELEMENT_ID. Utilizza inoltre il metodo UpdateVideoPropertiesRequest per aggiornare l'aspetto dei contorni di un video incorporato specificato dal VIDEO_ELEMENT_ID.

Le richieste apportano le seguenti modifiche all'oggetto:

  • Imposta il colore dei contorni dell'immagine sul colore del tema ACCENT5 con trasparenza parziale.
  • Imposta il colore dei contorni del video sul colore del tema ACCENT1 senza trasparenza.
  • Imposta lo spessore del contorno su 3 pt per entrambi.
  • Imposta lo stile dei contorni dell'immagine su SOLID.
  • Imposta lo stile delle strutture del video su DASH_DOT.

Sia il metodo UpdateImagePropertiesRequest che il metodo UpdateVideoPropertiesRequest possono modificare solo l'aspetto dei contorni di immagini e video. Tutte le altre proprietà sono di sola lettura. Le richieste qui utilizzano maschere di campo per specificare che deve essere modificata solo la struttura per proteggere il codice da future modifiche all'API. L'utilizzo di maschere di campo migliora anche le prestazioni.

Di seguito è riportato il protocollo di richiesta per modificare la struttura di un'immagine o di un 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"
            }
          }
        }
      }
    }
  ]
}

Ecco come potrebbero presentarsi un'immagine e un video incorporato dopo questi aggiornamenti:

Risultato di ricette per sagome
di immagini e video.

Modificare il contorno di una forma

Il seguente esempio di codice per presentations.batchUpdate mostra come utilizzare il metodo UpdateShapePropertiesRequest per assumere una forma esistente (specificata daPAGE_ELEMENT_ID) e aggiorna l'aspetto del contorno.

Le richieste apportano le seguenti modifiche all'oggetto:

  • Imposta il colore dei contorni sul colore del tema ACCENT5 con trasparenza parziale.
  • Imposta lo spessore del contorno su 3 pt.
  • Imposta lo stile dei contorni su LONG_DASH.

Queste richieste utilizzano le maschere dei campi per preservare le proprietà della forma che non vengono modificate (come il colore di riempimento della forma). L'utilizzo delle maschere di campo migliora anche le prestazioni.

Di seguito è riportato il protocollo di richiesta per modificare il contorno di una forma:

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

Ecco come potrebbe apparire una forma dopo questi aggiornamenti:

Modifica risultato formula schema.

Formattare il testo in una forma o in una casella di testo

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo UpdateTextStyleRequest per assumere una forma esistente (specificata daPAGE_ELEMENT_ID) e aggiorna l'aspetto del testo.

Le richieste apportano le seguenti modifiche all'oggetto:

  • Imposta il colore del testo sul colore del tema ACCENT5.
  • Imposta il carattere in grassetto e corsivo con 18 pt in Corsiva.
  • Sottolinea il testo.

In questo caso, le richieste utilizzano maschere di campo per preservare le proprietà dello stile di testo che non vengono modificate (come il colore di sfondo, i link o gli offset di riferimento). L'utilizzo delle maschere dei campi migliora anche il rendimento.

Di seguito è riportato il protocollo di richiesta per formattare il testo in una forma o una casella di testo:

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

Ecco come potrebbe apparire il testo della forma dopo questi aggiornamenti:

Modifica il risultato
della formula in formato testo.

Importare un grafico da Fogli Google

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo CreateSheetsChartRequest per importare un grafico da un foglio e inserirlo in una slide specificata da PAGE_ID.

La richiesta richiede l'ID foglio di lavoro (specificato dal SPREADSHEET_ID) e l'ID grafico del foglio di lavoro (specificato dal SPREADSHEET_CHART_ID). L'ID grafico all'interno della presentazione Presentazioni è specificato dal PRESENTATION_CHART_ID.

La richiesta imposta anche LinkingMode del grafico di Presentazioni su LINKED, in modo che tu possa aggiornare il grafico incorporato se il grafico nel foglio di lavoro di origine viene aggiornato.

Di seguito è riportato il protocollo di richiesta per importare un grafico da Fogli:

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

Aggiornare un grafico da Fogli

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo RefreshSheetsChartRequest per aggiornare un grafico collegato in una presentazione, sostituendolo con l'ultima versione del grafico dal foglio di lavoro di origine di Fogli. La richiesta richiede l'ID grafico all'interno della presentazione di Presentazioni (specificato dal PRESENTATION_CHART_ID).

Di seguito è riportato il protocollo di richiesta per aggiornare un grafico da Fogli:

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