Text formatieren

Auf dieser Seite erfahren Sie, wie Sie Text mit der Google Docs API formatieren.

Formatierung

Es gibt zwei verschiedene Arten der Formatierung, die Sie auf den Textinhalt Ihres Dokuments anwenden können:

  • Sie können die Zeichenformatierung ändern, z. B. Schriftart, Farbe oder Unterstreichung.
  • Sie können die Absatzformatierung ändern, z. B. den Einzug oder den Zeilenabstand.

Zeichenformatierung ändern

Die Zeichenformatierung bestimmt die Darstellung von Textzeichen in Ihrem Dokument.

Alle Formatierungen, die Sie anwenden, überschreiben die Standardformatierung, die vom TextStyle des zugrunde liegenden Absatzes übernommen wird. Umgekehrt erben alle Zeichen, deren Formatierung Sie nicht festlegen, weiterhin die Formatierung des Absatzes.

Um die Zeichenformatierung von Text zu ändern, verwenden Sie batchUpdate mit UpdateTextStyleRequest. Sie müssen ein Range-Objekt angeben, das die folgenden Informationen enthält:

  • Ein segmentId, das angibt, welcher Header, welche Fußzeile, welche Fußnote oder, falls nicht angegeben, welcher Text den Text enthält.
  • Die startIndex und endIndex, die den Bereich des zu formatierenden Texts innerhalb des Segments definieren.
  • Ein tabId, das angibt, auf welchem Tab sich der Text befindet.

Im folgenden Beispiel werden mehrere Textformatierungsoperationen für den Text im Header ausgeführt:

  • Legt die Schriftart der Zeichen 1 bis 5 auf „Fettkursiv“ fest.
  • Legt die Farbe der Zeichen 6 bis 10 auf blue in 14 Punkt Times New Roman fest.
  • Hyperlinks für die Zeichen 11 bis 15 zu www.example.com.

Am einfachsten geht das, indem Sie eine Liste mit Anfragen erstellen und dann einen batchUpdate-Aufruf verwenden:

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)
                .setTabId(TAB_ID))
        .setFields("bold")));

requests.add(new Request()
        .setUpdateTextStyle(new UpdateTextStyleRequest()
                .setRange(new Range()
                        .setStartIndex(6)
                        .setEndIndex(10)
                        .setTabId(TAB_ID))
                .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)
                        .setTabId(TAB_ID))
                .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,
                'tabId': TAB_ID
            },
            'textStyle': {
                'bold': True,
                'italic': True
            },
            'fields': 'bold,italic'
        }
    },
    {
        'updateTextStyle': {
            'range': {
                'startIndex': 6,
                'endIndex': 10,
                'tabId': TAB_ID
            },
            '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,
                'tabId': TAB_ID
            },
            'textStyle': {
                'link': {
                    'url': 'www.example.com'
                }
            },
            'fields': 'link'
        }
    }
]

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

Absatzformatierung ändern

Mit der Google Docs API können Sie die Absatzformatierung aktualisieren. Dadurch wird festgelegt, wie Textblöcke in Ihrem Dokument gerendert werden, einschließlich Funktionen wie Ausrichtung und Einzug.

Alle Formatierungen, die Sie anwenden, überschreiben die Standardformatierung, die vom zugrunde liegenden Absatzstil übernommen wurde. Umgekehrt werden alle Formatierungsmerkmale, die Sie nicht festlegen, weiterhin vom Absatzstil übernommen. Weitere Informationen zu Absatzformaten und zur Übernahme finden Sie unter ParagraphStyle.

Im folgenden Beispiel wird die folgende Formatierung für einen Absatz angegeben:

  • Eine Überschrift als benannter Stil
  • Benutzerdefinierter Abstand oben
  • Benutzerdefinierter Abstand unten
  • Benutzerdefinierte Rahmenlinie links

Alle anderen Formatierungsmerkmale des Absatzes werden weiterhin vom zugrunde liegenden benannten Stil übernommen.

Java

List<Request> requests = new ArrayList<>();
requests.add(new Request().setUpdateParagraphStyle(new UpdateParagraphStyleRequest()
        .setRange(new Range()
                .setStartIndex(1)
                .setEndIndex(10)
                .setTabId(TAB_ID))
        .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)
                .setTabId(TAB_ID))
        .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,
                'tabId': TAB_ID
            },
            '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,
                'tabId': TAB_ID
            },
            '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()