텍스트 삽입, 삭제 및 이동

Google Docs API를 사용하면 문서에서 텍스트를 삽입하거나 삭제할 수 있습니다. 텍스트 이동에는 콘텐츠의 get 다음에 두 작업이 모두 포함됩니다.

문서의 세그먼트 (본문, 머리글, 바닥글, 각주)에 텍스트를 삽입하거나 삭제할 수 있습니다.

텍스트 삽입

문서에 텍스트를 삽입하려면 documents.batchUpdate 메서드를 사용하고 텍스트와 위치가 페이로드로 포함된 InsertTextRequest를 포함합니다.

다음 코드 샘플은 문서 본문의 지정된 색인 위치에 일련의 텍스트 문자열을 삽입하는 방법을 보여줍니다. 이 예에서는 3개의 타겟 오프셋 (25, 50, 75)을 사용하고 각 위치에 10자 길이의 문자열을 삽입합니다.

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();

2,399필리핀

$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();

2,399필리핀

$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()

거꾸로 써서 사안을 단순화하세요. 삽입과 마찬가지로 텍스트를 삭제하면 세그먼트에 있는 모든 텍스트 '아래'의 색인이 변경됩니다. 앞서 언급했듯이 뒤로 작성하면 색인 처리가 간소화될 수 있습니다.

텍스트 이동

텍스트를 이동하려면 한 위치에서 삭제한 다음 다른 곳에 삽입합니다. 콘텐츠를 삭제해도 사본은 제공되지 않으므로 (클립보드에 상응하는 개념이 없음) 먼저 범위의 콘텐츠를 추출해야 텍스트 삽입 요청에서 사용할 수 있습니다.