توضّح لك هذه الصفحة كيفية تنسيق النص باستخدام Google Docs API.
لمحة عن التنسيق
هناك نوعان مختلفان من التنسيقات التي يمكنك تطبيقها على محتوى النص في مستندك:
- يمكنك تغيير تنسيق الأحرف، مثل الخط أو اللون أو التشديد.
- يمكنك تغيير تنسيق الفقرة، مثل المسافة البادئة أو تباعد الأسطر.
تغيير تنسيق الأحرف
يحدِّد تنسيق الأحرف طريقة عرض أحرف النص في الوثيقة.
إنّ أي تنسيق تطبّقه يلغى التنسيق التلقائي المُكتسَب من TextStyle الفقرة الأساسية. في المقابل، تستمر أي أحرف لا يتم ضبط تنسيقها في اكتساب أنماط الفقرة.
لتغيير تنسيق الأحرف في النص، استخدِم batchUpdate
مع
UpdateTextStyleRequest.
عليك تقديم عنصر نطاق
يتضمّن المعلومات التالية:
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()