Google Tài liệu cho phép cộng tác viên đưa ra đề xuất là các nội dung chỉnh sửa được trì hoãn hiệu quả đang chờ phê duyệt.
Khi bạn sử dụng phương thức documents.get
để tìm nạp nội dung tài liệu, nội dung đó có thể bao gồm các đề xuất chưa được giải quyết. Để kiểm soát cách documents.get
biểu thị các đề xuất, hãy sử dụng tham số SuggestionsViewMode
không bắt buộc. Thông số này có các điều kiện lọc sau:
- Nhận nội dung bằng
SUGGESTIONS_INLINE
, vì vậy, văn bản đang chờ xoá hoặc chèn sẽ xuất hiện trong tài liệu. - Nhận nội dung dưới dạng bản xem trước khi tất cả đề xuất đều được chấp nhận.
- Nhận nội dung dưới dạng bản xem trước, không có đề xuất và tất cả đề xuất đều bị từ chối.
Nếu bạn không cung cấp SuggestionsViewMode
, API Google Tài liệu sẽ sử dụng chế độ cài đặt mặc định phù hợp với các đặc quyền của người dùng hiện tại.
Đề xuất và chỉ mục
Một lý do khiến SuggestionsViewMode
quan trọng là các chỉ mục trong phản hồi có thể thay đổi tuỳ thuộc vào việc có đề xuất hay không, như minh hoạ bên dưới.
Nội dung có đề xuất | Nội dung không có đề xuất |
---|---|
{ "tabs": [ { "documentTab": { "body": { "content": [ { "startIndex": 1, "endIndex": 31, "paragraph": { "elements": [ { "startIndex": 1, "endIndex": 31, "textRun": { "content": "Text preceding the suggestion\n", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } }, { "startIndex": 31, "endIndex": 51, "paragraph": { "elements": [ { "startIndex": 31, "endIndex": 50, "textRun": { "content": "Suggested insertion", "suggestedInsertionIds": [ "suggest.vcti8ewm4mww" ], "textStyle": {} } }, { "startIndex": 50, "endIndex": 51, "textRun": { "content": "\n", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } }, { "startIndex": 51, "endIndex": 81, "paragraph": { "elements": [ { "startIndex": 51, "endIndex": 81, "textRun": { "content": "Text following the suggestion\n", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } } ] } } } ] }, |
{ "tabs": [ { "documentTab": { "body": { "content": [ { "startIndex": 1, "endIndex": 31, "paragraph": { "elements": [ { "startIndex": 1, "endIndex": 31, "textRun": { "content": "Text preceding the suggestion\n", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } }, { "startIndex": 31, "endIndex": 32, "paragraph": { "elements": [ { "startIndex": 31, "endIndex": 32, "textRun": { "content": "\n", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } }, { "startIndex": 32, "endIndex": 62, "paragraph": { "elements": [ { "startIndex": 32, "endIndex": 62, "textRun": { "content": "Text following the suggestion\n", "textStyle": {} } } ], "paragraphStyle": { "namedStyleType": "NORMAL_TEXT", "direction": "LEFT_TO_RIGHT" } } } ] } } } ] }, |
Trong phản hồi ở trên, đoạn văn bản chứa dòng "Văn bản theo đề xuất" cho thấy sự khác biệt khi sử dụng SuggestionsViewMode
. Khi giá trị được đặt thành SUGGESTIONS_INLINE
, startIndex
của ParagraphElement
bắt đầu từ 51 và endIndex
dừng lại ở 81. Nếu không có đề xuất, startIndex
và endIndex
sẽ nằm trong khoảng từ 32 đến 62.
Xem nội dung mà không có đề xuất
Mẫu mã một phần sau đây cho biết cách lấy một tài liệu dưới dạng bản xem trước với tất cả các đề xuất bị từ chối (nếu có) bằng cách đặt tham số SuggestionsViewMode
thành PREVIEW_WITHOUT_SUGGESTIONS
.
final string SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS"; Document doc = service .documents() .get(DOCUMENT_ID) .setIncludeTabsContent(true) .setSuggestionsViewMode(SUGGEST_MODE) .execute();
SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS" result = ( service.documents() .get( documentId=DOCUMENT_ID, includeTabsContent=True, suggestionsViewMode=SUGGEST_MODE, ) .execute() )
Việc bỏ qua tham số SuggestionsViewMode
tương đương với việc cung cấp DEFAULT_FOR_CURRENT_ACCESS
làm giá trị tham số.
Kiểu đề xuất
Tài liệu cũng có thể có đề xuất về kiểu. Đây là những thay đổi đề xuất về định dạng và cách trình bày, thay vì thay đổi về nội dung.
Không giống như các thao tác chèn hoặc xoá văn bản, các thao tác này không làm chênh lệch các chỉ mục – mặc dù chúng có thể chia một TextRun
thành các phần nhỏ hơn – nhưng chỉ thêm chú thích về thay đổi kiểu được đề xuất.
Một chú thích như vậy là SuggestedTextStyle
, bao gồm 2 phần:
textStyle
mô tả cách văn bản được tạo kiểu sau khi thay đổi được đề xuất, nhưng không cho biết nội dung thay đổi.textStyleSuggestionState
, cho biết cách đề xuất thay đổi các trường củatextStyle
.
Bạn có thể thấy điều này trong phần trích xuất thẻ tài liệu sau đây, bao gồm cả một thay đổi kiểu được đề xuất:
[01] "paragraph": {
[02] "elements": [
[03] {
[04] "endIndex": 106,
[05] "startIndex": 82,
[06] "textRun": {
[07] "content": "Some text that does not ",
[08] "textStyle": {}
[09] }
[10] },
[11] {
[12] "endIndex": 115,
[13] "startIndex": 106,
[14] "textRun": {
[15] "content": "initially",
[16] "suggestedTextStyleChanges": {
[17] "suggest.xymysbs9zldp": {
[18] "textStyle": {
[19] "backgroundColor": {},
[20] "baselineOffset": "NONE",
[21] "bold": true,
[22] "fontSize": {
[23] "magnitude": 11,
[24] "unit": "PT"
[25] },
[26] "foregroundColor": {
[27] "color": {
[28] "rgbColor": {}
[29] }
[30] },
[31] "italic": false,
[32] "smallCaps": false,
[33] "strikethrough": false,
[34] "underline": false
[35] },
[36] "textStyleSuggestionState": {
[37] "boldSuggested": true,
[38] "weightedFontFamilySuggested": true
[39] }
[40] }
[41] },
[42] "textStyle": {
[43] "italic": true
[44] }
[45] }
[46] },
[47] {
[48] "endIndex": 143,
[49] "startIndex": 115,
[50] "textRun": {
[51] "content": " contain any boldface text.\n",
[52] "textStyle": {}
[53] }
[54] }
[55] ],
[56] "paragraphStyle": {
[57] "direction": "LEFT_TO_RIGHT",
[58] "namedStyleType": "NORMAL_TEXT"
[59] }
[60] }
Trong mẫu trên, đoạn văn bao gồm 3 dòng văn bản, bắt đầu từ dòng 6, 14 và 50. Kiểm tra dòng văn bản ở giữa:
- Dòng 16: Có một đối tượng
suggestedTextStyleChanges
. - Dòng 18:
textStyle
chỉ định nhiều định dạng. - Dòng 36:
textStyleSuggestionState
cho bạn biết rằng chỉ phần in đậm của quy cách này là đề xuất. - Dòng 42: Kiểu in nghiêng của dòng văn bản này là một phần của tài liệu hiện tại (và không bị ảnh hưởng bởi đề xuất).
Chỉ những tính năng kiểu được đặt thành true
trong textStyleSuggestionState
mới là một phần của đề xuất.