Trabalhar com listas

A API Google Docs oferece suporte à conversão de parágrafos simples em listas com marcadores e à remoção de marcadores de parágrafos.

Converter um parágrafo em uma lista

Uma operação de formatação de parágrafos comum é converter parágrafos em uma lista com marcadores.

Para criar uma lista, use o método documents.batchUpdate e forneça um CreateParagraphBulletsRequest. Inclua um Range para especificar as células afetadas e um BulletGlyphPreset para definir o padrão do marcador.

Todos os parágrafos que se sobrepõem ao intervalo especificado são marcados com marcadores. Se o intervalo especificado se sobrepor a uma tabela, os marcadores serão aplicados nas células da tabela. O nível de aninhamento de cada parágrafo é determinado pela contagem de guias principais na frente de cada parágrafo.

Não é possível ajustar o nível de aninhamento de um marcador existente. Em vez disso, é necessário excluir o marcador, definir as guias à frente do parágrafo e criá-lo novamente. Para mais informações, consulte Remover marcadores de uma lista.

Também é possível usar CreateParagraphBulletsRequest para mudar o estilo de marcador de uma lista.

O exemplo de código a seguir mostra uma solicitação em lote que primeiro insere texto no início do documento e, em seguida, cria uma lista dos parágrafos que abrangem os primeiros 50 caracteres. O BulletGlyphPreset usa BULLET_ARROW_DIAMOND_DISC, o que significa que os três primeiros níveis de aninhamento da lista com marcadores são representados por uma seta, um losango e um disco.

Java

List<Request> requests = new ArrayList<>();
requests.add(new Request().setInsertText(new InsertTextRequest()
        .setText("Item One\n")
        .setLocation(new Location().setIndex(1).setTabId(TAB_ID))));

requests.add(new Request().setCreateParagraphBullets(
        new CreateParagraphBulletsRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(50)
                        .setTabId(TAB_ID))
                .setBulletPreset("BULLET_ARROW_DIAMOND_DISC")));

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

Python

requests = [
        {
        'insertText': {
            'location': {
                'index': 1,
                'tabId': TAB_ID
            },
            'text': 'Item One\n',
        }}, {
        'createParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex':  50,
                'tabId': TAB_ID
            },
            'bulletPreset': 'BULLET_ARROW_DIAMOND_DISC',
        }
    }
]

result = service.documents().batchUpdate(
    documentId=DOCUMENT_ID, body={'requests': requests}).execute()
Converta um parágrafo em uma lista.
Figura 1. Converta um parágrafo em uma lista.

Remover marcadores de uma lista

Para remover marcadores de uma lista de parágrafos, use o método documents.batchUpdate e forneça um DeleteParagraphBulletsRequest. Inclua um Range para especificar as células afetadas.

O método exclui todos os marcadores que se sobrepõem ao intervalo fornecido, independentemente do nível de aninhamento. Para preservar visualmente o nível de aninhamento, a indentação é adicionada ao início de cada parágrafo correspondente.

O exemplo de código a seguir mostra uma solicitação em lote que exclui marcadores de uma lista de parágrafos.

Java

List<Request> requests = new ArrayList<>();
requests.add(new Request().setDeleteParagraphBullets(
        new DeleteParagraphBulletsRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(50)
                        .setTabId(TAB_ID))));

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

Python

requests = [
        {
        'deleteParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex':  50,
                'tabId': TAB_ID
            },
        }
    }
]

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