Metin Düzenleme ve Stili Oluşturma

Bu sayfada, Slaytlar API'sini kullanarak sununuzdaki metni nasıl düzenleyeceğiniz ve biçimlendireceğiniz açıklanmaktadır.

Metin hakkında

Sununuzdaki metin her zaman bir şeklin veya tablo hücresinin içinde bulunur. API, bu metni çeşitli yöntemlerle değiştirmenize olanak tanır:

  • Sununuza metin ekleyebilir, mevcut metni silebilir veya değiştirebilirsiniz.
  • Madde işaretli listeler oluşturmak için paragraf biçimlendirmesi ekleyebilirsiniz.
  • Kalın, italik, renk, yazı tipi boyutu veya köprü gibi karakter biçimlendirmelerini değiştirebilirsiniz.

Slaytlar API'sinde metin stilinin işleyiş şekline genel bir bakış için Metin Yapısı ve Stil adlı kavramlar sayfasına göz atın. Ayrıca yukarıdaki videoya göz atarak aşağıdaki bölümlerde yer alan biçimlendirme kavramlarının birkaçını bir araya getiren eksiksiz bir örnek (Python) görebilirsiniz.

Metin ekleme, silme veya değiştirme

Slaytlar API'sini kullanarak bir sunudaki metni değiştirmenin iki yolu vardır: genel bir arama ve değiştirme işlemi gerçekleştirmek veya metni açıkça silip eklemek. Her iki yöntemde de farklı istek türleriyle batchUpdate yöntemi kullanılır.

Genel arama ve değiştirme

Sununuz genelinde genel bir arama ve değiştirme işlemi gerçekleştirmek için ReplaceAllTextRequest'i kullanın.

Verileri Birleştirme kılavuzunun Metin Birleştirme bölümü, bu istek türünü nasıl kullanabileceğinize dair bir örnek sunar.

Bir şeklin içindeki metni değiştirme

Slaytlar API'si bir şeklin metin içeriğini değiştirmenize olanak tanır. Metin aralıklarını tek tek kaldırabilir ve belirli bir konuma metin ekleyebilirsiniz.

Bu işlemleri gerçekleştirmek için InsertTextRequest ve DeleteTextRequest kullanın.

Belirli bir metin bölgesini değiştirmek, silme ve ardından bir ekleme işleminden oluşur. Bu işlemi aşağıdaki adımları uygulayarak gerçekleştirebilirsiniz:

  1. Metni içeren sayfa öğesini tanımlayın.
  2. Değiştirilecek metnin başlangıç ve bitiş konumunu belirleyin.
  3. Aşağıdaki iki isteği göndererek batchUpdate adlı kuruluşu arayın:
    1. DeleteTextRequest. Silinecek metin aralığını belirtir.
    2. Eklenecek metin dizesinin yanı sıra aynı başlangıç konumunu belirten InsertTextRequest.

Metni bu şekilde değiştirirken eşitsizliği sağlamak için her iki isteği de aynı AudienceUpdate çağrısına ekleyin. Bu metin, bir şekildeki tüm metnin yeni metinle değiştirildiği aşağıdaki örnekte gösterilmektedir:

Apps Komut Dosyası

slides/api/Snippets.gs
/**
 * Remove existing text in the shape, then insert new text.
 * @param {string} presentationId
 * @param {string?} shapeId
 * @param {string} replacementText
 * @returns {*}
 */
function simpleTextReplace(presentationId, shapeId, replacementText) {
  const requests = [{
    deleteText: {
      objectId: shapeId,
      textRange: {
        type: 'ALL'
      }
    }
  }, {
    insertText: {
      objectId: shapeId,
      insertionIndex: 0,
      text: replacementText
    }
  }];

  // Execute the requests.
  try {
    const batchUpdateResponse = Slides.Presentations.batchUpdate({
      requests: requests
    }, presentationId);
    console.log('Replaced text in shape with ID: %s', shapeId);

    return batchUpdateResponse;
  } catch (err) {
    // TODO (Developer) - Handle exception
    console.log('Failed with error: %s', err.error);
  }
};

Go

slaytlar/snippet'ler/sunular.go
// Remove existing text in the shape, then insert the new text.
requests := []*slides.Request{{
	DeleteText: &slides.DeleteTextRequest{
		ObjectId: shapeId,
		TextRange: &slides.Range{
			Type: "All",
		},
	},
}, {
	InsertText: &slides.InsertTextRequest{
		ObjectId:       shapeId,
		InsertionIndex: 0,
		Text:           replacementText,
	},
}}

// Execute the requests.
body := &slides.BatchUpdatePresentationRequest{Requests: requests}
response, _ := slidesService.Presentations.BatchUpdate(presentationId, body).Do()
fmt.Printf("Replaced text in shape with ID: %s", shapeId)

Java

