텍스트 편집 및 스타일 지정

이 페이지에서는 Slides API를 사용하여 프레젠테이션에서 텍스트를 편집하고 스타일을 지정하는 방법에 대해 설명합니다.

텍스트 정보

프레젠테이션에서 텍스트는 항상 도형 또는 테이블 셀 안에 포함됩니다. 해당 API를 사용하여 다음과 같은 다양한 방법으로 텍스트를 수정할 수 있습니다.

  • 프레젠테이션에서 텍스트를 삽입 또는 삭제하거나 바꿀 수 있습니다.
  • 글머리 기호 목록을 만드는 단락 서식을 추가할 수 있습니다.
  • 굵은 글꼴, 기울임꼴, 색, 글꼴 크기 또는 하이퍼링크와 같은 문자 서식을 변경할 수 있습니다.

Slides API에서 텍스트 스타일 지정이 작동하는 방식에 대한 일반적인 개요는 개념 페이지 텍스트 구조 및 스타일 지정을 참조하세요.

텍스트 삽입, 삭제 또는 바꾸기

Slides API를 사용하여 프레젠테이션에서 텍스트를 바꿀 수 있는 두 가지 방법이 있습니다. 전체 찾기 및 바꾸기를 수행하거나 명시적으로 텍스트를 삭제 및 추가하는 방법입니다. 두 방법 모두 batchUpdate 메서드를 사용하지만 요청 유형이 서로 다릅니다.

전체 찾기 및 바꾸기

ReplaceAllTextRequest를 사용하여 프레젠테이션 전체에 걸쳐 찾기 및 바꾸기를 수행합니다.

데이터 병합 가이드의 텍스트 병합 섹션은 이 요청 유형을 사용할 수 있는 방법에 대한 예를 제공합니다.

도형 내에서 텍스트 바꾸기

Slides API를 사용하여 도형의 텍스트 내용을 수정할 수 있습니다. 개별 범위의 텍스트를 제거할 수 있으며 특정 위치에 텍스트를 삽입할 수 있습니다.

이러한 작업은 InsertTextRequestDeleteTextRequest를 사용하여 수행합니다.

특정 영역의 텍스트 바꾸기는 삭제 후 삽입으로 구성되며, 다음 단계를 사용하여 수행할 수 있습니다.

  1. 텍스트를 포함하는 페이지 요소를 식별합니다.
  2. 바꿀 텍스트의 시작 위치와 끝 위치를 식별합니다.
  3. 다음 두 요청과 함께 batchUpdate를 호출합니다.
    1. DeleteTextRequest (삭제할 텍스트 범위 지정)
    2. InsertTextRequest (삽입할 텍스트 문자열뿐 아니라 동일한 시작 위치 지정)

이런 방식으로 텍스트를 바꿀 때 원자성(atomicity)을 보장하려면 동일한 batchUpdate 호출에 두 요청을 포함해야 합니다. 다음 예시는 이 과정을 보여주며, 도형 내 모든 텍스트를 새 텍스트로 바꿉니다.

Java

// Remove existing text in the shape, then insert the new text.
List<Request> requests = new ArrayList<>();
requests.add(new Request()
        .setDeleteText(new DeleteTextRequest()
                .setObjectId(shapeId)
                .setTextRange(new Range()
                    .setType("ALL"))));
requests.add(new Request()
        .setInsertText(new InsertTextRequest()
                .setObjectId(shapeId)
                .setInsertionIndex(0)
                .setText(replacementText)));

// Execute the requests.
BatchUpdatePresentationRequest body =
        new BatchUpdatePresentationRequest().setRequests(requests);
BatchUpdatePresentationResponse response =
        slidesService.presentations().batchUpdate(presentationId, body).execute();

System.out.println("Replaced text in shape with ID: " + shapeId);

Python

# Remove existing text in the shape, then insert new text.
requests = []
requests.append({
    'deleteText': {
        'objectId': shape_id,
        'textRange': {
            'type': 'ALL'
        }
    }
})
requests.append({
    'insertText': {
        'objectId': shape_id,
        'insertionIndex': 0,
        'text': replacement_text
    }
})

# Execute the requests.
body = {
    'requests': requests
}
response = slides_service.presentations().batchUpdate(
    presentationId=presentation_id, body=body).execute()
print('Replaced text in shape with ID: {0}'.format(shape_id))

PHP

// Remove existing text in the shape, then insert new text.
$requests = array();
$requests[] = new Google_Service_Slides_Request(array(
  'deleteText' => array(
    'objectId' => $shapeId,
    'textRange' => array(
      'type' => 'ALL'
    )
  )
));
$requests[] = new Google_Service_Slides_Request(array(
  'insertText' => array(
    'objectId' => $shapeId,
    'insertionIndex' => 0,
    'text' => $replacementText
  )
));

