Text formatieren

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

Formatierung

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

  • Sie können die Zeichenformatierung wie Schriftart, Farbe oder Unterstrichen ändern.
  • Sie können die Absatzformatierung wie Einzug oder Zeilenabstand ändern.

Ändern der Zeichenformatierung

Durch die Zeichenformatierung wird die Darstellung von Textzeichen in Ihrem Dokument bestimmt.

Jede von Ihnen angewendete Formatierung überschreibt die Standardformatierung, die vom TextStyle des zugrunde liegenden Absatzes übernommen wird. Umgekehrt werden für alle Zeichen, deren Formatierung Sie nicht festlegen, weiterhin die Stile des Absatzes übernommen.

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

  • Ein segmentId, das angibt, welche Kopf-, Fußzeile, Fußnote oder, falls nicht anders angegeben, der Textkörper enthält.
  • Die startIndex und endIndex, die den Textbereich innerhalb des zu formatierenden Segments definieren.

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

  • Legt die Schriftart der Zeichen 1 bis 5 auf fett und kursiv fest.
  • Legt die Farbe der Zeichen 6–10 auf blue (14 pt Times New Roman) fest.
  • Verlinkt die Zeichen 11–15 mit www.example.com.

Das geht ganz einfach, indem Sie eine Liste von 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))
                .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()

Absatzformatierung ändern

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

Jede von Ihnen angewendete Formatierung überschreibt die vom zugrunde liegenden Absatzstil übernommene Standardformatierung. Umgekehrt werden Formatierungsfunktionen, die Sie nicht festlegen, weiterhin vom Absatzstil übernommen. Weitere Informationen zu Absatzformaten und -übernahme finden Sie unter ParagraphStyle.

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

  • Eine Überschrift als benannter Stil
  • Benutzerdefinierter Abstand oberhalb
  • Benutzerdefinierter Abstand unten
  • Benutzerdefinierter linker Rahmen

Alle übrigen Formatierungsfunktionen 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))
                .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()