Google Docs permet aux collaborateurs de créer suggestions de manière efficace les modifications différées en attente d'approbation.
Lorsque vous utilisez documents.get
pour récupérer le contenu du document, ce dernier peut inclure des erreurs
des suggestions. Pour contrôler la façon dont documents.get
représente les suggestions, utilisez les
facultatif
SuggestionsViewMode
. Les conditions de filtre suivantes sont disponibles avec ce paramètre:
- Obtenez du contenu avec
SUGGESTIONS_INLINE
, donc un texte en attente de suppression ou s'affiche dans le document. - Obtenez un aperçu du contenu avec toutes les suggestions acceptées.
- Obtenir des contenus sous forme d'aperçu, sans suggestions, avec toutes les suggestions refusé.
Si vous ne fournissez pas SuggestionsViewMode
, l'API Google Docs utilise une valeur par défaut
adapté aux droits de l'utilisateur actuel.
Suggestions et index
L'une des raisons pour lesquelles SuggestionsViewMode
est important est que les index de
peut varier selon qu'il existe ou non des suggestions, comme indiqué ci-dessous.
Contenu avec suggestions | Contenu sans suggestions |
---|---|
{ "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" } } } ] } } } ] }, |
Dans la réponse ci-dessus, le paragraphe contenant la ligne "Texte après le
suggestion" indique la différence lorsque SuggestionsViewMode
est utilisé. Avec l'attribut
définie sur SUGGESTIONS_INLINE
, le startIndex
de la
ParagraphElement
commence à 51 et endIndex
s'arrête à 81. Sans suggestions, le
startIndex
et endIndex
sont compris entre 32 et 62.
Obtenir des contenus sans suggestions
L'exemple de code partiel suivant montre comment obtenir un aperçu d'un document avec
toutes les suggestions refusées (le cas échéant) en définissant l'attribut SuggestionsViewMode
sur PREVIEW_WITHOUT_SUGGESTIONS
.
Java
final string SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS"; Document doc = service .documents() .get(DOCUMENT_ID) .setIncludeTabsContent(true) .setSuggestionsViewMode(SUGGEST_MODE) .execute();
Python
SUGGEST_MODE = "PREVIEW_WITHOUT_SUGGESTIONS" result = ( service.documents() .get( documentId=DOCUMENT_ID, includeTabsContent=True, suggestionsViewMode=SUGGEST_MODE, ) .execute() )
Si vous omettez le paramètre SuggestionsViewMode
, cela revient à fournir
DEFAULT_FOR_CURRENT_ACCESS
comme valeur de paramètre.
Suggestions de style
Les documents peuvent également comporter des suggestions de style. Il s'agit de suggestions de modifications la mise en forme et la présentation, plutôt que les modifications du contenu.
Contrairement aux insertions ou aux suppressions de texte, celles-ci ne compensent pas
des index, même s'ils risquent de diviser une
TextRun
en plus petit
mais vous devez simplement ajouter des annotations concernant le changement de style suggéré.
Une de ces annotations est un
SuggestedTextStyle
qui se compose de deux parties:
textStyle
, qui décrit le style appliqué au texte après la suggestion change, mais ne précise pas ce qui a changé.Le
textStyleSuggestionState
, qui indique l'évolution de la suggestion les champs detextStyle
.
Vous pouvez le voir dans l'extrait d'onglet du document suivant, qui comprend une modification de style suggérée:
[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] }
Dans l'exemple ci-dessus, le paragraphe comprend trois exécutions de texte, à partir des lignes 6, 14 et 50. Examinez l'exécution du texte du milieu:
- Ligne 16: un objet
suggestedTextStyleChanges
- Ligne 18:
textStyle
spécifie plusieurs mises en forme. - Ligne 36:
textStyleSuggestionState
vous indique que seule la partie en gras de cette spécification était la suggestion. - Ligne 42: le style en italique de cette séquence de texte fait partie du document actuel (et non concernées par la suggestion).
Seuls les éléments géographiques de style définis sur true
dans textStyleSuggestionState
font partie
de la suggestion.