إزالة نقاط التبويب المخصصة من مستويات القوائم يمنحك تحكمًا دقيقًا في تخطيط القوائم في مستندات Word. تضيف ميزة إزالة نقاط تبويب مستوى القائمة طريقة بسيطة ListLevel.RemoveTabStop() التي تقوم بمسح أي نقطة تبويب تم تعيينها مسبقًا. يوضح لك هذا المقال كيفية تثبيت SDK، وإنشاء قائمة، وإزالة نقطة التبويب الخاصة بها، وحفظ المستند المحدث.
لماذا إزالة نقاط التبويب على مستوى القائمة في مستند Word
غالبًا ما تعتمد قوائم Word على علامة تبويب افتراضية تُحاذِى رقم القائمة أو الرصاصة مع النص. عند إنشاء مستند برمجيًا، قد تضيف علامة تبويب مخصصة لتحقيق محاذاة بصرية محددة. لاحقًا، قد تتغير متطلبات العمل، أو قد تحتاج إلى إعادة استخدام القالب نفسه لتصميم مختلف. تحرير المستند يدويًا لحذف علامة التبويب يستغرق وقتًا طويلاً وعرضة للأخطاء. باستخدام ListLevel.RemoveTabStop()، يمكنك إرجاع مستوى القائمة إلى سلوكه الافتراضي برمجيًا، مما يضمن الاتساق عبر المستندات المُنشأة دون تدخل يدوي.
مقدمة عن ListLevel API
توفر Aspose.Words for .NET نموذج كائن غني للتعامل مع مستندات Word. تمثل الفئة ListLevel مستوىً واحدًا داخل قائمة (على سبيل المثال، المستوى الأول من قائمة مرقمة). بدءًا من الإصدار 26.7، تشمل الفئة طريقة RemoveTabStop() التي تُزيل أي توقف تبويب مخصص تم تعيينه لهذا المستوى.
للبدء، قم بتثبيت حزمة Aspose.Words من NuGet:
Install-Package Aspose.Words
يمكنك معرفة المزيد عن المنتج على Aspose.Words for .NET product page. الوثائق التفصيلية متاحة في Aspose.Words .NET docs، ويمكن استكشاف مرجع API الكامل هنا.
إزالة إيقاف تبويب مخصص من مستوى قائمة واحد
دليل خطوة بخطوة
- إنشاء مستند جديد و DocumentBuilder. كائن
Documentيحتفظ بملف Word في الذاكرة، بينما يبسطDocumentBuilderإنشاء المحتوى. - تطبيق تنسيق قائمة رقمية افتراضي. هذا يمنحنا قائمة بمستوى مسبق وتوقف تبويب.
- كتابة بعض عناصر القائمة. العناصر ترث تنسيق القائمة.
- استرجاع
ListLevelالحالي من الـ builder. هذا هو المستوى الذي أنشأناه للتو. - استدعاء
RemoveTabStop()علىListLevel. هذا يزيل توقف التبويب المخصص. - حفظ المستند للتحقق من التغيير.
يوضح المثال التالي كيفية إزالة علامة تبويب مخصصة من مستوى قائمة باستخدام C# و Aspose.Words.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Create a list with default formatting
builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Numbered list item 1");
builder.Writeln("Numbered list item 2");
// Get the list level and remove its tab stop
ListLevel listLevel = builder.ListFormat.ListLevel;
listLevel.RemoveTabStop();
doc.Save("Paragraph.RemoveTabStopFromListLevel.docx");
كيف يعمل
builder.ListFormat.ApplyNumberDefault()يُحوِّل الـ builder إلى سياق قائمة مرقَّمة باستخدام نمط القائمة الافتراضي المحدد من قبل Word. هذا ينشئ ضمنيًا كائنListجديد ومستوىListLevelالمقابل للمستوى الأول.builder.Writeln(...)يكتب عنصرين في القائمة. لأن الـ builder في وضع القائمة، كل استدعاء يضيف تلقائيًا رقم القائمة المناسب ويُحاذِر النص بناءً على موضع علامة التبويب للمستوى.builder.ListFormat.ListLevelيُعيد كائنListLevelالذي يتحكم في تنسيق المستوى الحالي للقائمة (المستوى 0 في هذه الحالة).listLevel.RemoveTabStop()يزيل علامة التبويب المخصصة التي تم تعيينها عند إنشاء مستوى القائمة. بعد هذا الاستدعاء، ستستخدم القائمة علامة التبويب الافتراضية في Word، والتي عادةً ما تكون موجودة عند المسافة اليسرى للمستوى.doc.Save(...)يكتب المستند الموجود في الذاكرة إلى ملف اسمهParagraph.RemoveTabStopFromListLevel.docx. افتح الملف في Microsoft Word أو أي عارض متوافق لترى أن الأرقام والنص الآن مُحاذاة باستخدام علامة التبويب الافتراضية.
ملاحظة: تم إعادة إنتاج عينة الشيفرة هذه من ملاحظات الإصدار الرسمية لـ Aspose.Words ولم يتم تنفيذها في بيئة صندوق رملية. تحقق منها في إعداد التطوير الخاص بك قبل استخدامها في الإنتاج.
إزالة نقاط التبويب من جميع مستويات القوائم في المستند
في العديد من السيناريوهات الواقعية، يحتوي المستند على قوائم متعددة، كل منها يحتوي على عدة مستويات. قد لا يكون إزالة توقف التبويب من مستوى واحد فقط كافياً. يوضح المقتطف التالي كيفية التكرار عبر كل قائمة في المستند وإزالة توقف التبويب في كل مستوى.
// Load an existing document that contains multiple lists
Document doc = new Document("Input.docx");
// Iterate through every list in the document
foreach (List list in doc.Lists)
{
// Each list can have multiple levels (0‑8). Iterate them.
foreach (ListLevel level in list.ListLevels)
{
// Remove any custom tab stop for this level
level.RemoveTabStop();
}
}
// Save the updated document
doc.Save("Output_NoTabStops.docx");
شرح الكود
new Document("Input.docx")يقوم بتحميل ملف Word موجود قد يحتوي على عدة قوائم.doc.Listsيُعيد مجموعة من كائناتListالتي تمثل كل قائمة مميزة في المستند.list.ListLevelsيوفّر الوصول إلى المستويات التسعة الممكنة (0‑8) لتلك القائمة. حتى إذا لم يُستخدم مستوى ما، لا تزال المجموعة تحتوي على كائنListLevelبتنسيق افتراضي.- داخل الحلقة الداخلية، يتم استدعاء
level.RemoveTabStop()على كل مستوى، مما يضمن عدم بقاء أي توقفات تبويب مخصصة في أي مكان بالمستند. - أخيرًا،
doc.Save("Output_NoTabStops.docx")يكتب المستند المنقّح.
هذا النهج مفيد بشكل خاص عندما تحتاج إلى فرض تنسيق قائمة موحد عبر مجموعة من التقارير المولدة أو عندما تقوم بتطبيع المستندات المستلمة من مصادر خارجية.
إضافة وإزالة نقطة تبويب برمجيًا
أحيانًا قد تحتاج إلى إضافة توقف تبويب مخصص لتخطيط مؤقت، وإجراء بعض العمليات، ثم العودة إلى الإعداد الافتراضي. يتيح لك SDK إضافة توقف تبويب باستخدام ListLevel.TabStops.Add(double position). بعد إكمال التنسيق المؤقت، يمكنك استدعاء RemoveTabStop() لتنظيفه.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Temporarily aligned item 1");
// Add a custom tab stop at 72 points (1 inch)
ListLevel level = builder.ListFormat.ListLevel;
level.TabStops.Add(72);
builder.Writeln("Item with custom tab stop");
// Later, remove the custom tab stop
level.RemoveTabStop();
builder.Writeln("Item after removing tab stop");
doc.Save("TempTabStopDemo.docx");
شرح الكود
- بعد إنشاء المستند وتطبيق قائمة مرقمة، نكتب العنصر الأول.
level.TabStops.Add(72)يضيف علامة تبويب مخصصة عند 72 نقطة (أي بوصة واحدة بالضبط). العنصر التالي في القائمة ينسق نصه في ذلك الموضع.- بعد عدم الحاجة إلى التنسيق المؤقت،
level.RemoveTabStop()يزيل علامة التبويب المخصصة، مما يجعل العناصر التالية تعود إلى المحاذاة الافتراضية. - الـ
Writelnالنهائي يوضح تأثير الإزالة.
هذا النمط مفيد عندما تحتاج إلى تعديل لمرة واحدة — على سبيل المثال، لمحاذاة عنوان داخل قائمة لتصميم صفحة محدد — مع الحفاظ على باقي المستند نظيفًا.
احصل على ترخيص مجاني
تقدم Aspose ترخيصًا مجانيًا مؤقتًا يزيل علامات مائية التقييم ويمنح وصولًا كاملاً إلى واجهة برمجة التطبيقات للتطوير والاختبار. يمكنك طلبه من صفحة الترخيص المؤقت لـ Aspose.
موارد إضافية مجانية
الخلاصة
في هذا البرنامج التعليمي غطينا كيفية استخدام الطريقة الجديدة ListLevel.RemoveTabStop() التي تم تقديمها في Aspose.Words 26.7. من خلال مسح نقاط التبويب المخصصة تستعيد التحكم في محاذاة القوائم، وتبسط قوالب المستندات، وتضمن تنسيقًا متسقًا عبر ملفات Word التي تم إنشاؤها. أظهرت الأمثلة إزالة لنقطة تبويب لمستوى قائمة واحد، وإزالة جماعية عبر مستند كامل، ونمطًا لتعديلات مؤقتة لنقاط التبويب. دمج هذه التقنيات في تطبيقات .NET الخاصة بك سيجعل أتمتة Word أكثر قوة وأسهل في الصيانة.
الأسئلة الشائعة
ما الذي يزيله ListLevel.RemoveTabStop() فعليًا؟
تقوم الطريقة بمسح أي علامة تبويب مخصصة تم تعريفها لمستوى القائمة، مع إعادة المستوى لاستخدام علامة التبويب الافتراضية المحددة بواسطة نمط المستند.هل أحتاج إلى استدعاء Save() بعد إزالة موضع تبويب؟
نعم. يتم إجراء التغييرات في الذاكرة، لذا يجب عليك استدعاءDocument.Save()لحفظ تنسيق القائمة المحدث إلى ملف.هل يمكنني إزالة نقاط التبويب من جميع مستويات القوائم في مستند واحد؟
بالتأكيد. يمكنك التجول عبر كلListفي المستند ثم عبر كلListLevel، مستدعيًاRemoveTabStop()حيثما يلزم.هل يتم دعم RemoveTabStop() للقوائم ذات الرموز النقطية وكذلك القوائم المرقمة؟
نعم. تعمل الطريقة على أيListLevelبغض النظر عما إذا كانت تمثل رمزًا نقطيًا أو رقمًا أو تنسيقًا متعدد المستويات.هل سيؤثر إزالة نقطة تبويب مخصصة على إزاحة عناصر القائمة الحالية؟
يتغير موقع نقطة التبويب فقط. يبقى الإزاحة العامة المحددة بواسطة المسافة اليسرى لمستوى القائمة دون تغيير، وبالتالي تحتفظ عناصر القائمة بتسلسلها البصري.هل أحتاج إلى ترخيص مدفوع لاستخدام ListLevel.RemoveTabStop()?
الواجهة البرمجية متاحة في الترخيص المؤقت المجاني، ولكن للاستخدام في الإنتاج يجب الحصول على ترخيص كامل من Aspose.
