Định dạng văn bản

Trang này hướng dẫn bạn cách định dạng văn bản bằng API Google Tài liệu.

Giới thiệu về định dạng

Có hai kiểu định dạng mà bạn có thể áp dụng cho nội dung văn bản của tài liệu:

  • Bạn có thể thay đổi định dạng ký tự, chẳng hạn như phông chữ, màu sắc hoặc dấu gạch dưới.
  • Bạn có thể thay đổi định dạng đoạn như thụt lề hoặc giãn cách dòng.

Thay đổi định dạng ký tự

Định dạng ký tự xác định cách hiển thị các ký tự văn bản trong tài liệu của bạn.

Mọi định dạng mà bạn áp dụng sẽ ghi đè định dạng mặc định kế thừa từ TextStyle của đoạn cơ bản. Ngược lại, mọi ký tự mà bạn không thiết lập định dạng sẽ tiếp tục kế thừa các kiểu của đoạn.

Để thay đổi định dạng ký tự của văn bản, hãy sử dụng batchUpdate với UpdateTextStyleRequest. Bạn cần cung cấp đối tượng Phạm vi bao gồm các thông tin sau:

  • segmentId xác định đầu trang, chân trang, chú thích cuối trang (hoặc phần nội dung nếu không được chỉ định) chứa văn bản.
  • startIndexendIndex xác định dải văn bản trong phân đoạn cần định dạng.

Ví dụ sau đây thực hiện một số thao tác định kiểu văn bản trên văn bản có trong tiêu đề:

  • Đặt phông chữ của các ký tự 1-5 thành kiểu in nghiêng đậm.
  • Đặt màu của các ký tự từ 6-10 thành blue phông chữ 14 pt Times New Roman.
  • Siêu liên kết các ký tự 11-15 đến www.example.com.

Một cách đơn giản để thực hiện việc này là tạo một danh sách các yêu cầu, sau đó sử dụng một lệnh gọi batchUpdate:

Java

        List<Request> requests = new ArrayList<>();
        requests.add(new Request().setUpdateTextStyle(new UpdateTextStyleRequest()
                .setTextStyle(new TextStyle()
                        .setBold(true)
                        .setItalic(true))
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(5))
                .setFields("bold")));

        requests.add(new Request()
                .setUpdateTextStyle(new UpdateTextStyleRequest()
                        .setRange(new Range()
                                .setStartIndex(6)
                                .setEndIndex(10))
                        .setTextStyle(new TextStyle()
                                .setWeightedFontFamily(new WeightedFontFamily()
                                        .setFontFamily("Times New Roman"))
                                .setFontSize(new Dimension()
                                        .setMagnitude(14.0)
                                        .setUnit("PT"))
                                .setForegroundColor(new OptionalColor()
                                        .setColor(new Color().setRgbColor(new RgbColor()
                                                .setBlue(1.0F)
                                                .setGreen(0.0F)
                                                .setRed(0.0F)))))
                        .setFields("foregroundColor,weightedFontFamily,fontSize")));

        requests.add(new Request()
                .setUpdateTextStyle(new UpdateTextStyleRequest()
                        .setRange(new Range()
                                .setStartIndex(11)
                                .setEndIndex(15))
                        .setTextStyle(new TextStyle()
                                .setLink(new Link()
                                        .setUrl("www.example.com")))
                        .setFields("link")));


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



Python

    requests = [
        {
            'updateTextStyle': {
                'range': {
                    'startIndex': 1,
                    'endIndex': 5
                },
                'textStyle': {
                    'bold': True,
                    'italic': True
                },
                'fields': 'bold,italic'
            }
        },
        {
            'updateTextStyle': {
                'range': {
                    'startIndex': 6,
                    'endIndex': 10
                },
                'textStyle': {
                    'weightedFontFamily': {
                        'fontFamily': 'Times New Roman'
                    },
                    'fontSize': {
                        'magnitude': 14,
                        'unit': 'PT'
                    },
                    'foregroundColor': {
                        'color': {
                            'rgbColor': {
                                'blue': 1.0,
                                'green': 0.0,
                                'red': 0.0
                            }
                        }
                    }
                },
                'fields': 'foregroundColor,weightedFontFamily,fontSize'
            }
        },
        {
            'updateTextStyle': {
                'range': {
                    'startIndex': 11,
                    'endIndex': 15
                },
                'textStyle': {
                    'link': {
                        'url': 'www.example.com'
                    }
                },
                'fields': 'link'
            }
        }
    ]

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

