يمكنك تعديل النص وتصميمه باستخدام النطاقات النصية، والتي يتم تمثيلها بواسطة
النوع TextRange
TextRange
يمثل مقطعًا من نص داخل شكل أو
داخل خلية جدول. يؤدي استدعاء getText()
على شكل أو خلية جدول إلى إرجاع
نطاق نصي يغطي النص بالكامل.
إذا كنت تستخدم طرقًا تُعدِّل كيفية احتواء النص داخل شكل، يمكن تفعيل أي إعدادات للاحتواء التلقائي. المطبقة على الشكل.
استخدام النطاقات النصية
يحتوي نطاق النص على فهرسين يحددان مقطع النص
مشمولاً في نطاق نصي: فهرس البداية وفهرس النهاية. يمكنك تحديد
هذين الفهارس باستخدام الدالتين getStartIndex()
وgetEndIndex()
.
لقراءة محتوى نطاق نصي، استخدِم السمة asString()
أو
دوال asRenderedString()
.
لاسترداد نطاق فرعي من داخل نطاق نصي، استخدم الدالة getRange()
.
ينشئ النص البرمجي التالي مربع نص في الشريحة الأولى ويحدد محتوى النص إلى "مرحبًا بكم". ثم تسترد بعد ذلك نطاقًا فرعيًا يمتد فقط "مرحبًا".
سيغطي نطاق النص الذي يتم إرجاعه بواسطة شكل أو خلية جدول دائمًا النص بالكامل، حتى إذا تم إدراج النص وحذفه. إذًا، ينتج عن المثال أعلاه مخطط بيانات السجل التالية:
Start: 0; End: 13; Content: Hello world! Start: 0; End: 5; Content: Hello
إدراج النص وحذفه
يمكنك أيضًا إدراج أشكال نصية وخلايا الجدول وحذفها باستخدام نطاقات نصية.
- يتيح لك
insertText()
وappendText()
إدراج نص. - تستبدل
setText()
نص نطاق نصي بالنص المقدَّم. clear()
يحذف النص من داخل نطاق نصي.
يوضح النص البرمجي التالي استخدام هذه الدوال:
يقوم هذا النص البرمجي بإنشاء مربع نص في الشريحة الأولى وتعيين محتواه النصي إلى "مرحبًا بكم". بعد ذلك تحذف الأحرف من 6 إلى 11 ("world")، لإدراج النص "مجرة" في الفهرس 6 بدلاً من ذلك. ينتج المثال أعلاه عن بيان السجل التالي:
Start: 0; End: 14; Content: Hello galaxy!
البحث والاستبدال
يمكنك استخدام الدالة replaceAllText()
في العرض التقديمي أو الصفحة لإجراء تحليل شامل
البحث والاستبدال عبر العرض التقديمي بأكمله أو صفحة معينة.
تعرض الدالة find()
في TextRange مثيلات سلسلة داخل
النطاق. يمكن استخدامها مع setText()
لتنفيذ البحث والاستبدال.
داخل شكل أو خلية جدول.
الفقرات وعناصر القائمة وعمليات التنفيذ
توفر TextRange
دوال لعرض مجموعات مفيدة من الكيانات النصية.
تتضمن بعض هذه الدوال ما يلي:
getParagraphs(),
الذي يوفّر جميع الفقرات التي تتداخل مع نطاق النص حاسمة الفقرة هي تسلسل من النصوص ينتهي بحرف السطر الجديد، "\n".getListParagraphs(),
التي تعرض عناصر القائمة في نطاق النص الحالي.getRuns(),
التي توفّر عمليات تشغيل النصوص التي تتداخل مع نطاق النص الحالي حاسمة تشغيل النص هو جزء من النص حيث تحتوي جميع الأحرف على نفس النص والأسلوب.
أنماط النص
يحدد نمط النص عرض حروف النص في العرض التقديمي، بما في ذلك الخط واللون والارتباط التشعبي.
توفر الدالة getTextStyle()
لنطاق نصي كائن TextStyle
يُستخدم في
النص المكتوب على نمطك. يغطي الكائن TextStyle
النص نفسه الذي يغطيه العنصر الرئيسي TextRange
.
يقوم المثال أعلاه بإنشاء مربع نص في الشريحة الأولى أولاً وتعيين
المحتوى إلى "مرحبًا". ثم يضيف النص "العالم!" النص الملحق حديثًا
بخط غامق ومرتبط بـ www.example.com
، وتم ضبط لونه
إلى الأحمر.
عند قراءة الأنماط، تعرض الدالة قيمة خالية إذا كان النطاق يحتوي على قيم متعددة حول النمط. وبالتالي ينتج عن النموذج أعلاه عبارات السجل التالية:
Text: Hello; Bold: false Text: world!; Bold: true Text: Hello world!; Bold: null
هناك العديد من الأنماط الأخرى التي يمكن تطبيقها على النص. يمكن الاطّلاع على المزيد من التفاصيل
في مستندات TextStyle
المرجعية.
تصميم الفقرة
تنطبق أنماط الفقرة على الفقرات بأكملها، وتشمل أشياء مثل محاذاة النص والسطر.
تباعد. توفّر الدالة getParagraphStyle() في TextRange
السمة ParagraphStyle
لتصميم جميع الفقرات التي تتداخل مع نطاق النص الأصلي.
ينشئ المثال التالي مربع نص في الشريحة الأولى يحتوي على أربعة الفقرات ثم محاذاة الفقرات الثلاث الأولى من المنتصف.
تصميم القائمة
على غرار ParagraphStyle
، يمكن استخدام ListStyle
لتصميم جميع الفقرات.
التي تتداخل مع نطاق النص الأصلي.
ينشئ المثال أعلاه مربع نص في الشريحة الأولى، يحتوي على أربع فقرات: يتم إدراج مسافة بادئة للفقرة الثانية مرة واحدة ومسافة بادئة للفقرة الثالثة مرتين. ثم يطبق قائمة مسبقة على جميع الفقرات. أخيرًا، يتم تسجيل مستوى تداخل الفقرة. (يأتي مستوى تداخل الفقرة من عدد علامات التبويب قبل نص الفقرة.) لذا فإن النص أعلاه ينتج بيانات السجل التالية:
Paragraph 1's nesting level: 0 Paragraph 2's nesting level: 1 Paragraph 3's nesting level: 2 Paragraph 4's nesting level: 0