slides/snippets/src/main/java/SimpleTextReplace.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.slides.v1.Slides;
import com.google.api.services.slides.v1.SlidesScopes;
import com.google.api.services.slides.v1.model.BatchUpdatePresentationRequest;
import com.google.api.services.slides.v1.model.BatchUpdatePresentationResponse;
import com.google.api.services.slides.v1.model.DeleteTextRequest;
import com.google.api.services.slides.v1.model.InsertTextRequest;
import com.google.api.services.slides.v1.model.Range;
import com.google.api.services.slides.v1.model.Request;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/* Class to demonstrate the use of Slides Replace Text API */
public class SimpleTextReplace {
  /**
   * Remove existing text in the shape, then insert new text.
   *
   * @param presentationId  - id of the presentation.
   * @param shapeId         - id of the shape.
   * @param replacementText - New replacement text.
   * @return response
   * @throws IOException - if credentials file not found.
   */
  public static BatchUpdatePresentationResponse simpleTextReplace(
      String presentationId, String shapeId, String replacementText) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(SlidesScopes.PRESENTATIONS));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Create the slides API client
    Slides service = new Slides.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Slides samples")
        .build();

    // Remove existing text in the shape, then insert the new text.
    List<Request> requests = new ArrayList<>();
    requests.add(new Request()
        .setDeleteText(new DeleteTextRequest()
            .setObjectId(shapeId)
            .setTextRange(new Range()
                .setType("ALL"))));
    requests.add(new Request()
        .setInsertText(new InsertTextRequest()
            .setObjectId(shapeId)
            .setInsertionIndex(0)
            .setText(replacementText)));

    BatchUpdatePresentationResponse response = null;
    try {
      // Execute the requests.
      BatchUpdatePresentationRequest body =
          new BatchUpdatePresentationRequest().setRequests(requests);
      response = service.presentations().batchUpdate(presentationId, body).execute();
      System.out.println("Replaced text in shape with ID: " + shapeId);
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 400) {
        System.out.printf("Shape not found with id '%s'.\n", shapeId);
      } else if (error.getCode() == 404) {
        System.out.printf("Presentation not found with id '%s'.\n", presentationId);
      } else {
        throw e;
      }
    }
    return response;
  }
}

JavaScript

slides/snippets/slides_simple_text_replace.js
function simpleTextReplace(presentationId, shapeId, replacementText, callback) {
  // Remove existing text in the shape, then insert new text.
  const requests = [{
    deleteText: {
      objectId: shapeId,
      textRange: {
        type: 'ALL',
      },
    },
  }, {
    insertText: {
      objectId: shapeId,
      insertionIndex: 0,
      text: replacementText,
    },
  }];
  // Execute the requests.
  try {
    gapi.client.slides.presentations.batchUpdate({
      presentationId: presentationId,
      requests: requests,
    }).then((batchUpdateResponse) => {
      console.log(`Replaced text in shape with ID: ${shapeId}`);
      if (callback) callback(batchUpdateResponse.result);
    });
  } catch (err) {
    document.getElementById('content').innerText = err.message;
    return;
  }
}

Node.js

slides/snippets/slides_simple_text_replace.js
/**
 * Replaces text in the provided shape ID.
 * @param {string} presentationId The presentation ID.
 * @param {string} shapeId The shape ID to delete existing text and insert new text into.
 * @param {string} replacementText The new replacement text.
 */
async function simpleTextReplace(presentationId, shapeId, replacementText) {
  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/presentations',
  });

  const service = google.slides({version: 'v1', auth});
  // Remove existing text in the shape, then insert new text.
  const requests = [
    {
      deleteText: {
        objectId: shapeId,
        textRange: {
          type: 'ALL',
        },
      },
    },
    {
      insertText: {
        objectId: shapeId,
        insertionIndex: 0,
        text: replacementText,
      },
    },
  ];
  // Execute the requests.
  try {
    const batchUpdateResponse = await service.presentations.batchUpdate({
      presentationId,
      resource: {
        requests,
      },
    });
    console.log(`Replaced text in shape with ID: ${shapeId}`);
    return batchUpdateResponse.data;
  } catch (err) {
    // TODO (developer) - Handle exception
    throw err;
  }
}

PHP

slides/snippets/src/SlidesSimpleTextReplace.php
use Google\Client;
use Google\Service\Drive;
use Google\Service\Slides;
use Google\Service\Slides\Request;

function simpleTextReplace($presentationId, $shapeId, $replacementText)
{
    /* Load pre-authorized user credentials from the environment.
       TODO(developer) - See https://developers.google.com/identity for
        guides on implementing OAuth2 for your application. */
    $client = new Google\Client();
    $client->useApplicationDefaultCredentials();
    $client->addScope(Google\Service\Drive::DRIVE);
    $slidesService = new Google_Service_Slides($client);
    // Remove existing text in the shape, then insert new text.
    $requests = array();
    $requests[] = new Google_Service_Slides_Request(array(
        'deleteText' => array(
            'objectId' => $shapeId,
            'textRange' => array(
                'type' => 'ALL'
            )
        )
    ));
    $requests[] = new Google_Service_Slides_Request(array(
        'insertText' => array(
            'objectId' => $shapeId,
            'insertionIndex' => 0,
            'text' => $replacementText
        )
    ));

    // Execute the requests.
    $batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
        'requests' => $requests
    ));
    $response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
    printf("Replaced text in shape with ID: %s", $shapeId);
    return $response;
}

