العمل مع الرؤوس والتذييلات

يسمح Aspose.Words للمستخدمين بالعمل مع الرؤوس والتذييلات في المستند. الرأس هو النص الذي يتم وضعه في أعلى الصفحة، والتذييل هو النص الموجود في أسفل الصفحة. عادةً ما يتم استخدام هذه المناطق لإدراج المعلومات التي يجب تكرارها في كل صفحات المستند أو بعضها، مثل أرقام الصفحات وتاريخ الإنشاء ومعلومات الشركة وما إلى ذلك.

قم بإنشاء رؤوس أو تذييلات باستخدام DocumentBuilder

إذا كنت تريد إضافة رأس أو تذييل مستند برمجيًا، فإن أسهل طريقة هي استخدام فئة DocumentBuilder للقيام بذلك.

يوضح مثال التعليمات البرمجية التالي كيفية إضافة رأس وتذييل لصفحات المستند:

حدد خيارات الرأس أو التذييل

عند إضافة رأس أو تذييل إلى مستند، يمكنك تعيين بعض الخصائص المتقدمة. يوفر Aspose.Words للمستخدمين فئات HeaderFooter وHeaderFooterCollection، بالإضافة إلى تعداد HeaderFooterType الذي يمنحك المزيد من التحكم في عملية تخصيص الرأس والتذييل.

حدد نوع الرأس أو التذييل

يمكنك تحديد ثلاثة أنواع مختلفة من الرؤوس وثلاثة أنواع مختلفة من التذييلات لمستند واحد:

  1. رأس و/أو تذييل الصفحة الأولى
  2. رأس و/أو تذييل الصفحة للصفحات الزوجية
  3. رأس و/أو تذييل الصفحة للصفحات الفردية

يوضح مثال التعليمات البرمجية التالي كيفية إضافة رأس لصفحات المستندات الفردية:

حدد ما إذا كنت تريد عرض رؤوس أو تذييلات مختلفة للصفحة الأولى

كما ذكرنا أعلاه، يمكنك أيضًا تعيين رأس أو تذييل مختلف للصفحة الأولى. للقيام بذلك، تحتاج إلى تعيين علامة different_first_page_header_footer على true ثم تحديد قيمة HeaderFirst أو FooterFirst.

يوضح مثال التعليمات البرمجية التالي كيفية تعيين الرأس للصفحة الأولى فقط:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.page_setup.different_first_page_header_footer = True
builder.move_to_header_footer(aw.HeaderFooterType.HEADER_FIRST)
builder.write("Header for the first page.")
builder.move_to_header_footer(aw.HeaderFooterType.FOOTER_FIRST)
builder.write("Footer for the first page.")
builder.move_to_section(0)
builder.writeln("Page 1")
builder.insert_break(aw.BreakType.PAGE_BREAK)
builder.writeln("Page 2")
doc.save(ARTIFACTS_DIR + "WorkingWithHeadersAndFooters.different_first_page.docx")

حدد ما إذا كنت تريد عرض رؤوس أو تذييلات مختلفة للصفحات الفردية أو الزوجية

بعد ذلك، ستحتاج إلى تعيين رؤوس أو تذييلات مختلفة للصفحات الفردية والزوجية في المستند. للقيام بذلك، تحتاج إلى تعيين علامة odd_and_even_pages_header_footer على true ثم تحديد القيم HeaderPrimary وHeaderEven، أو FooterPrimary وFooterEven.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.page_setup.odd_and_even_pages_header_footer = True
builder.move_to_header_footer(aw.HeaderFooterType.HEADER_EVEN)
builder.write("Header for even pages.")
builder.move_to_header_footer(aw.HeaderFooterType.HEADER_PRIMARY)
builder.write("Header for odd pages.")
builder.move_to_header_footer(aw.HeaderFooterType.FOOTER_EVEN)
builder.write("Footer for even pages.")
builder.move_to_header_footer(aw.HeaderFooterType.FOOTER_PRIMARY)
builder.write("Footer for odd pages.")
builder.move_to_section(0)
builder.writeln("Page 1")
builder.insert_break(aw.BreakType.PAGE_BREAK)
builder.writeln("Page 2")
doc.save(ARTIFACTS_DIR + "WorkingWithHeadersAndFooters.odd_even_pages.docx")

أدخل صورة ذات موضع مطلق في الرأس

لوضع صورة في رأس أو تذييل، استخدم نوع الرأس HeaderPrimary أو نوع التذييل FooterPrimary وطريقة insert_image.

