تنسيق النص

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

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

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

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

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

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

يؤدي أي تنسيق تطبّقه إلى إلغاء التنسيق التلقائي الموروث من TextStyle للفقرة الأساسية. وعلى العكس من ذلك، تستمر أي أحرف لم يتم تعيين تنسيقها في الاكتساب من أنماط الفقرة.

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

  • segmentId التي تحدد الرأس أو التذييل أو الحاشية السفلية - أو في حال عدم تحديد النص - تحتوي على النص.
  • startIndex وendIndex اللذان يحددان نطاق النص داخل الشريحة المراد تنسيقه.

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

  • تعيين خط الأحرف من 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))
                .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 Docs API تحديث تنسيق الفقرة الذي يحدد كيفية عرض كتل النصوص في المستند، بما في ذلك ميزات مثل المحاذاة والمسافة البادئة.

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