تنسيق النص

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

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

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

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

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

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

ويلغي أي تنسيق تطبق التنسيق التلقائي الموروث من TextStyle للفقرة الأساسية. وبالعكس، تظل أي أحرف لم تضبط تنسيقها تكتسب من أنماط الفقرة.

لتغيير تنسيق الأحرف في النص، استخدِم السمة batchUpdate مع UpdateTextStyleRequest. يجب توفير كائن Range يتضمّن المعلومات التالية:

  • تمثّل هذه السمة segmentId الذي يحدّد الرأس أو التذييل أو الحاشية السفلية، أو النص الأساسي في حال عدم تحديده.
  • تمثّل هذه السمة startIndex وendIndex اللتين تحدّدان نطاق النص ضمن الشريحة المطلوب تنسيقها.

ينفذ المثال التالي العديد من عمليات نمط النص على النص المضمن في العنوان:

  • لتعيين خط الأحرف من 1 إلى 5 على الخط الغامق والمائل.
  • لضبط لون الأحرف من 6 إلى 10 على خط blue 14-pt Times New Roman.
  • أحرف الروابط التشعبية من 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))
                .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()

تغيير تنسيق الفقرة

تتيح لك واجهة برمجة التطبيقات لمستندات Google تحديث تنسيق الفقرة، والذي يحدد كيفية عرض قوالب النص في المستند، بما في ذلك ميزات مثل المحاذاة والمسافة البادئة.

أي تنسيق تطبقه يلغي التنسيق الافتراضي الموروث من نمط الفقرة الأساسي. وعلى العكس من ذلك، تستمر أي ميزات تنسيق لم تقم بتعيينها في اكتساب من نمط الفقرة. لمزيد من المعلومات حول أنماط الفقرة وتوريثها، راجع ParagraphStyle.

يحدد المثال أدناه التنسيق التالي للفقرة:

  • عنوان كنمط مُسمّى
  • تباعد مخصص أعلاه
  • تباعد مخصص أدناه
  • حد أيسر مخصص

تستمر جميع ميزات التنسيق المتبقية للفقرة في اكتساب النمط الأساسي المسمى.

لغة 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()