Bu sayfada, Slaytlar API'sini kullanarak sununuzdaki metinleri nasıl düzenleyip biçimlendireceğiniz açıklanmaktadır.
Metin hakkında
Sununuzdaki metinler her zaman bir şekil veya tablo hücresinde yer alır. API, bu metni çeşitli şekillerde değiştirmenize olanak tanır:
- Sununuza metin ekleyebilir, metin silebilir veya metin 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üler gibi karakter biçimlendirmesini değiştirebilirsiniz.
Slaytlar API'sinde metin stilinin işleyiş şekli hakkında genel bilgi edinmek için Metin Yapısı ve Stili kavramlar sayfasına bakın. Ayrıca, aşağıdaki bölümlerde yer alan biçimlendirme kavramlarının birçoğunu birleştiren eksiksiz bir örnek (Python) görmek için yukarıdaki videoya göz atın.
Metin ekleme, silme veya değiştirme
Slaytlar API'sini kullanarak bir sunudaki metni değiştirmenin iki yolu vardır: genel bir bul ve değiştir işlemi gerçekleştirerek veya metni açıkça silip ekleyerek. Her iki yöntem de batchUpdate yöntemini kullanır ancak farklı istek türleriyle.
Genel arama ve değiştirme
Sunumunuzda genel bir ara ve değiştir işlemi yapmak için ReplaceAllTextRequest'i kullanın.
Veri Birleştirme kılavuzunun Metin Birleştirme bölümünde, bu istek türünü nasıl kullanabileceğinize dair bir örnek verilmiştir.
Şekil içindeki metni değiştirme
Slides API, 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'i kullanın.
Metnin belirli bir bölgesini değiştirme işlemi, silme ve ardından ekleme işlemlerinden oluşur. Bu işlemleri aşağıdaki adımları uygulayarak gerçekleştirebilirsiniz:
- Metni içeren sayfa öğesini belirleyin.
- Değiştirilecek metnin başlangıç ve bitiş konumunu belirleyin.
- Aşağıdaki iki istekle
batchUpdate
'ı arayın:- Silinecek metin aralığını belirten DeleteTextRequest.
- InsertTextRequest, eklenmesi gereken metin dizesinin yanı sıra aynı başlangıç konumunu belirtir.
Metni bu şekilde değiştirirken atomikliği sağlamak için her iki isteği de aynı batchUpdate çağrısına eklediğinizden emin olun. Bu durum, bir şeklin içindeki tüm metni yeni metinle değiştiren aşağıdaki örnekte gösterilmektedir:
Apps Komut Dosyası
/** * 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
// 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
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
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
/** * 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
<?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
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
# 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, sununuzdaki metin karakterlerinin yazı tipi, renk ve köprü oluşturma dahil olmak üzere nasıl oluşturulacağını belirler.
Metin Yapısı ve Stili başlıklı kavramlar sayfasında, Slides API'nin metin stili bilgilerini nasıl temsil ettiği açıklanmaktadır.
Metnin karakter biçimlendirmesini değiştirmek için batchUpdate
ile UpdateTextStyleRequest'i kullanın.
Metni içeren şeklin veya tablo hücresinin kimliğini ve aşağıdaki bilgileri içeren bir aralık sağlamanız gerekir:
FIXED_RANGE
belirteci, stil vermek istediğiniz metin aralığını tanımlayan başlangıç ve bitiş dizinleriyle birlikte kullanılır.FROM_START_INDEX
belirteci, stil vermek istediğiniz metin aralığının başlangıcını tanımlayan bir başlangıç diziniyle birlikte kullanılır.- Hedef şeklindeki tüm metni stilize etmek için dizin içermeyen
ALL
belirteci.
Aşağıdaki örnekte, bir şeklin içinde bulunan metin üzerinde çeşitli metin stil işlemleri gerçekleştirilir:
- 0-4 arasındaki karakterlerin yazı tipini kalın italik olarak ayarlar.
- 5-9. karakterlerin rengini
blue
14 punto Times New Roman yazı tipi olarak ayarlar. - 10-14. karakterleri
www.example.com
ile köprüler.
Bunu yapmanın basit bir yolu, isteklerin listesini oluşturup tek bir batchUpdate çağrısı kullanmaktır:
Apps Komut Dosyası
/** * 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
// 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
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
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
/** * 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
<?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
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
# 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, hizalama, girinti ve liste süslemeleri dahil olmak üzere metin bloklarının sunumunuzda nasıl oluşturulacağını belirler.
Metin Yapısı ve Stili konsept sayfasında, [[slides_api_short]]'nin paragraf stili bilgilerini nasıl temsil ettiği açıklanmaktadır.
Slides API; paragraf stillerini güncellemeyi, düz paragrafları madde işaretli listelere dönüştürmeyi ve paragraflardan madde işaretlerini kaldırmayı destekler.
Paragrafları listeye dönüştürme
Sık kullanılan bir paragraf biçimlendirme işlemi, paragrafları madde işaretli listeye dönüştürmektir. Aşağıdaki örnekte, bir şeklin tüm paragrafları madde işaretli listeye dönüştürülür ve kullanılacak açık bir madde işareti glifi belirtilir.
Apps Komut Dosyası
/** * 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
// 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
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
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
/** * 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
<?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
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
# 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}"