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