يمكنك تعديل النص وتنسيقه باستخدام نطاقات النصوص التي يمثّلها النوع
TextRange. يمثّل TextRange جزءًا من النص داخل شكل أو داخل خلية جدول. عند استدعاء getText على شكل أو خلية جدول، يتم عرض نطاق نص يغطّي النص بأكمله.
إذا كنت تستخدم طرقًا تعدِّل كيفية ملاءمة النص داخل شكل، يتم إيقاف أي إعدادات للملاءمة التلقائية تم تطبيقها على الشكل.
استخدام نطاقات النصوص
يحتوي نطاق النص على مؤشرَين يحدّدان جزء النص الذي يغطّيه نطاق النص: مؤشر البداية و مؤشر النهاية. يمكنك تحديد هذَين المؤشرَين باستخدام الدالتَين getStartIndex وgetEndIndex.
يشمل مؤشر البداية لنطاق النص، بينما لا يشمل مؤشر النهاية. ويستند كلا المؤشرَين إلى الصفر.
لقراءة محتويات نطاق نص، استخدِم الدالتَين asString أو asRenderedString.
لاسترداد نطاق فرعي من داخل نطاق نص، استخدِم الدالة getRange.
ينشئ النص البرمجي التالي مربّع نص في الشريحة الأولى ويضبط محتواه النصي على "Hello world!". ثم يسترد نطاقًا فرعيًا لا يشمل سوى "Hello".
يغطّي نطاق النص الذي يعرضه شكل أو خلية جدول النص بأكمله دائمًا، حتى إذا تم إدراج نص وحذفه. لذلك، ينتج عن هذا المثال عبارات السجلّ التالية:
Start: 0; End: 13; Content: Hello world!
Start: 0; End: 5; Content: Hello
إدراج نص وحذفه
يمكنك إدراج نص وحذفه في الأشكال وخلايا الجدول باستخدام نطاقات النصوص.
- تتيح لك الدالتان
insertTextوappendTextإدراج نص. - تستبدل الدالة
setTextنص نطاق نص بالنص المقدَّم. - تحذف الدالة
clearالنص من داخل نطاق نص.
يوضّح النص البرمجي التالي كيفية استخدام هذه الدوال:
ينشئ هذا النص البرمجي مربّع نص في الشريحة الأولى ويضبط محتواه النصي على "Hello world!". ثم يحذف الأحرف من 6 إلى 11 ("world")، ويُدرِج النص "galaxy" في المؤشر 6 بدلاً من ذلك. ينتج عن هذا المثال عبارة السجلّ التالية:
Start: 0; End: 14; Content: Hello galaxy!
البحث والاستبدال
استخدِم الدالة replaceAllText في العرض التقديمي أو الصفحة لإجراء عملية بحث واستبدال عامة في العرض التقديمي بأكمله أو في صفحة معيّنة.
تعرض الدالة find في TextRange مثيلات سلسلة ضمن النطاق. يمكن استخدامها مع setText لإجراء عملية بحث واستبدال داخل شكل أو خلية جدول.
الفقرات وعناصر القوائم والفقرات النصية
يوفّر TextRange دوال لعرض مجموعات مفيدة من الكيانات النصية.
تشمل بعض هذه الدوال ما يلي:
getParagraphs,التي تعرض جميع الفقرات التي تتداخل مع نطاق النص. الفقرة هي سلسلة من النص تنتهي بحرف سطر جديد "\n".getListParagraphs,التي تعرض عناصر القائمة في نطاق النص الحالي.getRuns,التي تعرض الفقرات النصية التي تتداخل مع نطاق النص الحالي. الفقرة النصية هي جزء من النص تكون فيه جميع الأحرف بنفس نمط النص.
ضبط نمط النص
يحدّد نمط النص طريقة عرض الأحرف النصية في العرض التقديمي، بما في ذلك الخط واللون والربط التشعّبي.
توفر الدالة getTextStyle لنطاق نص كائن TextStyle يُستخدم لتنسيق النص. يغطّي كائن TextStyle النص نفسه الذي يغطّيه TextRange الأصل.
ينشئ المثال السابق أولاً مربّع نص في الشريحة الأولى ويضبط محتواه على "Hello ". ثم يُلحِق النص "world!". يتم وضع النص الذي تم إلحاقه حديثًا بخط عريض، ويتم ربطه بـ www.example.com، ويتم ضبط لونه على الأحمر.
عند قراءة الأنماط، تعرض الدالة القيمة null إذا كان النطاق يحتوي على قيم متعددة للنمط. لذلك، ينتج عن هذا المثال عبارات السجلّ التالية:
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