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

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

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

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

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

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

Java

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

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

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

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,
            'tabId' => TAB_ID,
        ),
    ),
    'insertText' => array(
        'text' => $text2,
        'location' => array(
            'index' => 50,
            'tabId' => TAB_ID,
        ),
    ),
    'insertText' => array(
        'text' => $text3,
        'location' => array(
            'index' => 75,
            'tabId' => TAB_ID,
        ),
    ),
));

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

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

Python

requests = [
        {
        'insertText': {
            'location': {
                'index': 25,
                'tabId': TAB_ID
            },
            'text': text1
        }
    },
                {
        'insertText': {
            'location': {
                'index': 50,
                'tabId': TAB_ID
            },
            'text': text2
        }
    },
                {
        'insertText': {
            'location': {
                'index': 75,
                'tabId': TAB_ID
            },
            '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)
                        .setTabId(TAB_ID))
    ));

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,
            'tabId' => TAB_ID
        ),
    ),
));

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

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

Python

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

        }

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

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

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

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