목록 사용

Google Docs API는 새 문서에서 목록을 만들고, 기존 일반 단락을 글머리 기호 목록으로 변환하고, 단락에서 글머리 기호를 삭제하는 기능을 지원합니다.

새 문서에 번호가 매겨진 목록 만들기

Docs API는 텍스트를 삽입한 다음 단일 일괄 요청에서 텍스트에 목록 스타일을 적용하여 새 문서에 번호가 매겨진 목록을 만드는 것을 지원합니다.

새 문서에서 번호가 매겨진 목록을 만들려면 다음 단계를 따르세요.

  1. documents.create 메서드를 사용하여 문서를 만듭니다.

  2. documents.batchUpdate 메서드를 사용하고 InsertTextRequest을 제공하여 문서에 콘텐츠를 추가합니다. 줄바꿈 문자 (\n)를 사용하여 목록 항목을 구분합니다.

  3. 동일한 일괄 업데이트에 CreateParagraphBulletsRequest, 텍스트 범위를 지정하는 Range, 번호 매기기 패턴을 설정하는 BulletGlyphPreset을 포함합니다.

다음 코드 샘플은 문서를 만든 다음 세 개의 항목을 번호가 매겨진 목록으로 삽입하는 방법을 보여줍니다. BulletGlyphPresetNUMBERED_DECIMAL_ALPHA_ROMAN을 사용하여 목록의 형식을 지정합니다. 즉, 번호가 매겨진 목록의 처음 세 개의 중첩 수준은 십진수, 소문자, 소문자 로마 숫자로 표시됩니다.

자바

Document doc = new Document().setTitle("New List Document");
doc = docsService.documents().create(doc).execute();
String documentId = doc.getDocumentId();

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

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

BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
docsService.documents().batchUpdate(documentId, body).execute();

System.out.println("Created document with ID: " + documentId);

Python

title = 'New List Document'
body = {'title': title}
doc = service.documents().create(body=body).execute()
document_id = doc.get('documentId')

requests = [
    {
        'insertText': {
            'location': {
                'index': 1,
                'tabId': TAB_ID
            },
            'text': 'Item 1\nItem 2\nItem 3\n'
        }
    },
    {
        'createParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex': 22,
                'tabId': TAB_ID
            },
            'bulletPreset': 'NUMBERED_DECIMAL_ALPHA_ROMAN'
        }
    }
]

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

print(f"Created document with ID: {document_id}")

TAB_ID를 목록 콘텐츠가 포함된 탭의 ID로 바꿉니다.

단락을 목록으로 변환하기

일반적인 단락 서식 지정 작업은 기존 단락을 글머리 기호 목록으로 변환하는 것입니다.

목록을 만들려면 documents.batchUpdate 메서드를 사용하고 CreateParagraphBulletsRequest를 제공합니다. Range를 포함하여 영향을 받는 텍스트를 지정하고 BulletGlyphPreset를 포함하여 글머리 기호의 패턴을 설정합니다.

지정된 범위와 겹치는 모든 단락에 글머리 기호가 표시됩니다. 지정된 범위가 표와 겹치는 경우 글머리 기호가 표 셀 내에 적용됩니다. 각 단락의 중첩 수준은 각 단락 앞에 있는 선행 탭을 계산하여 결정됩니다.

기존 글머리 기호의 중첩 수준은 조정할 수 없습니다. 대신 글머리 기호를 삭제하고 단락 앞에 선행 탭을 설정한 다음 글머리 기호를 다시 만들어야 합니다. 자세한 내용은 목록에서 글머리 기호 삭제하기를 참고하세요.

CreateParagraphBulletsRequest를 사용하여 기존 목록의 글머리기호 스타일을 변경할 수도 있습니다.

다음 코드 샘플은 먼저 문서 시작 부분에 텍스트를 삽입한 다음 처음 50개 문자에 걸쳐 있는 단락에서 목록을 만드는 일괄 요청을 보여줍니다. BulletGlyphPresetBULLET_ARROW_DIAMOND_DISC을 사용하므로 글머리 기호 목록의 처음 세 가지 중첩 수준은 화살표, 다이아몬드, 디스크로 표시됩니다.

자바

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

TAB_ID를 목록 콘텐츠가 포함된 탭의 ID로 바꾸거나 생략하여 문서의 첫 번째 탭으로 기본 설정합니다.

단락을 목록으로 변환합니다.
그림 1. 단락을 목록으로 변환합니다.

목록에서 글머리 기호 삭제

단락 목록에서 글머리 기호를 삭제하려면 documents.batchUpdate 메서드를 사용하고 DeleteParagraphBulletsRequest를 제공합니다. 영향을 받는 텍스트를 지정하는 Range를 포함합니다.

이 메서드는 중첩 수준과 관계없이 지정된 범위와 겹치는 모든 글머리 기호를 삭제합니다. 중첩 수준을 시각적으로 유지하기 위해 각 해당 단락의 시작 부분에 들여쓰기가 추가됩니다.

다음 코드 샘플은 단락 목록에서 글머리 기호를 삭제하는 일괄 요청을 보여줍니다.

자바

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

TAB_ID를 목록 콘텐츠가 포함된 탭의 ID로 바꾸거나 생략하여 문서의 첫 번째 탭으로 기본 설정합니다.