Mit Vorschlägen arbeiten

In Google Docs können Mitbearbeiter Vorschläge machen, die effektiv verzögerte Änderungen sind, die noch genehmigt werden müssen.

Wenn Sie den Dokumentinhalt mit der Methode documents.get abrufen, enthält dieser möglicherweise noch nicht aufgelöste Vorschläge. Mit dem optionalen Parameter SuggestionsViewMode können Sie steuern, wie documents.get Vorschläge darstellt. Für diesen Parameter sind folgende Filterbedingungen verfügbar:

  • Ruft Inhalte mit SUGGESTIONS_INLINE ab, sodass Text, der entweder gelöscht oder eingefügt werden soll, im Dokument erscheint.
  • Rufen Sie den Inhalt als Vorschau ab, wobei alle Vorschläge angenommen wurden.
  • Rufen Sie den Inhalt als Vorschau ohne Vorschläge ab, wobei alle Vorschläge abgelehnt werden.

Wenn Sie SuggestionsViewMode nicht angeben, verwendet die Google Docs API eine Standardeinstellung, die den Berechtigungen des aktuellen Nutzers entspricht.

Vorschläge und Indexe

Ein Grund dafür, dass SuggestionsViewMode wichtig ist, ist, dass die Indexe in der Antwort abhängig davon variieren können, ob Vorschläge vorhanden sind (siehe unten).

Inhalte mit Vorschlägen Inhalte ohne Vorschläge
{
 "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"
  }
 }
},

{
 "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"
  }
 }
},

In der Antwort oben zeigt der Absatz mit der Zeile „Text nach dem Vorschlag“ den Unterschied bei der Verwendung von SuggestionsViewMode. Wenn der Wert auf SUGGESTIONS_INLINE gesetzt ist, beginnt der startIndex des ParagraphElement bei 51 und der endIndex bei 81. Ohne Vorschläge liegen startIndex und endIndex zwischen 32 und 62.

Inhalte ohne Vorschläge abrufen

Das folgende unvollständige Codebeispiel zeigt, wie Sie ein Dokument als Vorschau abrufen, in dem alle Vorschläge abgelehnt werden (falls vorhanden). Dazu setzen Sie den Parameter SuggestionsViewMode auf PREVIEW_WITHOUT_SUGGESTIONS.

Java

final string SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS"; Document doc = service.documents().get(DOCUMENT_ID).setSuggestionsViewMode(SUGGEST_MODE).execute()

Python

SUGGEST_MODE="PREVIEW_WITHOUT_SUGGESTIONS" result = service.documents().get(documentId=DOCUMENT_ID, suggestionsViewMode=SUGGEST_MODE).execute()

Wenn Sie den Parameter SuggestionsViewMode weglassen, entspricht dies der Angabe von DEFAULT_FOR_CURRENT_ACCESS als Parameterwert.

Stilvorschläge

Dokumente können auch Stilvorschläge enthalten. Dabei handelt es sich um Änderungsvorschläge für Formatierung und Präsentation, nicht um Änderungen am Inhalt.

Im Gegensatz zu Texteinfügungen oder -löschungen verschieben diese die Indexe nicht, obwohl sie ein TextRun in kleinere Blöcke aufteilen können. Es werden lediglich Anmerkungen zur vorgeschlagenen Stiländerung hinzugefügt.

Eine solche Annotation ist eine SuggestedTextStyle, die aus zwei Teilen besteht:

  • Die textStyle, die beschreibt, wie der Text nach der vorgeschlagenen Änderung formatiert wird, sagt jedoch nicht, was sich geändert hat.

  • Der textStyleSuggestionState, der angibt, wie der Vorschlag die Felder von textStyle ändert.

Sie können dies im folgenden Dokumentauszug sehen, der eine vorgeschlagene Stiländerung enthält:

[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] }

Im obigen Beispiel besteht der Absatz aus drei Textausführungen, beginnend mit den Zeilen 6, 14 und 50. Sehen Sie sich die Ausführung des mittleren Texts an:

  • Zeile 16: Es gibt ein suggestedTextStyleChanges-Objekt.
  • Zeile 18: Mit textStyle werden verschiedene Formatierungen festgelegt.
  • Zeile 36: textStyleSuggestionState gibt an, dass nur der fett gedruckte Teil dieser Spezifikation der Vorschlag war.
  • Zeile 42: Der Kursivformatierung dieser Textausführung ist Teil des aktuellen Dokuments und nicht vom Vorschlag betroffen.

Nur die Stilelemente, die in textStyleSuggestionState auf true festgelegt sind, sind Teil des Vorschlags.