Python

slides/snippets/slides_simple_text_replace.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def simple_text_replace(presentation_id, shape_id, replacement_text):
  """
  Run simple_text_replace the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    slides_service = build("slides", "v1", credentials=creds)
    # Remove existing text in the shape, then insert new text.
    requests = []
    requests.append(
        {"deleteText": {"objectId": shape_id, "textRange": {"type": "ALL"}}}
    )
    requests.append(
        {
            "insertText": {
                "objectId": shape_id,
                "insertionIndex": 0,
                "text": replacement_text,
            }
        }
    )

    # Execute the requests.
    body = {"requests": requests}
    response = (
        slides_service.presentations()
        .batchUpdate(presentationId=presentation_id, body=body)
        .execute()
    )
    print(f"Replaced text in shape with ID: {shape_id}")
    return response
  except HttpError as error:
    print(f"An error occurred: {error}")
    print("Text is not merged")
    return error


if __name__ == "__main__":
  # Put the presentation_id, shape_id and replacement_text
  simple_text_replace(
      "10QnVUx1X2qHsL17WUidGpPh_SQhXYx40CgIxaKk8jU4",
      "MyTextBox_6",
      "GWSpace_now",
  )

Ruby

slides/snippets/lib/file_snippets.rb
# Remove existing text in the shape, then insert new text.
requests = [] << {
  delete_text: {
    object_id_prop: shape_id,
    text_range:     {
      type: 'ALL'
    }
  }
} << {
  insert_text: {
    object_id_prop:  shape_id,
    insertion_index: 0,
    text:            replacement_text
  }
}

# Execute the requests.
req = Google::Apis::SlidesV1::BatchUpdatePresentationRequest.new(requests: requests)
response = slides_service.batch_update_presentation(
  presentation_id,
  req
)
puts "Replaced text in shape with ID: #{shape_id}"

Karakter biçimlendirmesini değiştirme

Karakter biçimlendirmesi; yazı karakteri, renk ve köprü oluşturma dahil olmak üzere sununuzdaki metin karakterlerinin oluşturulmasını belirler.

Kavramlar sayfası Metin Yapısı ve Stil sayfasında Slaytlar API'nin metin biçimlendirme bilgilerini nasıl temsil ettiğini açıklar.

Metnin karakter biçimlendirmesini değiştirmek için UpdateTextStyleRequest ile birlikte batchUpdate kullanın. Metni içeren şeklin veya tablo hücresinin kimliğinin yanı sıra aşağıdaki bilgileri içeren bir Aralık belirtmeniz gerekir:

  • Belirtici FIXED_RANGE, stilini belirlemek istediğiniz metin aralığını tanımlayan başlangıç ve bitiş dizinleriyle birlikte.
  • Belirtici FROM_START_INDEX ile birlikte, stilini ayarlamak istediğiniz metin aralığının başlangıcını tanımlayan bir başlangıç dizini.
  • Hedef şekildeki tüm metnin stilini belirlemek için dizin içermeyen ALL tanımlayıcısı.

Aşağıdaki örnekte, bir şekilde yer alan metin üzerinde birkaç metin biçimlendirme işlemi gerçekleştirilir:

  • 0-4 karakterlerin yazı tipini kalın italik olarak ayarlar.
  • 5-9 arasındaki karakterlerin rengini blue olarak 14 punto Times New Roman yazı tipine ayarlar.
  • 10-14 arasındaki köprüler ile www.example.com arasındaki bağlantılar.

Bunu yapmanın kolay bir yolu, istek listesi oluşturmak ve ardından bir batchUpdate çağrısı kullanmaktır:

Apps Komut Dosyası

slides/api/Snippets.gs
/**
 * Update the text style so that the first 5 characters are bolded
 * and italicized, the next 5 are displayed in blue 14 pt Times
 * New Roman font, and the next 5 are hyperlinked.
 * @param {string} presentationId
 * @param {string} shapeId
 * @returns {*}
 */
function textStyleUpdate(presentationId, shapeId) {
  const requests = [{
    updateTextStyle: {
      objectId: shapeId,
      textRange: {
        type: 'FIXED_RANGE',
        startIndex: 0,
        endIndex: 5
      },
      style: {
        bold: true,
        italic: true
      },
      fields: 'bold,italic'
    }
  }, {
    updateTextStyle: {
      objectId: shapeId,
      textRange: {
        type: 'FIXED_RANGE',
        startIndex: 5,
        endIndex: 10
      },
      style: {
        fontFamily: 'Times New Roman',
        fontSize: {
          magnitude: 14,
          unit: 'PT'
        },
        foregroundColor: {
          opaqueColor: {
            rgbColor: {
              blue: 1.0,
              green: 0.0,
              red: 0.0
            }
          }
        }
      },
      fields: 'foregroundColor,fontFamily,fontSize'
    }
  }, {
    updateTextStyle: {
      objectId: shapeId,
      textRange: {
        type: 'FIXED_RANGE',
        startIndex: 10,
        endIndex: 15
      },
      style: {
        link: {
          url: 'www.example.com'
        }
      },
      fields: 'link'
    }
  }];

  // Execute the requests.
  try {
    const batchUpdateResponse = Slides.Presentations.batchUpdate({
      requests: requests
    }, presentationId);
    console.log('Updated the text style for shape with ID: %s', shapeId);

    return batchUpdateResponse;
  } catch (err) {
    // TODO (Developer) - Handle exception
    console.log('Failed with error: %s', err.error);
  }
};

Go

slaytlar/snippet'ler/sunular.go
// Update the text style so that the first 5 characters are bolded
// and italicized, and the next 5 are displayed in blue 14 pt Times
// New Roman font, and the next five are hyperlinked.
requests := []*slides.Request{{
	UpdateTextStyle: &slides.UpdateTextStyleRequest{
		ObjectId: shapeId,
		TextRange: &slides.Range{
			Type:            "FIXED_RANGE",
			StartIndex:      ptrInt64(0),
			EndIndex:        ptrInt64(5),
			ForceSendFields: []string{"StartIndex"},
		},
		Style: &slides.TextStyle{
			Bold:   true,
			Italic: true,
		},
		Fields: "bold,italic",
	},
}, {
	UpdateTextStyle: &slides.UpdateTextStyleRequest{
		ObjectId: shapeId,
		TextRange: &slides.Range{
			Type:       "FIXED_RANGE",
			StartIndex: ptrInt64(5),
			EndIndex:   ptrInt64(10),
		},
		Style: &slides.TextStyle{
			FontFamily: "Times New Roman",
			FontSize: &slides.Dimension{
				Magnitude: 14.0,
				Unit:      "PT",
			},
			ForegroundColor: &slides.OptionalColor{
				OpaqueColor: &slides.OpaqueColor{
					RgbColor: &slides.RgbColor{
						Blue:  1.0,
						Green: 0.0,
						Red:   0.0,
					},
				},
			},
		},
		Fields: "foregroundColor,fontFamily,fontSize",
	},
}, {
	UpdateTextStyle: &slides.UpdateTextStyleRequest{
		ObjectId: shapeId,
		TextRange: &slides.Range{
			Type:       "FIXED_RANGE",
			StartIndex: ptrInt64(10),
			EndIndex:   ptrInt64(15),
		},
		Style: &slides.TextStyle{
			Link: &slides.Link{
				Url: "www.example.com",
			},
		},
		Fields: "link",
	},
}}

// Execute the requests.
body := &slides.BatchUpdatePresentationRequest{Requests: requests}
response, _ := slidesService.Presentations.BatchUpdate(presentationId, body).Do()
fmt.Printf("Updated text style for shape with ID: %s", shapeId)

Java

slides/snippets/src/main/java/TextStyleUpdate.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.slides.v1.Slides;
import com.google.api.services.slides.v1.SlidesScopes;
import com.google.api.services.slides.v1.model.BatchUpdatePresentationRequest;
import com.google.api.services.slides.v1.model.BatchUpdatePresentationResponse;
import com.google.api.services.slides.v1.model.Dimension;
import com.google.api.services.slides.v1.model.Link;
import com.google.api.services.slides.v1.model.OpaqueColor;
import com.google.api.services.slides.v1.model.OptionalColor;
import com.google.api.services.slides.v1.model.Range;
import com.google.api.services.slides.v1.model.Request;
import com.google.api.services.slides.v1.model.RgbColor;
import com.google.api.services.slides.v1.model.TextStyle;
import com.google.api.services.slides.v1.model.UpdateTextStyleRequest;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/* Class to demonstrate the use of Slide Text Structure and Styling API */
public class TextStyleUpdate {
  /**
   * Styles text in the shape.
   *
   * @param presentationId - id of the presentation.
   * @param shapeId        - id of the shape.
   * @return shape id
   * @throws IOException - if credentials file not found.
   */
  public static BatchUpdatePresentationResponse textStyleUpdate(String presentationId,
                                                                String shapeId)
      throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(SlidesScopes.PRESENTATIONS));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Create the slides API client
    Slides service = new Slides.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Slides samples")
        .build();

    // Update the text style so that the first 5 characters are bolded
    // and italicized, and the next 5 are displayed in blue 14 pt Times
    // New Roman font, and the next five are hyperlinked.
    List<Request> requests = new ArrayList<>();
    requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
            .setObjectId(shapeId)
            .setTextRange(new Range()
                .setType("FIXED_RANGE")
                .setStartIndex(0)
                .setEndIndex(5))
            .setStyle(new TextStyle()
                .setBold(true)
                .setItalic(true))
            .setFields("bold,italic")));
    requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
            .setObjectId(shapeId)
            .setTextRange(new Range()
                .setType("FIXED_RANGE")
                .setStartIndex(5)
                .setEndIndex(10))
            .setStyle(new TextStyle()
                .setFontFamily("Times New Roman")
                .setFontSize(new Dimension()
                    .setMagnitude(14.0)
                    .setUnit("PT"))
                .setForegroundColor(new OptionalColor()
                    .setOpaqueColor(new OpaqueColor()
                        .setRgbColor(new RgbColor()
                            .setBlue(1.0F)
                            .setGreen(0.0F)
                            .setRed(0.0F)))))
            .setFields("foregroundColor,fontFamily,fontSize")));
    requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
            .setObjectId(shapeId)
            .setTextRange(new Range()
                .setType("FIXED_RANGE")
                .setStartIndex(10)
                .setEndIndex(15))
            .setStyle(new TextStyle()
                .setLink(new Link()
                    .setUrl("www.example.com")))
            .setFields("link")));

    BatchUpdatePresentationResponse response = null;
    try {
      // Execute the requests.
      BatchUpdatePresentationRequest body =
          new BatchUpdatePresentationRequest().setRequests(requests);
      response = service.presentations().batchUpdate(presentationId, body).execute();
      System.out.println("Updated text style for shape with ID: " + shapeId);
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 400) {
        System.out.printf("Shape not found with id '%s'.\n", shapeId);
      } else if (error.getCode() == 404) {
        System.out.printf("Presentation not found with id '%s'.\n", presentationId);
      } else {
        throw e;
      }
    }
    return response;
  }
}

JavaScript

slides/snippets/slides_text_style_update.js
function textStyleUpdate(presentationId, shapeId, callback) {
  // Update the text style so that the first 5 characters are bolded
  // and italicized, the next 5 are displayed in blue 14 pt Times
  // New Roman font, and the next 5 are hyperlinked.
  const requests = [{
    updateTextStyle: {
      objectId: shapeId,
      textRange: {
        type: 'FIXED_RANGE',
        startIndex: 0,
        endIndex: 5,
      },
      style: {
        bold: true,
        italic: true,
      },
      fields: 'bold,italic',
    },
  }, {
    updateTextStyle: {
      objectId: shapeId,
      textRange: {
        type: 'FIXED_RANGE',
        startIndex: 5,
        endIndex: 10,
      },
      style: {
        fontFamily: 'Times New Roman',
        fontSize: {
          magnitude: 14,
          unit: 'PT',
        },
        foregroundColor: {
          opaqueColor: {
            rgbColor: {
              blue: 1.0,
              green: 0.0,
              red: 0.0,
            },
          },
        },
      },
      fields: 'foregroundColor,fontFamily,fontSize',
    },
  }, {
    updateTextStyle: {
      objectId: shapeId,
      textRange: {
        type: 'FIXED_RANGE',
        startIndex: 10,
        endIndex: 15,
      },
      style: {
        link: {
          url: 'www.example.com',
        },
      },
      fields: 'link',
    },
  }];
  // Execute the requests.
  try {
    gapi.client.slides.presentations.batchUpdate({
      presentationId: presentationId,
      requests: requests,
    }).then((batchUpdateResponse) => {
      console.log(`Updated the text style for shape with ID: ${shapeId}`);
      if (callback) callback(batchUpdateResponse.result);
    });
  } catch (err) {
    document.getElementById('content').innerText = err.message;
    return;
  }
}

Node.js

slides/snippets/slides_text_style_update.js
/**
 * Updates text style for a specific presentation's shape ID.
 * @param {string} presentationId The presentation ID.
 * @param {string} shapeId The shape ID.
 */
async function textStyleUpdate(presentationId, shapeId) {
  // Update the text style so that the first 5 characters are bolded
  // and italicized, the next 5 are displayed in blue 14 pt Times
  // New Roman font, and the next 5 are hyperlinked.
  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/presentations',
  });

  const service = google.slides({version: 'v1', auth});

  const requests = [
    {
      updateTextStyle: {
        objectId: shapeId,
        textRange: {
          type: 'FIXED_RANGE',
          startIndex: 0,
          endIndex: 5,
        },
        style: {
          bold: true,
          italic: true,
        },
        fields: 'bold,italic',
      },
    },
    {
      updateTextStyle: {
        objectId: shapeId,
        textRange: {
          type: 'FIXED_RANGE',
          startIndex: 5,
          endIndex: 10,
        },
        style: {
          fontFamily: 'Times New Roman',
          fontSize: {
            magnitude: 14,
            unit: 'PT',
          },
          foregroundColor: {
            opaqueColor: {
              rgbColor: {
                blue: 1.0,
                green: 0.0,
                red: 0.0,
              },
            },
          },
        },
        fields: 'foregroundColor,fontFamily,fontSize',
      },
    },
    {
      updateTextStyle: {
        objectId: shapeId,
        textRange: {
          type: 'FIXED_RANGE',
          startIndex: 10,
          endIndex: 15,
        },
        style: {
          link: {
            url: 'www.example.com',
          },
        },
        fields: 'link',
      },
    },
  ];

  // Execute the requests.
  try {
    const batchUpdateResponse = await service.presentations.batchUpdate({
      presentationId,
      resource: {
        requests,
      },
    });
    console.log(`Updated the text style for shape with ID: ${shapeId}`);
    return batchUpdateResponse.data;
  } catch (err) {
    // TODO (developer) - Handle exceptions
    throw err;
  }
}

PHP

slides/snippets/src/SlidesTextStyleUpdate.php
use Google\Client;
use Google\Service\Drive;
use Google\Service\Slides;
use Google\Service\Slides\Request;
use Google\Service\Slides\BatchUpdatePresentationRequest;


function textStyleUpdate($presentationId, $shapeId)
{
    /* Load pre-authorized user credentials from the environment.
       TODO(developer) - See https://developers.google.com/identity for
        guides on implementing OAuth2 for your application. */
    $client = new Google\Client();
    $client->useApplicationDefaultCredentials();
    $client->addScope(Google\Service\Drive::DRIVE);
    $slidesService = new Google_Service_Slides($client);
    $requests = array();
    $requests[] = new Google_Service_Slides_Request(array(
        'updateTextStyle' => array(
            'objectId' => $shapeId,
            'textRange' => array(
                'type' => 'FIXED_RANGE',
                'startIndex' => 0,
                'endIndex' => 5
            ),
            'style' => array(
                'bold' => true,
                'italic' => true
            ),
            'fields' => 'bold,italic'
        )
    ));
    $requests[] = new Google_Service_Slides_Request(array(
        'updateTextStyle' => array(
            'objectId' => $shapeId,
            'textRange' => array(
                'type' => 'FIXED_RANGE',
                'startIndex' => 5,
                'endIndex' => 10
            ),
            'style' => array(
                'fontFamily' => 'Times New Roman',
                'fontSize' => array(
                    'magnitude' => 14,
                    'unit' => 'PT'
                ),
                'foregroundColor' => array(
                    'opaqueColor' => array(
                        'rgbColor' => array(
                            'blue' => 1.0,
                            'green' => 0.0,
                            'red' => 0.0
                        )
                    )
                )
            ),
            'fields' => 'foregroundColor,fontFamily,fontSize'
        )
    ));
    $requests[] = new Google_Service_Slides_Request(array(
        'updateTextStyle' => array(
            'objectId' => $shapeId,
            'textRange' => array(
                'type' => 'FIXED_RANGE',
                'startIndex' => 10,
                'endIndex' => 15
            ),
            'style' => array(
                'link' => array(
                    'url' => 'www.example.com'
                )
            ),
            'fields' => 'link'
        )
    ));

    // Execute the requests.
    $batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
        'requests' => $requests
    ));
    $response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
    printf("Updated the text style for shape with ID: %s", $shapeId);
    return $response;
}

Python

slides/snippets/slides_text_style_update.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def text_style_update(presentation_id, shape_id):
  """
  create_sheets_chart the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    service = build("slides", "v1", credentials=creds)
    # Update the text style so that the first 5 characters are bolded
    # and italicized, the next 5 are displayed in blue 14 pt Times
    # New Roman font, and the next 5 are hyperlinked.
    requests = [
        {
            "updateTextStyle": {
                "objectId": shape_id,
                "textRange": {
                    "type": "FIXED_RANGE",
                    "startIndex": 0,
                    "endIndex": 5,
                },
                "style": {"bold": True, "italic": True},
                "fields": "bold,italic",
            }
        },
        {
            "updateTextStyle": {
                "objectId": shape_id,
                "textRange": {
                    "type": "FIXED_RANGE",
                    "startIndex": 5,
                    "endIndex": 10,
                },
                "style": {
                    "fontFamily": "Times New Roman",
                    "fontSize": {"magnitude": 14, "unit": "PT"},
                    "foregroundColor": {
                        "opaqueColor": {
                            "rgbColor": {
                                "blue": 1.0,
                                "green": 0.0,
                                "red": 0.0,
                            }
                        }
                    },
                },
                "fields": "foregroundColor,fontFamily,fontSize",
            }
        },
        {
            "updateTextStyle": {
                "objectId": shape_id,
                "textRange": {
                    "type": "FIXED_RANGE",
                    "startIndex": 10,
                    "endIndex": 15,
                },
                "style": {"link": {"url": "www.example.com"}},
                "fields": "link",
            }
        },
    ]

    # Execute the requests.
    body = {"requests": requests}
    response = (
        service.presentations()
        .batchUpdate(presentationId=presentation_id, body=body)
        .execute()
    )
    print(f"Updated the text style for shape with ID:{shape_id}")

    return response
  except HttpError as error:
    print(f"An error occurred: {error}")
    return error


