Google Slaytlar API, sunu sayfalarına öğe eklemenize ve mevcut öğeleri değiştirmenize olanak tanır. Bu sayfada, 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_ID: Sunu kimliğini nerede sağladığınızı belirtir. Bu kimliğin değerini sunuş URL'sinden öğrenebilirsiniz.
- PAGE_ID: Sayfa nesnesi kimliğini nerede sağladığınızı belirtir. Bunun değerini URL'den veya API okuma isteği kullanarak alabilirsiniz.
- PAGE_ELEMENT_ID: Sayfa öğesi nesne kimliğini nerede sağladığınızı gösterir. Oluşturduğunuz öğeler için bu kimliği belirtebilir (bazı kısıtlamalarla) veya Slaytlar API'nin otomatik olarak bir kimlik oluşturmasına izin verebilirsiniz. Öğe kimlikleri, API okuma isteği aracılığıyla alınabilir.
Bu örnekler, dil açısından tarafsız olması için HTTP istekleri olarak sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğ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 tarafından belirtilen bir slayta yeni bir metin kutusu ("Eklediğim Metin Kutusu" dizesini 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 için, diğeri ise içine 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 bu anahtarı kullanabilir ve ek maliyeti azaltır.
Bir slayta metin kutusu ekleme 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 } } ] }
Slayta resim ekleme
Aşağıdaki presentations.batchUpdate
kod örneğinde, PAGE_ID tarafından belirtilen bir slayta resim eklemek için CreateImageRequest
yönteminin nasıl kullanılacağı gösterilmektedir. API, IMAGE_URL kullanarak resmi alır. Bu istek, resmin slaytta ölçeklendirilmesini ve konumlandırılmasını da sağlar.
Bir slayta resim ekleme 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" } } } } ] }
Sayfa veya sayfa öğesi silme
Aşağıdaki
presentations.batchUpdate
kod örneğinde, PAGE_ELEMENT_ID tarafından belirtilen sayfa öğesini ve PAGE_ID tarafından belirtilen slaytı silmek için iki ayrı istek kullanarak DeleteObjectRequest
yönteminin nasıl kullanılacağı gösterilmektedir.
Bir sayfayı veya sayfa öğesini silme 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 şekildeki metni düzenleme
Aşağıdaki presentations.batchUpdate
kod örneğinde, PAGE_ELEMENT_ID tarafından 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 ve ardından bu konuma yeni metin ekleyin. Bu örnekte, orijinal metin dizesi "Şekle Ait Metnim: ????", "Şekle Ait Metnim: Trapez" ile değiştirilmiştir.
Bu istek yalnızca belirli bir şekildeki metni etkiler. Bir sununun her yerindeki metni değiştirmek için ReplaceAllTextRequest
yöntemini kullanın.
Belirli bir şekildeki 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 yöntemde, aynı konum korunur ve resim, etiketin boyutuna sığacak şekilde ölçeklendirilirken resmin en boy oranı korunur.
İstek, 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 bir şekli değiştirir. Etiket şekillerini bir sunumdaki her yerde değiştirmek için ReplaceAllShapesWithImageRequest
yöntemini kullanın.
Şekil etiketinde aşağıdaki PageElement
özellikleri bulunur (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 bulunur. API, şeklin yerini alacak resmi belirtmek için IMAGE_URL parametresini kullanarak resmi alır. CreateImageRequest
yöntemi, resim en boy oranını etiket boyutuyla sınırlandırırken korumak için hem resim boyutunu etiket boyutu ve ölçeğinin çarpımına 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.
Bir ş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 } } ] }