Operaciones con diapositivas

La API de Presentaciones de Google te permite crear, mover y borrar diapositivas. En los ejemplos de esta página, se muestran algunas operaciones comunes de diapositivas con el método presentations.batchUpdate.

En estos ejemplos, se usan las siguientes variables:

  • PRESENTATION_ID: Indica dónde proporcionas el ID de presentación. Puedes descubrir el valor de este ID desde la URL de presentación.
  • PAGE_ID y PAGE_ID2: Indican dónde proporcionas los IDs de objeto de página. Puedes recuperar el valor para esto desde la URL o mediante una solicitud de lectura a la API.

Estos ejemplos se presentan como solicitudes HTTP para que tengan lenguaje neutro. Para aprender a implementar una actualización por lotes en diferentes lenguajes con las bibliotecas cliente de la API de Google, consulta las siguientes guías: Cómo crear una diapositiva y Cómo agregar formas y texto.

Copiar una diapositiva

En la siguiente muestra de código presentations.batchUpdate, se indica cómo usar el método DuplicateObjectRequest para copiar una diapositiva y, luego, insertarla después del original en la presentación. La diapositiva original está especificada por PAGE_ID.

La solicitud te permite especificar si algunos o todos los ID de elementos de página deben estar en la copia (con algunas restricciones). En este ejemplo, la diapositiva original contiene un elemento de tabla (especificado por TABLE_ELEMENT_ID), que se asigna a una tabla nueva (especificada por el COPY_TABLE_ELEMENT_ID) en la copia de la diapositiva (especificada por el COPY_PAGE_ID). Todos los demás elementos de la copia reciben ID aleatorios.

Para obtener más información sobre cómo copiar un objeto PageElement, incluidos los cuadros de texto, las imágenes, las tablas, las formas básicas, las líneas y los videos incorporados, consulta el ejemplo Cómo copiar y editar un elemento.

El siguiente es el protocolo de solicitud para copiar una diapositiva:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "duplicateObject": {
        "objectId": PAGE_ID,
        "objectIds": {
          "PAGE_ID": "COPY_PAGE_ID",
          "TABLE_ELEMENT_ID": "COPY_TABLE_ELEMENT_ID"
        }
      }
    }
  ]
}

Crear una diapositiva

En la siguiente muestra de código de presentations.batchUpdate, se indica cómo usar el método CreateSlideRequest para crear una diapositiva y, luego, insertarla como la cuarta diapositiva (con el insertionIndex basado en cero) en la presentación.

La diapositiva nueva está configurada para usar PredefinedLayout de TITLE_AND_TWO_COLUMNS. Puedes especificar una string para usar como la PAGE_ID de la diapositiva (con algunas restricciones) o permitir que la API genere el PAGE_ID si omites el campo en la solicitud.

El siguiente es el protocolo de solicitud para crear una diapositiva:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createSlide": {
        "objectId": "PAGE_ID",
        "insertionIndex": 3,
        "slideLayoutReference": {
          "predefinedLayout": "TITLE_AND_TWO_COLUMNS"
        }
      }
    }
  ]
}

Cómo crear una diapositiva y modificar los marcadores de posición

En la siguiente muestra de código de presentations.batchUpdate, se indica cómo usar el método CreateSlideRequest para crear una diapositiva con PredefinedLayout de TITLE_AND_TWO_COLUMNS.

Puedes especificar una cadena para usar como PAGE_ID de la diapositiva (con algunas restricciones). El placeholderIdMappings usa el Type de TITLE. El elemento TITLE_ID hace referencia a la forma del marcador de posición de la diapositiva para que se pueda modificar.

El siguiente es el protocolo de solicitud para crear una diapositiva y modificar los marcadores de posición:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createSlide": {
        "objectId": PAGE_ID,
        "slideLayoutReference": {
          "predefinedLayout": "TITLE_AND_TWO_COLUMNS"
        },
        "placeholderIdMappings": [
          {
            "layoutPlaceholder": {
              "type": "TITLE",
              "index": 0
            },
            "objectId": TITLE_ID,
           },
        ],
      }
    },
    {
      "insertText": {
        "objectId": TITLE_ID,
        "text": "This is my slide title",
      }
    },
  ]
}

Mover diapositivas a una nueva posición

En la siguiente muestra de código de presentations.batchUpdate, se indica cómo usar el método UpdateSlidesPositionRequest para tomar las dos diapositivas especificadas y moverlas al comienzo de la presentación, manteniendo su orden relativo.

Los IDs de diapositiva especificados (PAGE_ID y PAGE_ID2) deben proporcionarse en el orden de presentación existente, sin duplicados. El insertionIndex basado en cero denota dónde se deben insertar las diapositivas, según el orden previo al movimiento. El valor debe estar entre cero y la cantidad de diapositivas de la presentación inclusive.

El siguiente es el protocolo de solicitud para mover diapositivas a una nueva posición:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateSlidesPosition": {
        "slideObjectIds": [
          PAGE_ID,
          PAGE_ID2
          ],
        "insertionIndex": 0
      }
    }
  ]
}

Establecer una imagen de fondo para la diapositiva

En la siguiente muestra de código de presentations.batchUpdate, se indica cómo usar el método UpdatePagePropertiesRequest para establecer la imagen de fondo de una diapositiva especificada por PAGE_ID. La API recupera la imagen con el IMAGE_URL.

Se usa una máscara de campo para especificar que solo se debe cambiar el fondo de la diapositiva a fin de conservar las demás propiedades. El uso de máscaras de campo también mejora el rendimiento.

Como alternativa, se puede usar un método UpdatePagePropertiesRequest para establecer el fondo de una diapositiva en un color sólido.

El siguiente es el protocolo de solicitud para establecer una imagen de fondo de diapositiva:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updatePageProperties": {
        "objectId": PAGE_ID,
        "pageProperties": {
          "pageBackgroundFill": {
            "stretchedPictureFill": {
              "contentUrl": IMAGE_URL
            }
          }
        },
        "fields": "pageBackgroundFill"
      }
    }
  ]
}