العمل مع الأقسام
في بعض الأحيان قد ترغب في الحصول على مستند ليس له نفس التنسيق في كافة الصفحات. على سبيل المثال، قد تحتاج إلى تعديل تنسيقات أرقام الصفحات، أو تغيير حجم الصفحة واتجاهها، أو جعل صفحة المستند الأولى كصفحة غلاف بدون أي ترقيم. يمكنك تحقيق ذلك من خلال الأقسام.
الأقسام هي عقد مستوى تتحكم في الرؤوس والتذييلات والاتجاه والأعمدة والهوامش وتنسيق أرقام الصفحات وغيرها.
يسمح لك Aspose.Words بإدارة الأقسام وتقسيم المستند إلى أقسام وإجراء تغييرات التنسيق التي تنطبق فقط على قسم معين. يقوم Aspose.Words بتخزين معلومات حول تنسيق القسم مثل الرؤوس والتذييلات وإعداد الصفحة وإعدادات الأعمدة في فاصل القسم.
تشرح هذه المقالة كيفية التعامل مع المقاطع وفواصل المقاطع.
ما هو القسم وفاصل القسم
يتم تمثيل أقسام المستند بواسطة فئتي Section وSectionCollection. كائنات القسم هي عناصر فرعية مباشرة لعقدة Document ويمكن الوصول إليها عبر خاصية Sections. يمكنك إدارة تلك العقد باستخدام بعض الطرق مثل Remove وAdd وIndexOf وغيرها.
يعد الفاصل المقطعي خيارًا يقسم صفحات المستند إلى أقسام ذات تخطيطات قابلة للتخصيص.
أنواع الفواصل المقطعية
يتيح لك Aspose.Words تقسيم المستندات وتنسيقها باستخدام فواصل أقسام مختلفة لتعداد BreakType:
- قسم بريك مستمر
- قسمBreakNewColumn
- قسمBreakNewPage
- قسمBreakEvenPage
- قسمBreakOddPage
يمكنك أيضًا استخدام تعداد SectionStart لاختيار نوع فاصل ينطبق فقط على القسم الأول مثل NewColumn وNewPage وEvenPage وOddPage.
إدارة قسم
نظرًا لأن القسم عبارة عن عقدة مركبة عادية، فيمكن استخدام معالجة العقدة بأكملها API لمعالجة الأقسام: لإضافة الأقسام وإزالتها وعمليات أخرى على الأقسام. يمكنك قراءة المزيد عن العقد في مقالة Aspose.Words Document Object Model (DOM).
ومن ناحية أخرى، يمكنك أيضًا استخدام DocumentBuilder
API للعمل مع الأقسام. في هذه المقالة، سنركز على هذه الطريقة المحددة للعمل مع الأقسام.
إدراج أو إزالة فاصل مقطعي
يسمح لك Aspose.Words بإدراج فاصل مقطعي في النص باستخدام طريقة InsertBreak.
يوضح مثال التعليمات البرمجية التالي كيفية إدراج فاصل مقطعي في مستند:
استخدم أسلوب Remove لحذف فاصل مقطعي. إذا لم تكن بحاجة إلى إزالة فاصل مقطعي معين وحذف محتوى هذا القسم بدلاً من ذلك، فيمكنك استخدام طريقة ClearContent.
يوضح مثال التعليمات البرمجية التالي كيفية إزالة فواصل الأقسام:
نقل القسم
إذا كنت تريد نقل قسم من موضع إلى آخر في المستند، فستحتاج إلى الحصول على فهرس هذا القسم. يتيح لك Aspose.Words الحصول على موضع القسم من SectionCollection باستخدام خاصية Item. يمكنك استخدام خاصية Sections للحصول على كافة الأقسام في المستند. ولكن إذا كنت تريد الحصول على القسم الأول فقط، فيمكنك استخدام خاصية FirstSection.
يوضح مثال التعليمات البرمجية التالي كيفية الوصول إلى القسم الأول والتكرار عبر العناصر الفرعية للعقدة المركبة:
تحديد تخطيط القسم
في بعض الأحيان تريد أن يبدو المستند الخاص بك أفضل من خلال إنشاء تخطيطات إبداعية لأقسام مختلفة من المستند. إذا كنت تريد تحديد نوع شبكة القسم الحالية، فيمكنك اختيار وضع تخطيط القسم باستخدام تعداد SectionLayoutMode:
- تقصير
- شبكة
- خط الشبكة
- سناب توشارز
يوضح مثال التعليمات البرمجية التالي كيفية تحديد عدد الأسطر التي قد تحتوي عليها كل صفحة:
تحرير قسم
عندما تقوم بإضافة قسم جديد إلى مستندك، لن يكون هناك أي نص أو فقرة يمكنك تحريرها. يسمح لك Aspose.Words بضمان أن القسم يحتوي على نص يحتوي على فقرة واحدة على الأقل باستخدام طريقة EnsureMinimum - سيضيف تلقائيًا عقدة نص (أو تذييل الرأس) إلى المستند ثم يضيف فقرة إليه.
يوضح مثال الكود التالي كيفية تحضير عقدة قسم جديدة باستخدام EnsureMinimum:
إلحاق أو إضافة محتوى مسبقًا
إذا كنت تريد رسم شكل ما أو إضافة نص أو صورة في بداية/نهاية القسم، فيمكنك استخدام أساليب AppendContent وPrependContent لفئة Section.
يوضح مثال التعليمات البرمجية التالي كيفية إلحاق محتوى قسم موجود:
استنساخ القسم
يتيح لك Aspose.Words تكرار قسم عن طريق إنشاء نسخة كاملة منه باستخدام طريقة Clone.
يوضح مثال التعليمات البرمجية التالي كيفية استنساخ القسم الأول في مستندك:
نسخ الأقسام بين المستندات
في بعض الحالات، قد يكون لديك مستندات كبيرة تحتوي على العديد من الأقسام وتريد نسخ محتوى قسم من مستند إلى آخر.
يتيح لك Aspose.Words نسخ الأقسام بين المستندات باستخدام طريقة ImportNode.
يوضح مثال التعليمات البرمجية التالي كيفية نسخ المقاطع بين المستندات:
العمل مع رأس القسم وتذييله
القواعد الأساسية لعرض رأس أو تذييل الصفحة لكل قسم بسيطة للغاية:
- إذا لم يكن للقسم رؤوس/تذييلات خاصة به من نوع معين، فيؤخذ من القسم السابق.
- يتم التحكم في نوع الرأس/التذييل المعروض على الصفحة من خلال إعدادات قسم “الصفحة الأولى المختلفة” و"الصفحات الفردية والزوجية المختلفة" - إذا تم تعطيلها، فسيتم تجاهل عناوين القسم الخاصة.
يوضح مثال التعليمات البرمجية التالي كيفية إنشاء قسمين برؤوس مختلفة:
إذا كنت تريد إزالة نص الرؤوس والتذييلات دون إزالة كائنات HeaderFooter في مستندك، فيمكنك استخدام طريقة ClearHeadersFooters. بالإضافة إلى ذلك، يمكنك استخدام أسلوب DeleteHeaderFooterShapes لإزالة كافة الأشكال من الرؤوس والتذييلات في المستند.
يوضح مثال التعليمات البرمجية التالي كيفية مسح محتوى كافة الرؤوس والتذييلات في القسم:
مثال التعليمات البرمجية التالي كيفية إزالة كافة الأشكال من كافة الرؤوس والتذييلات في القسم:
تخصيص خصائص الصفحة في القسم
قبل طباعة صفحة أو مستند، قد ترغب في تخصيص وتعديل حجم وتخطيط صفحة واحدة أو المستند بأكمله. باستخدام إعداد الصفحة، يمكنك تغيير إعدادات صفحات المستند مثل الهوامش والاتجاه والحجم لطباعة صفحات أولى أو صفحات فردية مختلفة.
يتيح لك Aspose.Words تخصيص خصائص الصفحة والأقسام باستخدام فئة PageSetup.
يوضح مثال التعليمات البرمجية التالي كيفية تعيين خصائص مثل حجم الصفحة واتجاهها للقسم الحالي:
يوضح مثال التعليمات البرمجية التالي كيفية تعديل خصائص الصفحة في كافة الأقسام: