Auf dieser Seite erfahren Sie, wie Sie Text mithilfe 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 Formatierung von Zeichen wie Schriftart, Farbe oder Unterstreichung ändern.
- Sie können die Absatzformatierung ändern, z. B. den Einzug oder den Zeilenabstand.
Zeichenformatierung ändern
Die Zeichenformatierung bestimmt das Rendern von Textzeichen in Ihrem Dokument.
Jede angewendete Formatierung überschreibt die Standardformatierung, die vom TextStyle des zugrunde liegenden Absatzes übernommen wurde. Umgekehrt werden alle Zeichen, deren Formatierung Sie nicht festlegen, weiterhin aus den Absatzstilen ü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
, der angibt, welche Kopf-, Fußzeile, Fußnote oder, falls nicht angegeben, der Textkörper den Text enthält. - Die
startIndex
undendIndex
, die den Textbereich innerhalb des zu formatierenden Segments definieren.
Im folgenden Beispiel werden mehrere Textstilvorgänge für den Text im Header ausgeführt:
- Legt für die Zeichen 1 bis 5 Fett- und Kursivformatierung fest.
- Legt die Farbe der Zeichen 6–10 bis
blue
(14-pt-Time-New Roman-Schriftart) fest. - Verlinkt die Zeichen 11–15 mit
www.example.com
.
Eine einfache Möglichkeit besteht darin, eine Liste von Anfragen zu erstellen und dann einen batchUpdate-Aufruf zu 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. Sie bestimmt, wie Textblöcke in Ihrem Dokument gerendert werden, einschließlich Funktionen wie Ausrichtung und Einrückung.
Jede angewendete Formatierung überschreibt die Standardformatierung, die vom zugrunde liegenden Absatzstil übernommen wurde. Umgekehrt werden alle Formatierungselemente, die Sie nicht festlegen, weiterhin vom Absatzstil übernommen. Weitere Informationen zu Absatzstilen und zur Übernahme finden Sie unter Absatzstil.
Im folgenden Beispiel wird die folgende Formatierung für einen Absatz festgelegt:
- Eine Überschrift als benannter Stil
- Benutzerdefinierter Abstand oben
- Benutzerdefinierter Abstand unten
- Benutzerdefinierte Rahmenlinie links
Alle weiteren 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()