การทำงานกับส่วนหัวและส่วนท้าย

Contents
[ ]

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