کار با هدر و پاورقی

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")