Thay đổi định dạng đoạn

API Google Tài liệu cho phép bạn cập nhật định dạng đoạn, định dạng này xác định cách các khối văn bản hiển thị trong tài liệu, bao gồm cả các tính năng như căn chỉnh và thụt lề.

Mọi định dạng mà bạn áp dụng sẽ ghi đè định dạng mặc định kế thừa từ kiểu đoạn văn bản cơ bản. Ngược lại, mọi tính năng định dạng mà bạn không thiết lập sẽ tiếp tục kế thừa từ kiểu đoạn văn bản. Để biết thêm thông tin về kiểu đoạn và tính kế thừa, hãy xem ParagraphStyle.

Ví dụ bên dưới chỉ định định dạng sau cho một đoạn:

  • Tiêu đề là kiểu được đặt tên
  • Giãn cách tùy chỉnh phía trên
  • Giãn cách tùy chỉnh bên dưới
  • Đường viền trái tuỳ chỉnh

Tất cả tính năng định dạng còn lại của đoạn sẽ tiếp tục kế thừa từ kiểu được đặt tên cơ bản.

Java

        List<Request> requests = new ArrayList<>();
        requests.add(new Request().setUpdateParagraphStyle(new UpdateParagraphStyleRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(10))
                .setParagraphStyle(new ParagraphStyle()
                        .setNamedStyleType("HEADING_1")
                        .setSpaceAbove(new Dimension()
                                .setMagnitude(10.0)
                                .setUnit("PT"))
                        .setSpaceBelow(new Dimension()
                                .setMagnitude(10.0)
                                .setUnit("PT")))
                .setFields("namedStyleType,spaceAbove,spaceBelow")
        ));

        requests.add(new Request().setUpdateParagraphStyle(new UpdateParagraphStyleRequest()
                .setRange(new Range()
                        .setStartIndex(10)
                        .setEndIndex(20))
                .setParagraphStyle(new ParagraphStyle()
                        .setBorderLeft(new ParagraphBorder()
                                .setColor(new OptionalColor()
                                        .setColor(new Color()
                                                .setRgbColor(new RgbColor()
                                                        .setBlue(1.0F)
                                                        .setGreen(0.0F)
                                                        .setRed(0.0F)
                                                )
                                        )
                                )
                                .setDashStyle("DASH")
                                .setPadding(new Dimension()
                                        .setMagnitude(20.0)
                                        .setUnit("PT"))
                                .setWidth(new Dimension()
                                        .setMagnitude(15.0)
                                        .setUnit("PT")
                                )
                        )
                )
                .setFields("borderLeft")
        ));

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

Python

    requests = [
        {
            'updateParagraphStyle': {
                'range': {
                    'startIndex': 1,
                    'endIndex':  10
                },
                'paragraphStyle': {
                    'namedStyleType': 'HEADING_1',
                    'spaceAbove': {
                        'magnitude': 10.0,
                        'unit': 'PT'
                    },
                    'spaceBelow': {
                        'magnitude': 10.0,
                        'unit': 'PT'
                    }
                },
                'fields': 'namedStyleType,spaceAbove,spaceBelow'
            }
        },
        {
            'updateParagraphStyle': {
                'range': {
                    'startIndex': 10,
                    'endIndex':  20
                },
                'paragraphStyle': {
                    'borderLeft': {
                        'color': {
                            'color': {
                                'rgbColor': {
                                    'blue': 1.0,
                                    'green': 0.0,
                                    'red': 0.0
                                }
                            }
                        },
                        'dashStyle': 'DASH',
                        'padding': {
                            'magnitude': 20.0,
                            'unit': 'PT'
                        },
                        'width': {
                            'magnitude': 15.0,
                            'unit': 'PT'
                        },
                    }
                },
                'fields': 'borderLeft'
            }
        }
    ]

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