إدراج النص وحذفه ونقله

تتيح لك واجهة برمجة تطبيقات "مستندات Google" إدراج نص في مستند أو حذفه. يتضمن نقل النص كلتا العمليتين، مسبوقتين بعلامة 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، ففهارس الإدراج الفعلية هي:

  • يضيف الإدخال الأول 10 أحرف بالإزاحة 25.
  • يضيف الإدخال الثاني 10 أحرف بالإزاحة 50+10=60.
  • يضيف الإدراج الثالث 10 أحرف إلى الإزاحة 75+10+10=95.

حذف النص

لحذف نص من مستند، عليك أولاً إنشاء رمز 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()

تبسيط المسائل القانونية من خلال الكتابة بخط عكسي كما هو الحال مع الإدخالات، يؤدي حذف النص إلى تغيير فهارس كل النص "أدناه" في المقطع. مرة أخرى، يمكن أن تؤدي الكتابة إلى الوراء في تبسيط عملية تعاملك مع الفهارس.

نقل النص

لنقل النص، عليك حذفه في مكان ثم إدراجه في مكان آخر. لا يمنحك حذف المحتوى نسخة منه (لا يوجد مفهوم مكافئ للحافظة) لذا يجب عليك استخراج محتوى النطاق أولاً حتى تتمكن من استخدامه في طلب الإدراج النصي.