if __name__ == "__main__":
  # Put the presentation_id, shape_id of slides
  # to be submitted.
  text_style_update(
      "10QnVUx1X2qHsL17WUidGpPh_SQhXYx40CgIxaKk8jU4", "MyTextBox_9"
  )

Ruby

slides/snippets/lib/file_snippets.rb
# Update the text style so that the first 5 characters are bolded
# and italicized, the next 5 are displayed in blue 14 pt Times
# New Roman font, and the next 5 are hyperlinked.
requests = [] << {
  update_text_style: {
    object_id_prop: shape_id,
    text_range:     {
      type:        'FIXED_RANGE',
      start_index: 0,
      end_index:   5
    },
    style:          {
      bold:   true,
      italic: true
    },
    fields:         'bold,italic'
  }
} << {
  update_text_style: {
    object_id_prop: shape_id,
    text_range:     {
      type:        'FIXED_RANGE',
      start_index: 5,
      end_index:   10
    },
    style:          {
      font_family:      'Times New Roman',
      font_size:        {
        magnitude: 14,
        unit:      'PT'
      },
      foreground_color: {
        opaque_color: {
          rgb_color: {
            blue:  1.0,
            green: 0.0,
            red:   0.0
          }
        }
      }
    },
    fields:         'foreground_color,font_family,font_size'
  }
} << {
  update_text_style: {
    object_id_prop: shape_id,
    text_range:     {
      type:        'FIXED_RANGE',
      start_index: 10,
      end_index:   15
    },
    style:          {
      link: {
        url: 'www.example.com'
      }
    },
    fields:         'link'
  }
}