يوضح مثال التعليمات البرمجية التالي كيفية إضافة صورة إلى الرأس:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.move_to_header_footer(aw.HeaderFooterType.HEADER_PRIMARY)
builder.insert_image(IMAGES_DIR + "Logo.jpg",
aw.drawing.RelativeHorizontalPosition.RIGHT_MARGIN,
10, aw.drawing.RelativeVerticalPosition.PAGE, 10, 50, 50,
aw.drawing.WrapType.THROUGH)
doc.save(ARTIFACTS_DIR + "WorkingWithHeadersAndFooters.insert_image.docx")
view raw insert-image.py hosted with ❤ by GitHub

قم بتعيين خصائص الخط والفقرة لنص الرأس أو التذييل

باستخدام Aspose.Words، يمكنك تعيين خصائص الخط والفقرة، واستخدام نوع رأس HeaderPrimary أو نوع تذييل FooterPrimary، بالإضافة إلى طرق وخصائص العمل مع الخطوط والفقرات التي تستخدمها لنص المستند.

يوضح مثال التعليمات البرمجية التالي كيفية تعيين النص في الرأس إلى Arial وغامق وحجم 14 ومحاذاة للوسط:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.move_to_header_footer(aw.HeaderFooterType.HEADER_PRIMARY)
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.name = "Arial"
builder.font.bold = True
builder.font.size = 14
builder.write("Header for pages.")
doc.save(ARTIFACTS_DIR + "WorkingWithHeadersAndFooters.font_props.docx")
view raw font-props.py hosted with ❤ by GitHub

أدخل أرقام الصفحات في الرأس أو التذييل

إذا لزم الأمر، يمكنك إضافة أرقام الصفحات إلى الرأس أو التذييل. للقيام بذلك، استخدم نوع رأس HeaderPrimary أو نوع تذييل الصفحة FooterPrimary وطريقة insert_field لإضافة الحقل المطلوب.

يوضح مثال التعليمات البرمجية التالي كيفية إضافة أرقام الصفحات إلى التذييل الموجود على اليمين:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.move_to_header_footer(aw.HeaderFooterType.FOOTER_PRIMARY)
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.write("Page ")
builder.insert_field("PAGE", "")
builder.write(" of ")
builder.insert_field("NUMPAGES", "")
doc.save(ARTIFACTS_DIR + "WorkingWithHeadersAndFooters.page_numbers.docx")
view raw page-numbers.py hosted with ❤ by GitHub

استخدم الرؤوس والتذييلات المحددة في القسم السابق

إذا كنت بحاجة إلى نسخ الرأس أو التذييل من القسم السابق، فيمكنك القيام بذلك أيضًا.

يوضح مثال التعليمات البرمجية التالي كيفية نسخ الرأس أو التذييل من القسم السابق:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
@staticmethod
def copy_headers_footers_from_previous_section(section):
"""Clones and copies headers/footers form the previous section to the specified section."""
previous_section = section.previous_sibling.as_section()
if previous_section is None:
return
section.headers_footers.clear()
for header_footer in previous_section.headers_footers:
section.headers_footers.add(header_footer.clone(True))

تأكد من ظهور الرأس أو التذييل عند استخدام اتجاهات مختلفة للصفحة وحجم الصفحة

يسمح لك Aspose.Words بتوفير مظهر الرأس أو التذييل عند استخدام اتجاهات وأحجام صفحات مختلفة.

يوضح المثال التالي كيفية القيام بذلك:

كيفية إزالة الرؤوس فقط أو التذييلات فقط

يمكن أن يحتوي كل قسم في المستند على ما يصل إلى ثلاثة رؤوس وما يصل إلى ثلاثة تذييلات (للصفحات الأولى والزوجية والفردية). إذا كنت تريد إزالة كل الرؤوس أو كل التذييلات في المستند، فستحتاج إلى تكرار جميع الأقسام وإزالة كل عقدة رأس أو عقدة تذييل مقابلة.

يوضح مثال التعليمات البرمجية التالي كيفية إزالة كافة التذييلات من كافة الأقسام مع ترك الرؤوس سليمة. يمكنك إزالة الرؤوس فقط بطريقة مماثلة:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Header and footer types.docx")
for section in doc:
section = section.as_section()
# Up to three different footers are possible in a section (for first, even and odd pages)
# we check and delete all of them.
footer = section.headers_footers.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_FIRST)
if footer is not None:
footer.remove()
# Primary footer is the footer used for odd pages.
footer = section.headers_footers.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_PRIMARY)
if footer is not None:
footer.remove()
footer = section.headers_footers.get_by_header_footer_type(aw.HeaderFooterType.FOOTER_EVEN)
if footer is not None:
footer.remove()
doc.save(ARTIFACTS_DIR + "RemoveContent.remove_footers.docx")