इस पेज पर, Slides API का इस्तेमाल करके अपने प्रज़ेंटेशन में टेक्स्ट में बदलाव करने और उसे स्टाइल देने का तरीका बताया गया है.
टेक्स्ट के बारे में जानकारी
आपके प्रज़ेंटेशन में टेक्स्ट हमेशा किसी आकार या टेबल सेल में होता है. एपीआई की मदद से, इस टेक्स्ट में कई तरीकों से बदलाव किया जा सकता है:
- अपने प्रज़ेंटेशन में टेक्स्ट डाला जा सकता है, मिटाया जा सकता है या बदला जा सकता है.
- बुलेट वाली सूचियां बनाने के लिए, पैराग्राफ़ फ़ॉर्मैटिंग जोड़ी जा सकती है.
- वर्ण फ़ॉर्मैटिंग को बदला जा सकता है. जैसे, बोल्ड, इटैलिक, रंग, फ़ॉन्ट साइज़ या हाइपरलिंक.
Slides API में टेक्स्ट स्टाइल करने की सुविधा के काम करने के तरीके के बारे में खास जानकारी पाने के लिए, कॉन्सेप्ट पेज टेक्स्ट का स्ट्रक्चर और स्टाइल देखें. नीचे दिए गए सेक्शन में, फ़ॉर्मैटिंग के कई कॉन्सेप्ट के बारे में बताया गया है. इनका इस्तेमाल करके, Python में डेटा को फ़ॉर्मैट करने का पूरा उदाहरण देखने के लिए, ऊपर दिया गया वीडियो देखें.
टेक्स्ट डालना, मिटाना या बदलना
Slides API का इस्तेमाल करके, किसी प्रज़ेंटेशन में टेक्स्ट को दो तरीकों से बदला जा सकता है: ग्लोबल सर्च और बदलाव करने की सुविधा का इस्तेमाल करके या टेक्स्ट को साफ़ तौर पर मिटाकर और जोड़कर. दोनों तरीकों में batchUpdate तरीका इस्तेमाल किया जाता है. हालांकि, अनुरोध के अलग-अलग टाइप का इस्तेमाल किया जाता है.
पूरी स्प्रेडशीट में खोजें और बदलें
अपने पूरे प्रज़ेंटेशन में, टेक्स्ट को खोजकर बदलने के लिए, ReplaceAllTextRequest का इस्तेमाल करें.
डेटा मर्ज करने के बारे में बताने वाली गाइड के टेक्स्ट मर्ज करना सेक्शन में, इस तरह के अनुरोध का इस्तेमाल करने का उदाहरण दिया गया है.
किसी आकार में मौजूद टेक्स्ट बदलना
Slides API की मदद से, किसी आकार के टेक्स्ट कॉन्टेंट में बदलाव किया जा सकता है. टेक्स्ट की अलग-अलग रेंज को हटाया जा सकता है. साथ ही, किसी खास जगह पर टेक्स्ट डाला जा सकता है.
इन कार्रवाइयों को करने के लिए, InsertTextRequest और DeleteTextRequest का इस्तेमाल करें.
टेक्स्ट के किसी खास हिस्से को बदलने के लिए, उसे मिटाना और फिर उसमें नया टेक्स्ट डालना होता है. इसके लिए, यह तरीका अपनाएं:
- उस पेज एलिमेंट की पहचान करें जिसमें टेक्स्ट मौजूद है.
- बदले जाने वाले टेक्स्ट की शुरुआत और आखिर की जगह की पहचान करें.
batchUpdate
को इन दो अनुरोधों के साथ कॉल करें:- DeleteTextRequest, जिसमें मिटाए जाने वाले टेक्स्ट की रेंज बताई गई हो.
- InsertTextRequest, जिसमें शुरू होने की जगह और डाली जाने वाली टेक्स्ट स्ट्रिंग की जानकारी दी गई हो.
इस तरह से टेक्स्ट बदलने पर, एक साथ कई बदलाव होने की सुविधा को पक्का करने के लिए, एक ही batchUpdate कॉल में दोनों अनुरोध शामिल करें. इसका उदाहरण यहां दिया गया है. इसमें किसी आकार में मौजूद सभी टेक्स्ट को नए टेक्स्ट से बदला गया है:
Apps Script
/** * 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); } };
शुरू करें
// 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
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}"
वर्ण फ़ॉर्मैट में बदलाव करना
वर्ण फ़ॉर्मैट करने की सुविधा से, आपके प्रज़ेंटेशन में टेक्स्ट वर्णों के रेंडर होने का तरीका तय होता है. इसमें टाइपफ़ेस, रंग, और हाइपरलिंक शामिल हैं.
टेक्स्ट का स्ट्रक्चर और स्टाइल कॉन्सेप्ट पेज पर बताया गया है कि Slides API, टेक्स्ट स्टाइल की जानकारी को कैसे दिखाता है.
टेक्स्ट के वर्ण फ़ॉर्मैट को बदलने के लिए, batchUpdate
का इस्तेमाल UpdateTextStyleRequest के साथ करें.
आपको उस आकार या टेबल सेल का आईडी देना होगा जिसमें टेक्स्ट है. साथ ही, आपको एक रेंज भी देनी होगी, जिसमें यह जानकारी शामिल हो:
- स्पेसिफ़ायर
FIXED_RANGE
, शुरू और खत्म इंडेक्स के साथ, जो टेक्स्ट की उस रेंज को तय करते हैं जिसे आपको स्टाइल करना है. - स्पेसिफ़ायर
FROM_START_INDEX
, साथ ही स्टार्ट इंडेक्स, जो उस टेक्स्ट रेंज की शुरुआत तय करता है जिसे आपको स्टाइल करना है. - स्पेसिफ़ायर
ALL
, जिसमें कोई इंडेक्स नहीं है. इसका इस्तेमाल, टारगेट के आकार में मौजूद सभी टेक्स्ट को स्टाइल करने के लिए किया जाता है.
यहां दिए गए उदाहरण में, किसी आकार में मौजूद टेक्स्ट पर टेक्स्ट स्टाइल करने के कई काम किए गए हैं:
- इससे 0 से 4 तक के वर्णों के फ़ॉन्ट को बोल्ड इटैलिक में सेट किया जाता है.
- इससे वर्णों 5 से 9 का रंग
blue
14-पॉइंट Times New Roman फ़ॉन्ट में सेट हो जाता है. - 10 से 14 वर्ण को
www.example.com
से हाइपरलिंक करता है.
ऐसा करने का सबसे आसान तरीका है, अनुरोधों की सूची बनाना और फिर एक batchUpdate कॉल का इस्तेमाल करना:
Apps Script
/** * 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); } };
शुरू करें
// 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
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}"
पैराग्राफ़ की फ़ॉर्मैटिंग बदलना
पैराग्राफ़ फ़ॉर्मैटिंग से यह तय होता है कि आपके प्रज़ेंटेशन में टेक्स्ट के ब्लॉक कैसे रेंडर किए जाएंगे. इसमें अलाइनमेंट, इंडेंटेशन, और सूची के आभूषण शामिल हैं.
कॉन्सेप्ट पेज टेक्स्ट का स्ट्रक्चर और स्टाइल में बताया गया है कि [[slides_api_short]] पैराग्राफ़ की स्टाइल से जुड़ी जानकारी को कैसे दिखाता है.
Slides API की मदद से, पैराग्राफ़ के स्टाइल अपडेट किए जा सकते हैं, सामान्य पैराग्राफ़ को बुलेट वाली सूचियों में बदला जा सकता है, और पैराग्राफ़ से बुलेट हटाए जा सकते हैं.
पैराग्राफ को सूची में बदलना
पैराग्राफ़ को बुलेट वाली सूची में बदलना, पैराग्राफ़ को फ़ॉर्मैट करने का एक सामान्य तरीका है. यहां दिए गए उदाहरण में, किसी आकार के सभी पैराग्राफ़ को बिंदु वाली सूची में बदला गया है. साथ ही, इस्तेमाल करने के लिए बिंदु वाले एक खास ग्लिफ़ के बारे में बताया गया है.
Apps Script
/** * 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); } };
शुरू करें
// 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
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}"