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

Aspose.Words به کاربران اجازه می دهد تا با سرصفحه ها و پاورقی ها در یک سند کار کنند. سربرگ متنی است که در بالای صفحه قرار می گیرد و پاورقی متنی در پایین صفحه است. معمولاً از این قسمت ها برای درج اطلاعاتی استفاده می شود که باید در تمام یا برخی از صفحات سند تکرار شوند، مانند شماره صفحات، تاریخ ایجاد، اطلاعات شرکت و غیره.

با استفاده از DocumentBuilder هدر یا پاورقی ایجاد کنید

اگر می خواهید سرصفحه یا پاورقی سند را به صورت برنامه ریزی شده اضافه کنید، ساده ترین راه استفاده از کلاس DocumentBuilder برای انجام آن است.

مثال کد زیر نحوه افزودن سرصفحه و پاورقی برای صفحات سند را نشان می دهد:

هنگامی که یک سرصفحه یا پاورقی به یک سند اضافه می کنید، می توانید برخی از ویژگی های پیشرفته را تنظیم کنید. Aspose.Words کلاس‌های HeaderFooter و HeaderFooterCollection و همچنین شمارش HeaderFooterType را در اختیار کاربران قرار می‌دهد که به شما کنترل بیشتری بر فرآیند سفارشی‌سازی هدر و پاورقی می‌دهد.

شما می توانید سه نوع مختلف سرصفحه و سه نوع پاورقی مختلف را برای یک سند مشخص کنید:

  1. سرصفحه و/یا پاورقی برای صفحه اول
  2. سرصفحه و/یا پاورقی برای صفحات زوج
  3. سرصفحه و/یا پاورقی برای صفحات فرد

مثال کد زیر نحوه اضافه کردن هدر برای صفحات سند فرد را نشان می دهد:

مشخص کنید که آیا سرصفحه یا پاورقی متفاوت برای صفحه اول نمایش داده شود

همانطور که در بالا گفته شد، همچنین می توانید یک هدر یا پاورقی متفاوت برای صفحه اول تنظیم کنید. برای انجام این کار، باید پرچم DifferentFirstPageHeaderFooter را روی true تنظیم کنید و سپس مقدار HeaderFirst یا FooterFirst را مشخص کنید.

مثال کد زیر نحوه تنظیم هدر فقط برای صفحه اول را نشان می دهد:

// 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);
// Specify that we want different headers and footers for first page.
builder.PageSetup.DifferentFirstPageHeaderFooter = true;
builder.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
builder.Write("Header for the first page.");
builder.MoveToHeaderFooter(HeaderFooterType.FooterFirst);
builder.Write("Footer for the first page.");
builder.MoveToSection(0);
builder.Writeln("Page 1");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page 2");
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.DifferentFirstPage.docx");

مشخص کنید که آیا سرصفحه یا پاورقی متفاوت برای صفحات فرد یا زوج نمایش داده شود

در مرحله بعد، می خواهید سرصفحه ها یا پاورقی های مختلفی را برای صفحات زوج و فرد در یک سند تنظیم کنید. برای این کار باید پرچم OddAndEvenPagesHeaderFooter را روی true تنظیم کنید و سپس مقادیر HeaderPrimary و HeaderEven یا FooterPrimary و FooterEven را مشخص کنید.

// 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);
// Specify that we want different headers and footers for even and odd pages.
builder.PageSetup.OddAndEvenPagesHeaderFooter = true;
builder.MoveToHeaderFooter(HeaderFooterType.HeaderEven);
builder.Write("Header for even pages.");
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.Write("Header for odd pages.");
builder.MoveToHeaderFooter(HeaderFooterType.FooterEven);
builder.Write("Footer for even pages.");
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
builder.Write("Footer for odd pages.");
builder.MoveToSection(0);
builder.Writeln("Page 1");
builder.InsertBreak(BreakType.PageBreak);
builder.Writeln("Page 2");
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.OddEvenPages.docx");

یک تصویر کاملاً موقعیت‌یافته را در هدر قرار دهید

برای قرار دادن تصویر در هدر یا پاورقی، از نوع هدر HeaderPrimary یا نوع فوتر FooterPrimary و روش InsertImage استفاده کنید.

مثال کد زیر نحوه افزودن یک تصویر به هدر را نشان می دهد:

// 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);
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.InsertImage(ImagesDir + "Logo.jpg", RelativeHorizontalPosition.RightMargin, 10,
RelativeVerticalPosition.Page, 10, 50, 50, WrapType.Through);
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.InsertImage.docx");
view raw insert-image.cs 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-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
builder.Font.Name = "Arial";
builder.Font.Bold = true;
builder.Font.Size = 14;
builder.Write("Header for page.");
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.FontProps.docx");
view raw font-props.cs hosted with ❤ by GitHub

اعداد صفحه را در هدر یا پاورقی درج کنید

در صورت لزوم، می توانید شماره صفحه را به هدر یا پاورقی اضافه کنید. برای این کار از نوع هدر HeaderPrimary یا نوع فوتر FooterPrimary و روش InsertField برای اضافه کردن فیلد مورد نیاز استفاده کنید.

مثال کد زیر نحوه اضافه کردن شماره صفحه را به پاورقی سمت راست نشان می دهد:

// 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);
builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;
builder.Write("Page ");
builder.InsertField("PAGE", "");
builder.Write(" of ");
builder.InsertField("NUMPAGES", "");
doc.Save(ArtifactsDir + "WorkingWithHeadersAndFooters.PageNumbers.docx");
view raw page-numbers.cs hosted with ❤ by GitHub

از سرصفحه ها یا پاورقی های تعریف شده در بخش قبلی استفاده کنید

اگر نیاز به کپی کردن هدر یا پاورقی از قسمت قبل دارید، می توانید این کار را نیز انجام دهید.

مثال کد زیر نحوه کپی کردن هدر یا پاورقی از بخش قبلی را نشان می دهد:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
/// <summary>
/// Clones and copies headers/footers form the previous section to the specified section.
/// </summary>
private void CopyHeadersFootersFromPreviousSection(Section section)
{
Section previousSection = (Section)section.PreviousSibling;
if (previousSection == null)
return;
section.HeadersFooters.Clear();
foreach (HeaderFooter headerFooter in previousSection.HeadersFooters)
section.HeadersFooters.Add(headerFooter.Clone(true));
}

هنگام استفاده از جهت گیری های مختلف صفحه و اندازه صفحه، از ظاهر سرصفحه یا پاورقی اطمینان حاصل کنید

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(MyDir + "Header and footer types.docx");
foreach (Section section in doc)
{
// Up to three different footers are possible in a section (for first, even and odd pages)
// we check and delete all of them.
HeaderFooter footer = section.HeadersFooters[HeaderFooterType.FooterFirst];
footer?.Remove();
// Primary footer is the footer used for odd pages.
footer = section.HeadersFooters[HeaderFooterType.FooterPrimary];
footer?.Remove();
footer = section.HeadersFooters[HeaderFooterType.FooterEven];
footer?.Remove();
}
doc.Save(ArtifactsDir + "RemoveContent.RemoveFooters.docx");