A API Google Docs permite inserir ou excluir texto em um documento. A movimentação de texto
envolve ambas as operações, precedidas por um get
no conteúdo.
Você pode inserir ou excluir texto em qualquer um dos segmentos de um documento (corpo, cabeçalho, rodapé ou nota de rodapé).
Inserir texto
Para inserir texto em um documento, use o método
documents.batchUpdate
e inclua um
InsertTextRequest
com o texto e o local como payload.
O exemplo de código a seguir mostra como inserir uma série de strings de texto em locais de índice especificados no corpo de um documento. No exemplo, usamos três deslocamentos de destino (25, 50 e 75) e insere uma string de dez caracteres em cada local.
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()
Cada inserção incrementa todos os índices de número mais alto pelo tamanho do texto inserido. O exemplo calcula previamente o resultado dessas mudanças de índice para que as inserções subsequentes ocorram no novo deslocamento corrigido. Assim, para inserir os deslocamentos de destino originais de 25, 50 e 75, os índices de inserção reais são:
- A primeira inserção adiciona 10 caracteres no deslocamento 25.
- A segunda inserção adiciona 10 caracteres com o deslocamento 50+10=60.
- A terceira inserção adiciona 10 caracteres no deslocamento 75+10+10=95.
Excluir texto
Para excluir o texto de um documento, primeiro crie uma
Range
que defina o intervalo de
texto a ser excluído. Em seguida, use o método documents.batchUpdate
e inclua um
DeleteContentRangeRequest
.
O exemplo de código a seguir mostra como excluir o texto entre o índice 10 e o índice 24 no corpo de um documento.
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()
Simplifique os casos escrevendo de trás para frente. Como acontece com as inserções, a exclusão do texto altera os índices de todo o texto "abaixo" do segmento. Novamente, gravar de maneira reversa pode simplificar o gerenciamento de índices.
Mover texto
Para mover o texto, exclua-o em um local e insira-o em outro lugar. A exclusão de conteúdo não fornece uma cópia dele (não há um conceito equivalente de área de transferência). Portanto, extraia o conteúdo do intervalo primeiro para poder usá-lo na solicitação de inserção de texto.
Temas relacionados
- Criar e gerenciar documentos
- Mesclar texto em um documento
- Estrutura de um arquivo do Documentos Google