Đị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ề cách định dạng

Có 2 loại đị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, chẳng hạ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ị ký tự văn bản trong tài liệu.

Mọi định dạng bạn áp dụng sẽ ghi đè định dạng mặc định được kế thừa từ TextStyle của đoạn cơ bản. Ngược lại, mọi ký tự có định dạng mà bạn không đặt sẽ tiếp tục kế thừa từ 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 Range bao gồm các thông tin sau:

  • segmentId xác định tiêu đề, chân trang, chú thích cuối trang (hoặc nội dung nếu không xác định) chứa văn bản.
  • startIndexendIndex xác định phạm vi 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 cho văn bản có trong tiêu đề:

  • Đặt phông chữ của các ký tự 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ữ Times New La Mã 14 pt.
  • Siêu liên kết các ký tự 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 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, giúp xác định cách hiển thị các khối văn bản 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 được kế thừa từ kiểu đoạn vă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 về kiểu đoạn và tính kế thừa, hãy xem phần ParagraphStyle.

Ví dụ dưới đây chỉ định cách định dạng sau đây cho một đoạn văn bản:

  • Tiêu đề dưới dạng 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 văn bản tiếp tục kế thừa từ kiểu cơ bản được đặt tê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()