בדף הזה מוסבר איך לעצב טקסט באמצעות Google Docs API.
מידע על עיצוב
יש שני סוגים שונים של עיצוב שאפשר להחיל על תוכן הטקסט במסמך:
- אפשר לשנות את עיצוב התווים, כמו גופן, צבע או קו תחתון.
- אפשר לשנות את עיצוב הפסקאות, כמו הוספת הפסקה או שינוי הריווח בין השורות.
שינוי עיצוב התווים
עיצוב התווים קובע את העיבוד של תווים בטקסט במסמך.
כל עיצוב שתחייבו יבטל את עיצוב ברירת המחדל שעובר בירושה מ-TextStyle של הפסקה הבסיסית. לעומת זאת, תווים שלא מגדירים להם עיצוב ממשיכים לרשת את הסגנונות של הפסקה.
כדי לשנות את עיצוב התווים של הטקסט, משתמשים ב-batchUpdate
עם UpdateTextStyleRequest.
צריך לספק אובייקט Range שכולל את הפרטים הבאים:
segmentId
שמזהה איזו כותרת עליונה, כותרת תחתונה או הערת שוליים – או, אם לא צוין אחרת, את הגוף – מכילה את הטקסט.- הערכים
startIndex
ו-endIndex
שמגדירים את טווח הטקסט בתוך הקטע שרוצים לעצב. tabId
שמזהה את הכרטיסייה שמכילה את הטקסט.
בדוגמה הבאה מתבצעות כמה פעולות עיצוב טקסט בטקסט שמכיל הכותרת:
- הגדרת הגופן של התווים 1-5 לנטוי מודגש.
- הגדרת הצבע של התווים 6-10 ל-
blue
גופן Times New Roman בגודל 14pt. - היפר-קישורים בתווים 11-15 אל
www.example.com
.
דרך פשוטה לעשות זאת היא ליצור רשימה של בקשות ואז להשתמש בקריאה אחת של batchUpdate:
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()
שינוי העיצוב של פסקאות
באמצעות Google Docs API אפשר לעדכן את עיצוב הפסקה, שמגדיר את אופן הרינדור של קטעי הטקסט במסמך, כולל תכונות כמו התאמה ודנטורציה.
כל עיצוב שתחילו יבטל את עיצוב ברירת המחדל שעובר בירושה מסגנון הפיסקה הבסיסי. לעומת זאת, תכונות עיצוב שלא מגדירים ממשיכות לעבור בירושה מסגנון הפסקה. מידע נוסף על סגנונות של פסקאות ועל ירושה זמין במאמר ParagraphStyle.
בדוגמה הבאה מצוין הפורמט הבא לפסקה:
- כותרת כסגנון שצוין
- ריווח מותאם אישית למעלה
- ריווח מותאם אישית למטה
- גבול שמאלי בהתאמה אישית
כל שאר תכונות העיצוב של הפסקה ימשיכו לרשת מהסגנון בעל השם שמתחתיו.
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()