# Execute the requests.
req = Google::Apis::SlidesV1::BatchUpdatePresentationRequest.new(requests: requests)
response = slides_service.batch_update_presentation(presentation_id, req)
puts "Updated the text style for shape with ID: #{shape_id}"

Paragraf biçimlendirmesini değiştirme

Paragraf biçimlendirmesi, metin bloklarının sununuzda hizalama, girinti ve liste süslemesi gibi nasıl oluşturulduğunu belirler.

Kavramlar sayfası Metin Yapısı ve Stil sayfasında [[slides_api_short]] öğesinin paragraf biçimlendirme bilgilerini nasıl temsil ettiğini açıklar.

Slaytlar API'si paragraf stillerini güncellemeyi, düz paragrafları madde işaretli listelere dönüştürmeyi ve paragraflardaki madde işaretlerini kaldırmayı destekler.

Paragrafları listeye dönüştürme

Yaygın bir paragraf biçimlendirme işlemi, paragrafları madde işaretli listeye dönüştürmektir. Aşağıdaki örnek, bir şeklin tüm paragraflarını madde işaretli bir listeye dönüştürür ve kullanılacak açık madde işareti glifini belirtir.

Apps Komut Dosyası

slides/api/Snippets.gs
/**
 * Add arrow-diamond-disc bullets to all text in the shape.
 */
