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
undendIndex
, 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()