تنسيق النص

تخبرك هذه الصفحة بكيفية تنسيق النص باستخدام واجهة برمجة تطبيقات محرر مستندات Google.

لمحة عن التنسيق

هناك نوعان مختلفان من التنسيق الذي يمكنك تطبيقهما على النص لمحتوى المستند:

  • يمكنك تغيير تنسيق الأحرف مثل الخط أو اللون أو التسطير.
  • يمكنك تغيير تنسيق الفقرة مثل المسافة البادئة أو تباعد الأسطر.

تغيير تنسيق الأحرف

يحدد تنسيق الأحرف عرض حروف النص في جلسة المراجعة.

يؤدي أي تنسيق تطبقه إلى إلغاء التنسيق الافتراضي المكتسب من 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 تحديث تنسيق الفقرة الذي يحدد كيفية ويتم عرض أجزاء نصية من المستند، بما في ذلك ميزات مثل المحاذاة والمسافة البادئة.

يؤدي أي تنسيق تطبقه إلى إلغاء التنسيق الافتراضي المكتسب من نمط الفقرة الأساسية. وعلى العكس من ذلك، فإن أي ميزات تنسيق عدم الضبط على الاستمرار في الاكتساب من نمط الفقرة. لمزيد من المعلومات عن الفقرة الأنماط والتوريث، انظر 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()