सामान्य लेखन

Google Slides API की मदद से, प्रज़ेंटेशन पेजों पर एलिमेंट जोड़े जा सकते हैं और उनमें बदलाव किया जा सकता है. इस पेज पर दिए गए उदाहरणों में, presentations.batchUpdate तरीके का इस्तेमाल करके, पढ़ने से जुड़ी सामान्य कार्रवाइयां करने का तरीका बताया गया है.

इन उदाहरणों में, इन वैरिएबल का इस्तेमाल किया गया है:

  • PRESENTATION_ID—इससे पता चलता है कि आपको presentation ID कहां देना है. इस आईडी की वैल्यू, प्रज़ेंटेशन यूआरएल से पता लगाई जा सकती है.
  • PAGE_ID—इससे पता चलता है कि पेज ऑब्जेक्ट आईडी कहां दिया जाता है. इसकी वैल्यू को यूआरएल से या एपीआई के रीड अनुरोध का इस्तेमाल करके वापस पाया जा सकता है.
  • PAGE_ELEMENT_ID—इससे पता चलता है कि पेज एलिमेंट ऑब्जेक्ट आईडी कहां दिया जाता है. आपके पास इस आईडी को उन एलिमेंट के लिए तय करने का विकल्प होता है जिन्हें आपने बनाया है. हालांकि, ऐसा कुछ पाबंदियों के साथ किया जा सकता है. इसके अलावा, Slides API को अपने-आप आईडी बनाने की अनुमति भी दी जा सकती है. एपीआई के रीड अनुरोध के ज़रिए, एलिमेंट आईडी वापस पाए जा सकते हैं.

इन उदाहरणों को एचटीटीपी अनुरोधों के तौर पर दिखाया गया है, ताकि ये किसी भी भाषा में उपलब्ध हों. Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, अलग-अलग भाषाओं में बैच अपडेट लागू करने का तरीका जानने के लिए, शेप और टेक्स्ट जोड़ना लेख पढ़ें.

किसी स्लाइड में टेक्स्ट बॉक्स जोड़ना

यहां दिए गए presentations.batchUpdate कोड के सैंपल में, CreateShapeRequest तरीके का इस्तेमाल करके, PAGE_ID से तय की गई स्लाइड में नया टेक्स्ट बॉक्स (जिसमें "My Added Text Box" स्ट्रिंग शामिल है) जोड़ने का तरीका बताया गया है. अनुरोध के मुख्य हिस्से में दो अनुरोध दिए गए हैं. पहला अनुरोध, दिए गए साइज़ और जगह के हिसाब से टेक्स्ट बॉक्स की शेप बनाने के लिए है. दूसरा अनुरोध, उसमें टेक्स्ट डालने के लिए है.

पहले अनुरोध में, टेक्स्ट बॉक्स के लिए इस्तेमाल किए जाने वाले ऑब्जेक्ट आईडी की जानकारी दी गई है. इससे दूसरे अनुरोध में, उसी एपीआई कॉल में इसका इस्तेमाल किया जा सकता है. इससे ओवरहेड कम हो जाता है.

किसी स्लाइड में टेक्स्ट बॉक्स जोड़ने के लिए, अनुरोध प्रोटोकॉल इस तरह से होता है:

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

स्लाइड में इमेज जोड़ना

यहां दिए गए presentations.batchUpdate कोड सैंपल में, CreateImageRequest तरीके का इस्तेमाल करके, PAGE_ID से तय की गई स्लाइड में इमेज जोड़ने का तरीका बताया गया है. एपीआई, IMAGE_URL का इस्तेमाल करके इमेज को वापस लाता है. इस अनुरोध से, इमेज को स्लाइड में ज़रूरत के हिसाब से बड़ा किया जाता है और उसे सही जगह पर रखा जाता है.

किसी स्लाइड में इमेज जोड़ने के लिए, अनुरोध करने का प्रोटोकॉल यहां दिया गया है:

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

किसी पेज या पेज एलिमेंट को मिटाना