// Execute the requests.
$batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
  'requests' => $requests
));
$response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
printf("Replaced text in shape with ID: %s", $shapeId);

문자 서식 변경

문자 서식은 프레젠테이션에서 서체, 색, 하이퍼링크를 비롯한 텍스트 문자의 렌더링을 결정합니다.

개념 페이지 텍스트 구조 및 스타일 지정은 Slides API가 텍스트 스타일 지정 정보를 나타내는 방법에 대해 설명합니다.

텍스트의 문자 서식을 변경하려면 UpdateTextStyleRequestbatchUpdate를 함께 사용합니다. 다음 정보를 포함하는 범위뿐만 아니라 텍스트를 포함하는 도형 또는 테이블 셀의 ID를 제공해야 합니다.

  • 지정자 FIXED_RANGE: 스타일을 지정할 텍스트 범위를 정의하는 시작 및 끝 인덱스와 함께.
  • 지정자 FROM_START_INDEX: 스타일을 지정할 텍스트 범위의 시작을 정의하는 시작 인덱스와 함께.
  • 지정자 ALL: 인덱스 없이 대상 도형의 모든 텍스트 스타일 지정.

다음은 도형에 포함된 텍스트에서 몇몇 텍스트 스타일 지정 작업을 수행한 예입니다.

  • 0-4자의 글꼴을 굵은 기울임꼴로 설정합니다.
  • 5-9자의 색을 blue 14포인트 Times New Roman 글꼴로 설정합니다.
  • 10-14자를 www.example.com에 하이퍼링크합니다.

요청 목록을 만든 다음 단일 batchUpdate 호출을 사용하여 이를 간단히 수행할 수 있습니다.

Java

// Update the text style so that the first 5 characters are bolded
// and italicized, and the next 5 are displayed in blue 14 pt Times
// New Roman font, and the next five are hyperlinked.
List<Request> requests = new ArrayList<>();
requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
                .setObjectId(shapeId)
                .setTextRange(new Range()
                        .setType("FIXED_RANGE")
                        .setStartIndex(0)
                        .setEndIndex(5))
                .setStyle(new TextStyle()
                        .setBold(true)
                        .setItalic(true))
                .setFields("bold,italic")));
requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
                .setObjectId(shapeId)
                .setTextRange(new Range()
                        .setType("FIXED_RANGE")
                        .setStartIndex(5)
                        .setEndIndex(10))
                .setStyle(new TextStyle()
                        .setFontFamily("Times New Roman")
                        .setFontSize(new Dimension()
                                .setMagnitude(14.0)
                                .setUnit("PT"))
                        .setForegroundColor(new OptionalColor()
                                .setOpaqueColor(new OpaqueColor()
                                        .setRgbColor(new RgbColor()
                                                .setBlue(1.0F)
                                                .setGreen(0.0F)
                                                .setRed(0.0F)))))
                .setFields("foregroundColor,fontFamily,fontSize")));
requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
                .setObjectId(shapeId)
                .setTextRange(new Range()
                        .setType("FIXED_RANGE")
                        .setStartIndex(10)
                        .setEndIndex(15))
                .setStyle(new TextStyle()
                        .setLink(new Link()
                                .setUrl("www.example.com")))
                .setFields("link")));

// Execute the requests.
BatchUpdatePresentationRequest body =
        new BatchUpdatePresentationRequest().setRequests(requests);
BatchUpdatePresentationResponse response =
        slidesService.presentations().batchUpdate(presentationId, body).execute();

System.out.println("Updated text style for shape with ID: " + shapeId);

Python

# Update the text style so that the first 5 characters are bolded
# and italicized, the next 5 are displayed in blue 14 pt Times
# New Roman font, and the next 5 are hyperlinked.
requests = [
    {
        'updateTextStyle': {
            'objectId': shape_id,
            'textRange': {
                'type': 'FIXED_RANGE',
                'startIndex': 0,
                'endIndex': 5
            },
            'style': {
                'bold': True,
                'italic': True
            },
            'fields': 'bold,italic'
        }
    },
    {
        'updateTextStyle': {
            'objectId': shape_id,
            'textRange': {
                'type': 'FIXED_RANGE',
                'startIndex': 5,
                'endIndex': 10
            },
            'style': {
                'fontFamily': 'Times New Roman',
                'fontSize': {
                    'magnitude': 14,
                    'unit': 'PT'
                },
                'foregroundColor': {
                    'opaqueColor': {
                        'rgbColor': {
                            'blue': 1.0,
                            'green': 0.0,
                            'red': 0.0
                        }
                    }
                }
            },
            'fields': 'foregroundColor,fontFamily,fontSize'
        }
    },
    {
        'updateTextStyle': {
            'objectId': shape_id,
            'textRange': {
                'type': 'FIXED_RANGE',
                'startIndex': 10,
                'endIndex': 15
            },
            'style': {
                'link': {
                    'url': 'www.example.com'
                }
            },
            'fields': 'link'
        }
    }
]

