टेक्स्ट डालें, मिटाएं, और एक जगह से दूसरी जगह ले जाएं

Google Docs API से, आपको किसी दस्तावेज़ में टेक्स्ट डालने या मिटाने की सुविधा मिलती है. टेक्स्ट को एक जगह से दूसरी जगह ले जाने में, कॉन्टेंट के get से पहले, दोनों कार्रवाइयां शामिल होती हैं.

आपके पास दस्तावेज़ के किसी भी सेगमेंट (मुख्य हिस्सा, हेडर, फ़ुटर या फ़ुटनोट) में टेक्स्ट डालने या मिटाने का विकल्प होता है.

टेक्स्ट डालें

किसी दस्तावेज़ में टेक्स्ट डालने के लिए, documents.batchUpdate तरीके का इस्तेमाल करें और InsertTextRequest को पेलोड के तौर पर टेक्स्ट और जगह के साथ शामिल करें.

नीचे दिए गए कोड सैंपल से पता चलता है कि किसी दस्तावेज़ के मुख्य हिस्से में, इंडेक्स करने के लिए तय की गई जगहों पर किस तरह टेक्स्ट स्ट्रिंग की सीरीज़ शामिल की जा सकती है. इस उदाहरण में तीन टारगेट ऑफ़सेट (25, 50, और 75) का इस्तेमाल किया गया है और हर जगह पर दस वर्णों वाली स्ट्रिंग डाली गई है.

Java

        List<Request> requests = new ArrayList<>();
        requests.add(new Request().setInsertText(new InsertTextRequest()
                .setText(text1)
                .setLocation(new Location().setIndex(25))));

        requests.add(new Request().setInsertText(new InsertTextRequest()
                .setText(text2)
                .setLocation(new Location().setIndex(50))));

        requests.add(new Request().setInsertText(new InsertTextRequest()
                .setText(text3)
                .setLocation(new Location().setIndex(75))));

        BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
        BatchUpdateDocumentResponse response = docsService.documents()
                .batchUpdate(DOCUMENT_ID, body).execute();

PHP

$requests = array();
$requests[] = new Google_Service_Docs_Request(array(
    'insertText' => array(
        'text' => $text1,
        'location' => array(
            'index' => 25,
        ),
    ),
    'insertText' => array(
        'text' => $text2,
        'location' => array(
            'index' => 50,
        ),
    ),
    'insertText' => array(
        'text' => $text3,
        'location' => array(
            'index' => 75,
        ),
    ),
));

$batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array(
    'requests' => $requests
));

$response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);

Python

    requests = [
         {
            'insertText': {
                'location': {
                    'index': 25,
                },
                'text': text1
            }
        },
                 {
            'insertText': {
                'location': {
                    'index': 50,
                },
                'text': text2
            }
        },
                 {
            'insertText': {
                'location': {
                    'index': 75,
                },
                'text': text3
            }
        },
    ]

    result = service.documents().batchUpdate(
        documentId=DOCUMENT_ID, body={'requests': requests}).execute()

हर इंसर्शन, ज़्यादा संख्या वाले सभी इंडेक्स को जोड़े गए टेक्स्ट के साइज़ के हिसाब से बढ़ा देती है. इस उदाहरण में, इंडेक्स में हुए बदलावों की वजह से, पहले से ही डेटा इकट्ठा करने की प्रोसेस को कैलकुलेट किया जाता है, ताकि नए, सही ऑफ़सेट पर बाद में जोड़े जा सकें. इसलिए, 25, 50, और 75 के ओरिजनल टारगेट ऑफ़सेट पर इंसर्ट करने के लिए, असल इंसर्शन इंडेक्स ये हैं:

  • पहली इंसर्शन की सुविधा से ऑफ़सेट 25 पर 10 वर्ण जोड़े जाते हैं.
  • दूसरी इंसर्शन सुविधा के ऑफ़सेट 50+10=60 पर 10 वर्ण जोड़े जाते हैं.
  • थर्ड इंसर्शन में ऑफ़सेट 75+10+10=95 पर 10 वर्ण जोड़े गए हैं.

टेक्स्ट मिटाना

किसी दस्तावेज़ से टेक्स्ट मिटाने के लिए, पहले एक Range बनाएं जो मिटाए जाने वाले टेक्स्ट की रेंज के बारे में बताता हो. इसके बाद, documents.batchUpdate तरीके का इस्तेमाल करें और DeleteContentRangeRequest को शामिल करें.

नीचे दिए गए कोड सैंपल से पता चलता है कि किसी दस्तावेज़ के मुख्य हिस्से में इंडेक्स 10 और इंडेक्स 24 के बीच का टेक्स्ट कैसे मिटाया जा सकता है.

Java

        List<Request> requests = new ArrayList<>();
        requests.add(new Request().setDeleteContentRange(
                new DeleteContentRangeRequest()
                        .setRange(new Range()
                                .setStartIndex(10)
                                .setEndIndex(24))
            ));

        BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
        BatchUpdateDocumentResponse response = docsService.documents()
                .batchUpdate(DOCUMENT_ID, body).execute();

PHP

$requests = array();
$requests[] = new Google_Service_Docs_Request(array(
    'deleteContentRange' => array(
        'range' => array(
            'startIndex' => 10,
            'endIndex' => 24
        ),
    ),
));

$batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array(
    'requests' => $requests
));

$response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);

Python

    requests = [
        {
            'deleteContentRange': {
                'range': {
                    'startIndex': 10,
                    'endIndex': 24,
                }

            }

        },
    ]
    result = service.documents().batchUpdate(
        documentId=DOCUMENT_ID, body={'requests': requests}).execute()

मामले को पीछे की ओर लिखकर उन्हें आसान बनाएं. इंसर्शन की तरह, टेक्स्ट को मिटाने से, सेगमेंट में "नीचे दिए गए" सभी टेक्स्ट के इंडेक्स बदल जाते हैं. फिर से, पीछे जाकर लिखने से आपके इंडेक्स को आसानी से मैनेज किया जा सकता है.

टेक्स्ट को एक जगह से दूसरी जगह ले जाएं

टेक्स्ट को एक से दूसरी जगह ले जाने के लिए, उसे किसी एक जगह से मिटाएं और फिर उसे किसी दूसरी जगह शामिल करें. कॉन्टेंट मिटाने से आपको उसकी कॉपी नहीं मिलती (क्लिपबोर्ड जैसा कोई सिद्धांत नहीं है) इसलिए, आपको पहले रेंज का कॉन्टेंट एक्सट्रैक्ट करना होगा, ताकि आप उसे शामिल करने के अनुरोध में इस्तेमाल कर सकें.