function createBulletedText(presentationId, shapeId) {
  const requests = [{
    createParagraphBullets: {
      objectId: shapeId,
      textRange: {
        type: 'ALL'
      },
      bulletPreset: 'BULLET_ARROW_DIAMOND_DISC'
    }
  }];

  // Execute the requests.
  try {
    const batchUpdateResponse = Slides.Presentations.batchUpdate({
      requests: requests
    }, presentationId);
    console.log('Added bullets to text in shape with ID: %s', shapeId);

    return batchUpdateResponse;
  } catch (err) {
    // TODO (Developer) - Handle exception
    console.log('Failed with error: %s', err.error);
  }
};

Go

slaytlar/snippet'ler/sunular.go
// Add arrow-diamond-disc bullets to all text in the shape.
requests := []*slides.Request{{
	CreateParagraphBullets: &slides.CreateParagraphBulletsRequest{
		ObjectId: shapeId,
		TextRange: &slides.Range{
			Type: "ALL",
		},
		BulletPreset: "BULLET_ARROW_DIAMOND_DISC",
	},
}}

// Execute the requests.
body := &slides.BatchUpdatePresentationRequest{Requests: requests}
response, _ := slidesService.Presentations.BatchUpdate(presentationId, body).Do()
fmt.Printf("Added a linked Sheets chart with ID %s", shapeId)