# Execute the requests.
body = {
    'requests': requests
}
response = slides_service.presentations().batchUpdate(
    presentationId=presentation_id, body=body).execute()
print('Updated the text style for shape with ID: {0}'.format(shape_id))

PHP

// Update the text style so that the first 5 characters are bolded
// and italicized, the next 5 are displayed in blue 14 pt Times
// New Roman font, and the next 5 are hyperlinked.
$requests = array();
$requests[] = new Google_Service_Slides_Request(array(
  'updateTextStyle' => array(
    'objectId' => $shapeId,
    'textRange' => array(
      'type' => 'FIXED_RANGE',
      'startIndex' => 0,
      'endIndex' => 5
    ),
    'style' => array(
      'bold' => true,
      'italic' => true
    ),
    'fields' => 'bold,italic'
  )
));
$requests[] = new Google_Service_Slides_Request(array(
  'updateTextStyle' => array(
    'objectId' => $shapeId,
    'textRange' => array(
      'type' => 'FIXED_RANGE',
      'startIndex' => 5,
      'endIndex' => 10
    ),
    'style' => array(
      'fontFamily' => 'Times New Roman',
      'fontSize' => array(
        'magnitude' => 14,
        'unit' => 'PT'
      ),
      'foregroundColor' => array(
        'opaqueColor' => array(
          'rgbColor' => array(
            'blue' => 1.0,
            'green' => 0.0,
            'red' => 0.0
          )
        )
      )
    ),
    'fields' => 'foregroundColor,fontFamily,fontSize'
  )
));
$requests[] = new Google_Service_Slides_Request(array(
  'updateTextStyle' => array(
    'objectId' => $shapeId,
    'textRange' => array(
      'type' => 'FIXED_RANGE',
      'startIndex' => 10,
      'endIndex' => 15
    ),
    'style' => array(
      'link' => array(
        'url' => 'www.example.com'
      )
    ),
    'fields' => 'link'
  )
));

// Execute the requests.
$batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
  'requests' => $requests
));
$response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
printf("Updated the text style for shape with ID: %s", $shapeId);

단락 서식 변경

단락 서식은 프레젠테이션에서 텍스트 블록이 렌더링되는 방법을 결정합니다(정렬, 들여쓰기, 목록 방향 등).

개념 페이지 텍스트 구조 및 스타일 지정은 Slides API가 단락 스타일 지정 정보를 나타내는 방법에 대해 설명합니다.

Slides API는 다음 섹션에 설명된 대로 일반 단락을 글머리 기호 목록으로 변환하는 작업을 지원합니다.

단락을 목록으로 변환

단락을 글머리 기호 목록으로 변환하는 작업은 일반적인 단락 서식 작업입니다. 다음 예시에서는 도형의 모든 단락을 글머리 기호 목록으로 변환하고, 사용할 명시적인 글머리 기호 글리프를 지정합니다.

Java

// Add arrow-diamond-disc bullets to all text in the shape.
List<Request> requests = new ArrayList<>();
requests.add(new Request()
        .setCreateParagraphBullets(new CreateParagraphBulletsRequest()
                .setObjectId(shapeId)
                .setTextRange(new Range()
                        .setType("ALL"))
                .setBulletPreset("BULLET_ARROW_DIAMOND_DISC")));

// Execute the request.
BatchUpdatePresentationRequest body =
        new BatchUpdatePresentationRequest().setRequests(requests);
BatchUpdatePresentationResponse response =
        slidesService.presentations().batchUpdate(presentationId, body).execute();
System.out.println("Added bullets to text in shape with ID: " + shapeId);

Python

# Add arrow-diamond-disc bullets to all text in the shape.
requests = [
    {
        'createParagraphBullets': {
            'objectId': shape_id,
            'textRange': {
                'type': 'ALL'
            },
            'bulletPreset': 'BULLET_ARROW_DIAMOND_DISC'
        }
    }
]

# Execute the requests.
body = {
    'requests': requests
}
response = slides_service.presentations().batchUpdate(
    presentationId=presentation_id, body=body).execute()
print('Added bullets to text in shape with ID: {0}'.format(shape_id))

PHP

// Add arrow-diamond-disc bullets to all text in the shape.
$requests = array();
$requests[] = new Google_Service_Slides_Request(array(
  'createParagraphBullets' => array(
    'objectId' => $shapeId,
    'textRange' => array(
      'type' => 'ALL'
    ),
    'bulletPreset' => 'BULLET_ARROW_DIAMOND_DISC'
  )
));

// Execute the request.
$batchUpdateRequest = new Google_Service_Slides_BatchUpdatePresentationRequest(array(
  'requests' => $requests
));
$response = $slidesService->presentations->batchUpdate($presentationId, $batchUpdateRequest);
printf("Added bullets to text in shape with ID: %s", $shapeId);

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.