Trabalhar com listas

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

Converter um parágrafo em uma lista

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

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

Todos os parágrafos que se sobrepõem ao intervalo especificado estão com marcadores. Se o valor especificado se sobrepõe a uma tabela, os marcadores são aplicados às células da tabela. O O nível de aninhamento de cada parágrafo é determinado pela contagem das guias à frente de cada parágrafo.

Não é possível ajustar o nível de aninhamento de um marcador existente. Em vez disso, você deve excluir o marcador, colocar as guias à frente do parágrafo e, em seguida, crie o marcador novamente. Para mais informações, consulte Remover marcadores de uma lista.

Você também pode usar CreateParagraphBulletsRequest para mudar o estilo do marcador para uma lista existente.

O exemplo de código a seguir mostra uma solicitação em lote que primeiro insere texto na 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, que significa os três primeiros níveis de aninhamento da as listas com marcadores são representadas 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 documents.batchUpdate e forneça um DeleteParagraphBulletsRequest Inclua um Range para especificar células afetadas.

O método exclui todos os marcadores que se sobrepõem ao intervalo especificado, independentemente de aninhamento. Para preservar visualmente o nível de aninhamento, o recuo é adicionado ao no 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()