Temel yazma

Google Slides API ile sunu sayfalarına öğe ekleyebilir ve bu öğeleri değiştirebilirsiniz. Bu sayfadaki örneklerde, presentations.batchUpdate yöntemi kullanılarak yaygın okuma işlemlerinin nasıl gerçekleştirileceği gösterilmektedir.

Bu örneklerde aşağıdaki değişkenler kullanılmaktadır:

  • PRESENTATION_IDSunu kimliğini nerede sağladığınızı gösterir. Bu kimliğin değerini sunum URL'sinden öğrenebilirsiniz.
  • PAGE_IDSayfa nesnesi kimliğini nerede sağladığınızı gösterir. Bu değerin URL'sini alabilir veya API okuma isteği kullanarak değeri edinebilirsiniz.
  • PAGE_ELEMENT_ID: page element nesne kimliğini nerede sağladığınızı gösterir. Oluşturduğunuz öğeler için bu kimliği belirtebilirsiniz (bazı kısıtlamalarla) veya Slides API'nin otomatik olarak bir kimlik oluşturmasına izin verebilirsiniz. Öğe kimlikleri, API okuma isteğiyle alınabilir.

Bu örnekler, dilden bağımsız olması için HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme işlemini nasıl uygulayacağınızı öğrenmek için Şekil ve metin ekleme başlıklı makaleyi inceleyin.

Slayta metin kutusu ekleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ID ile belirtilen bir slayda yeni bir metin kutusu (dize "Eklediğim Metin Kutusu"nu içeren) eklemek için CreateShapeRequest yönteminin nasıl kullanılacağı gösterilmektedir. İstek gövdesinde iki istek belirtilir: biri metin kutusu şeklini (belirli bir boyut ve konumla) oluşturmak, ikincisi ise metin eklemek için.

İlk istek, metin kutusu için kullanılacak nesne kimliğini belirtir. Bu sayede ikinci istek, aynı API çağrısında kullanabilir ve ek yükü azaltır.

Slayta metin kutusu eklemek için kullanılan istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

Slayda resim ekleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ID ile belirtilen bir slayda resim eklemek için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir. API, IMAGE_URL kullanarak resmi alır. Bu istek, görseli slaytta ölçeklendirip konumlandırır.

Slayda resim eklemek için kullanılan istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

Sayfayı veya sayfa öğesini silme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ELEMENT_ID ile belirtilen sayfa öğesini ve PAGE_ID ile belirtilen slaytı iki ayrı istek kullanarak silmek için DeleteObjectRequest yönteminin nasıl kullanılacağı gösterilmektedir.

Bir sayfayı veya sayfa öğesini silmek için istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

Belirli bir şekil içindeki metni düzenleme

Aşağıdaki presentations.batchUpdate kod örneğinde, PAGE_ELEMENT_ID ile belirtilen şekildeki metnin bir bölümünü değiştirmek için DeleteTextRequest yönteminin nasıl kullanılacağı gösterilmektedir. Bunu yapmak için önce sıfır tabanlı startIndex kullanarak metni silin, ardından bu konuma yeni metin ekleyin. Bu örnekte, orijinal metin dizesi "My Shape Text: ????" ifadesi "My Shape Text: Trapezoid" ile değiştiriliyor.

Bu istek yalnızca belirtilen şekil içindeki metni etkiler. Metni sunudaki her yerde değiştirmek için ReplaceAllTextRequest yöntemini kullanın.

Belirli bir şekil içindeki metni düzenlemek için istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": PAGE_ELEMENT_ID,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

Şekil etiketini resimle değiştirme

Etiketler, "hesap-sahibi-adı" gibi benzersiz bir dize adına sahip metin kutuları veya şekillerdir.

Aşağıdaki presentations.batchUpdate kod örneğinde, bir şekil etiketinin tek bir örneğini resimle değiştirmek için CreateImageRequest yönteminin nasıl kullanılacağı gösterilmektedir. Bu işlem sırasında aynı konum korunur ve resmin en-boy oranı korunarak etiket boyutuna uyacak şekilde ölçeklendirilir.

Bu istek, bir resmi başka bir resimle değiştirmek için de kullanılabilir. İstek, yeni resmi ekleyip etiketi silmekten oluşur.

CreateImageRequest yöntemi yalnızca belirtilen şekli değiştirir. Bir sunudaki tüm şekilleri değiştirmek için ReplaceAllShapesWithImageRequest yöntemini kullanın.

Şekil etiketinin aşağıdaki PageElement özellikleri vardır (presentations.pages.get isteği kullanılarak bulunabilir):

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

Şekil, PAGE_ID ile belirtilen slaytta yer alır. Şeklin yerini alacak resmi belirtmek için API, IMAGE_URL kullanarak resmi alır. Resim en boy oranını korurken etiketin boyutuyla sınırlamak için CreateImageRequest yöntemi hem resim boyutunu etiket boyutu ve ölçeğinin çarpımı olarak hem de resim ölçek faktörlerini 1 olarak ayarlar. Daha fazla bilgi için En-boy oranını koruma başlıklı makaleyi inceleyin.

Şekil etiketini resimle değiştirmek için istek protokolü aşağıda verilmiştir:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      }
    }
  ]
}