Java

slides/snippets/src/main/java/CreateBulletedText.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.slides.v1.Slides;
import com.google.api.services.slides.v1.SlidesScopes;
import com.google.api.services.slides.v1.model.BatchUpdatePresentationRequest;
import com.google.api.services.slides.v1.model.BatchUpdatePresentationResponse;
import com.google.api.services.slides.v1.model.CreateParagraphBulletsRequest;
import com.google.api.services.slides.v1.model.Range;
import com.google.api.services.slides.v1.model.Request;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/* Class to demonstrate the use of Slide Create Bulleted Text API */
public class CreateBulletedText {
  /**
   * Add arrow-diamond-disc bullets to all text in the shape.
   *
   * @param presentationId - id of the presentation.
   * @param shapeId        - id of the shape.
   * @return response
   * @throws IOException - if credentials file not found.
   */
  public static BatchUpdatePresentationResponse createBulletedText(String presentationId,
                                                                   String shapeId)
      throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(SlidesScopes.PRESENTATIONS));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Create the slides API client
    Slides service = new Slides.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Slides samples")
        .build();

    // Add arrow-diamond-disc bullets to all text in the shape.
    List<Request> requests = new ArrayList<>();
    requests.add(new Request()
        .setCreateParagraphBullets(new CreateParagraphBulletsRequest()
            .setObjectId(shapeId)
            .setTextRange(new Range()
                .setType("ALL"))
            .setBulletPreset("BULLET_ARROW_DIAMOND_DISC")));

    BatchUpdatePresentationResponse response = null;
    try {
      // Execute the request.
      BatchUpdatePresentationRequest body =
          new BatchUpdatePresentationRequest().setRequests(requests);
      response = service.presentations().batchUpdate(presentationId, body).execute();
      System.out.println("Added bullets to text in shape with ID: " + shapeId);
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 400) {
        System.out.printf("Shape not found with id '%s'.\n", shapeId);
      } else if (error.getCode() == 404) {
        System.out.printf("Presentation not found with id '%s'.\n", presentationId);
      } else {
        throw e;
      }
    }
    return response;
  }
}