नीचे दिए गए presentations.batchUpdate कोड सैंपल में बताया गया है कि दो अलग-अलग अनुरोधों का इस्तेमाल करके, PAGE_ELEMENT_ID से तय किए गए पेज एलिमेंट और PAGE_ID से तय की गई स्लाइड को मिटाने के लिए, DeleteObjectRequest तरीके का इस्तेमाल कैसे किया जाता है.

किसी पेज या पेज एलिमेंट को मिटाने का अनुरोध करने का प्रोटोकॉल यहां दिया गया है:

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

किसी शेप में मौजूद टेक्स्ट में बदलाव करना

यहां दिए गए presentations.batchUpdate कोड सैंपल में, DeleteTextRequest तरीके का इस्तेमाल करके, PAGE_ELEMENT_ID में दिए गए शेप में मौजूद टेक्स्ट के किसी हिस्से को बदलने का तरीका बताया गया है. इसके लिए, सबसे पहले ज़ीरो-आधारित startIndex का इस्तेमाल करके टेक्स्ट मिटाएं. इसके बाद, उस जगह पर नया टेक्स्ट डालें. इस उदाहरण में, ओरिजनल टेक्स्ट स्ट्रिंग "My Shape Text: ????" को "My Shape Text: Trapezoid" से बदल दिया गया है.

इस अनुरोध का असर, सिर्फ़ तय की गई शेप में मौजूद टेक्स्ट पर पड़ता है. किसी प्रज़ेंटेशन में मौजूद हर जगह के टेक्स्ट को बदलने के लिए, ReplaceAllTextRequest तरीके का इस्तेमाल करें.

किसी शेप में मौजूद टेक्स्ट में बदलाव करने के लिए, अनुरोध का यह प्रोटोकॉल इस्तेमाल करें:

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

किसी शेप टैग को इमेज से बदलना

टैग, टेक्स्ट बॉक्स या शेप होते हैं. इनका नाम यूनीक स्ट्रिंग होता है. जैसे, "account-holder-name".

यहां दिए गए presentations.batchUpdate कोड सैंपल में दिखाया गया है कि CreateImageRequest तरीके का इस्तेमाल करके, किसी शेप टैग के एक इंस्टेंस को इमेज से कैसे बदला जाए. ऐसा करते समय, इमेज की पोज़िशन वही रहती है और उसे टैग के साइज़ के हिसाब से स्केल किया जाता है. साथ ही, इमेज का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) भी बना रहता है.

इस अनुरोध का इस्तेमाल, एक इमेज को दूसरी इमेज से बदलने के लिए भी किया जा सकता है. इस अनुरोध में, नई इमेज जोड़ना और फिर टैग मिटाना शामिल है.

CreateImageRequest तरीके से, सिर्फ़ बताए गए आकार को बदला जाता है. किसी प्रज़ेंटेशन में मौजूद सभी टैग शेप को बदलने के लिए, ReplaceAllShapesWithImageRequest तरीके का इस्तेमाल करें.

शेप टैग में ये PageElement प्रॉपर्टी होती हैं. इन्हें presentations.pages.get अनुरोध का इस्तेमाल करके ढूंढा जा सकता है:

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

यह शेप, PAGE_ID एट्रिब्यूट से तय की गई स्लाइड पर मौजूद होता है. आकार की जगह इस्तेमाल की जाने वाली इमेज तय करने के लिए, एपीआई IMAGE_URL का इस्तेमाल करके इमेज को वापस पाता है. टैग के साइज़ के हिसाब से इमेज का आसपेक्ट रेशियो बनाए रखने के लिए, CreateImageRequest तरीके का इस्तेमाल किया जाता है. इससे इमेज का साइज़, टैग के साइज़ और स्केल के प्रॉडक्ट के बराबर सेट हो जाता है. साथ ही, इमेज के स्केल फ़ैक्टर, 1 पर सेट हो जाते हैं. ज़्यादा जानकारी के लिए, आस्पेक्ट रेशियो बनाए रखना लेख पढ़ें.

किसी शेप टैग को इमेज से बदलने के लिए, अनुरोध प्रोटोकॉल यहां दिया गया है:

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