JavaScript

slides/snippets/slides_create_bulleted_text.js
function createBulletedText(presentationId, shapeId, callback) {
  // Add arrow-diamond-disc bullets to all text in the shape.
  const requests = [{
    createParagraphBullets: {
      objectId: shapeId,
      textRange: {
        type: 'ALL',
      },
      bulletPreset: 'BULLET_ARROW_DIAMOND_DISC',
    },
  }];
  // Execute the requests.
  try {
    gapi.client.slides.presentations.batchUpdate({
      presentationId: presentationId,
      requests: requests,
    }).then((batchUpdateResponse) => {
      console.log(`Added bullets to text in shape with ID: ${shapeId}`);
      if (callback) callback(batchUpdateResponse.result);
    });
  } catch (err) {
    document.getElementById('content').innerText = err.message;
    return;
  }
}

Node.js

slides/snippets/slides_create_bulleted_text.js
/**
 * Creates bulleted text for a presentation.
 * @param {string} presentationId The presentation ID.
 * @param {string} shapeId The shape ID to add bulleted text to.
 */
async function createBulletedText(presentationId, shapeId) {
  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/presentations',
  });

  const service = google.slides({version: 'v1', auth});

  // Add arrow-diamond-disc bullets to all text in the shape.
  const requests = [
    {
      createParagraphBullets: {
        objectId: shapeId,
        textRange: {
          type: 'ALL',
        },
        bulletPreset: 'BULLET_ARROW_DIAMOND_DISC',
      },
    },
  ];

  // Execute the requests.
  try {
    const batchUpdateResponse = await service.presentations.batchUpdate({
      presentationId,
      resource: {
        requests,
      },
    });
    console.log(`Added bullets to text in shape with ID: ${shapeId}`);
    return batchUpdateResponse.data;
  } catch (err) {
    // TODO (developer) - Handle exception
    throw err;
  }
}

PHP

slides/snippets/src/SlidesCreateBulletedText.php
use Google\Client;
use Google\Service\Drive;
use Google\Service\Slides;
use Google\Service\Slides\Request;


function createBulletedText($presentationId, $shapeId)
{
    /* Load pre-authorized user credentials from the environment.
       TODO(developer) - See https://developers.google.com/identity for
        guides on implementing OAuth2 for your application. */
    $client = new Google\Client();
    $client->useApplicationDefaultCredentials();
    $client->addScope(Google\Service\Drive::DRIVE);
    $slidesService = new Google_Service_Slides($client);
    // Add arrow-diamond-disc bullets to all text in the shape.
    $requests = array();
    $requests[] = new Google_Service_Slides_Request(array(
        'createParagraphBullets' => array(
            'objectId' => $shapeId,
            'textRange' => array(
                'type' => 'ALL'
            ),
            'bulletPreset' => 'BULLET_ARROW_DIAMOND_DISC'
        )
    ));

    // Execute the request.
    $batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
        'requests' => $requests
    ));
    $response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
    printf("Added bullets to text in shape with ID: %s", $shapeId);
    return $response;
}

Python

slides/snippets/slides_create_bulleted_text.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def create_bulleted_text(presentation_id, shape_id):
  """
  Run create_bulleted_text the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    slides_service = build("slides", "v1", credentials=creds)
    # Add arrow-diamond-disc bullets to all text in the shape.
    requests = [
        {
            "createParagraphBullets": {
                "objectId": shape_id,
                "textRange": {"type": "ALL"},
                "bulletPreset": "BULLET_ARROW_DIAMOND_DISC",
            }
        }
    ]

    # Execute the requests.
    body = {"requests": requests}
    response = (
        slides_service.presentations()
        .batchUpdate(presentationId=presentation_id, body=body)
        .execute()
    )
    print(f"Added bullets to text in shape with ID: {shape_id}")

    return response
  except HttpError as error:
    print(f"An error occurred: {error}")
    return error


if __name__ == "__main__":
  # Put the presentation_id and shape_id
  # to be submitted.
  create_bulleted_text(
      "1VD1xmi1-9DonI4zmCKENTzlVxIL5SdGGTmbHmnBjQ1E", "MyTextBox_9"
  )

Ruby

slides/snippets/lib/file_snippets.rb
# Add arrow-diamond-disc bullets to all text in the shape.
requests = [] << {
  create_paragraph_bullets: {
    object_id_prop: shape_id,
    text_range:     {
      type: 'ALL'
    },
    bulletPreset:   'BULLET_ARROW_DIAMOND_DISC'
  }
}

# Execute the requests.
req = Google::Apis::SlidesV1::BatchUpdatePresentationRequest.new(requests: requests)
response = slides_service.batch_update_presentation(presentation_id, req)
puts "Added bullets to text in shape with ID: #{shape_id}"