Üstbilgi ve Altbilgilerle Çalışma

Aspose.Words kullanıcıların bir belgedeki üstbilgi ve altbilgilerle çalışmasına izin verir. Üstbilgi, sayfanın en üstüne yerleştirilen metindir ve altbilgi, sayfanın altındaki metindir. Genellikle bu alanlar, sayfa numaraları, oluşturulma tarihi, şirket bilgileri vb. Gibi belgenin tamamında veya bazı sayfalarında tekrarlanması gereken bilgileri eklemek için kullanılır.

DocumentBuilder kullanarak Üstbilgi veya Altbilgi oluşturma

Programlı olarak bir belge üstbilgisi veya altbilgisi eklemek istiyorsanız, bunu yapmanın en kolay yolu DocumentBuilder sınıfını kullanmaktır.

Aşağıdaki kod örneği, belge sayfaları için üstbilgi ve altbilginin nasıl ekleneceğini gösterir:

Üstbilgi veya Altbilgi Seçeneklerini Belirtin

Bir belgeye üstbilgi veya altbilgi eklediğinizde, bazı gelişmiş özellikler ayarlayabilirsiniz. Aspose.Words, kullanıcılara HeaderFooter ve HeaderFooterCollection sınıflarının yanı sıra üstbilgi ve altbilgi özelleştirme işlemi üzerinde size daha fazla kontrol sağlayan HeaderFooterType numaralandırma sağlar.

Üstbilgi veya Altbilgi Türünü Belirtin

Bir belge için üç farklı üstbilgi türü ve üç farklı altbilgi türü belirtebilirsiniz:

  1. İlk sayfanın üstbilgisi ve / veya altbilgisi
  2. Çift sayfalar için üstbilgi ve / veya altbilgi
  3. Tek sayfalar için üstbilgi ve / veya altbilgi

Aşağıdaki kod örneği, tek belge sayfaları için bir üstbilginin nasıl ekleneceğini gösterir:

İlk Sayfa için Farklı Üstbilgi veya Altbilgilerin Görüntülenip Görüntülenmeyeceğini belirtin

Yukarıda belirtildiği gibi, ilk sayfa için farklı bir üstbilgi veya altbilgi de ayarlayabilirsiniz. Bunu yapmak için DifferentFirstPageHeaderFooter bayrağını true olarak ayarlamanız ve ardından HeaderFirst veya FooterFirst değerini belirtmeniz gerekir.

Aşağıdaki kod örneği, yalnızca ilk sayfa için üstbilginin nasıl ayarlanacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
// Specify that we want different headers and footers for first page.
builder->get_PageSetup()->set_DifferentFirstPageHeaderFooter(true);
builder->MoveToHeaderFooter(HeaderFooterType::HeaderFirst);
builder->Write(u"Header for the first page.");
builder->MoveToHeaderFooter(HeaderFooterType::FooterFirst);
builder->Write(u"Footer for the first page.");
builder->MoveToSection(0);
builder->Writeln(u"Page 1");
builder->InsertBreak(BreakType::PageBreak);
builder->Writeln(u"Page 2");
doc->Save(ArtifactsDir + u"WorkingWithHeadersAndFooters.DifferentFirstPage.docx");

Tek veya Çift Sayfalar için Farklı Üstbilgi veya Altbilgilerin Görüntülenip Görüntülenmeyeceğini belirtin

Ardından, bir belgedeki tek ve çift sayfalar için farklı üstbilgiler veya altbilgiler ayarlamak isteyeceksiniz. Bunu yapmak için OddAndEvenPagesHeaderFooter bayrağını true olarak ayarlamanız ve ardından HeaderPrimary ve HeaderEven veya FooterPrimary ve FooterEven değerlerini belirtmeniz gerekir.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
// Specify that we want different headers and footers for even and odd pages.
builder->get_PageSetup()->set_OddAndEvenPagesHeaderFooter(true);
builder->MoveToHeaderFooter(HeaderFooterType::HeaderEven);
builder->Write(u"Header for even pages.");
builder->MoveToHeaderFooter(HeaderFooterType::HeaderPrimary);
builder->Write(u"Header for odd pages.");
builder->MoveToHeaderFooter(HeaderFooterType::FooterEven);
builder->Write(u"Footer for even pages.");
builder->MoveToHeaderFooter(HeaderFooterType::FooterPrimary);
builder->Write(u"Footer for odd pages.");
builder->MoveToSection(0);
builder->Writeln(u"Page 1");
builder->InsertBreak(BreakType::PageBreak);
builder->Writeln(u"Page 2");
doc->Save(ArtifactsDir + u"WorkingWithHeadersAndFooters.OddEvenPages.docx");

Başlığa Kesinlikle Konumlandırılmış Bir Görüntü Ekleyin

Görüntüyü üstbilgi veya altbilgiye yerleştirmek için HeaderPrimary üstbilgi türünü veya FooterPrimary altbilgi türünü ve InsertImage yöntemini kullanın.

Aşağıdaki kod örneği, bir üstbilgiye nasıl resim ekleneceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->MoveToHeaderFooter(HeaderFooterType::HeaderPrimary);
builder->InsertImage(ImagesDir + u"Logo.jpg", RelativeHorizontalPosition::RightMargin, 10,
RelativeVerticalPosition::Page, 10, 50, 50, WrapType::Through);
doc->Save(ArtifactsDir + u"WorkingWithHeadersAndFooters.InsertImage.docx");
view raw insert-image.h hosted with ❤ by GitHub

Üstbilgi veya Altbilgi Metni için Yazı Tipi ve Paragraf Özelliklerini Ayarlama

Aspose.Words ile yazı tipi ve paragraf özelliklerini ayarlayabilir, HeaderPrimary üstbilgi türünü veya FooterPrimary altbilgi türünü ve belge gövdesi için kullandığınız yazı tipleri ve paragraflarla çalışma yöntemlerini ve özelliklerini kullanabilirsiniz.

Aşağıdaki kod örneği, üstbilgideki metnin Arial, bold, size 14 ve center alignment olarak nasıl ayarlanacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->MoveToHeaderFooter(HeaderFooterType::HeaderPrimary);
builder->get_ParagraphFormat()->set_Alignment(ParagraphAlignment::Center);
builder->get_Font()->set_Name(u"Arial");
builder->get_Font()->set_Bold(true);
builder->get_Font()->set_Size(14);
builder->Write(u"Header for page.");
doc->Save(ArtifactsDir + u"WorkingWithHeadersAndFooters.FontProps.docx");
view raw font-props.h hosted with ❤ by GitHub

Sayfa Numaralarını Üstbilgiye veya Altbilgiye Ekleme

Gerekirse, üstbilgiye veya altbilgiye sayfa numaraları ekleyebilirsiniz. Bunu yapmak için, gerekli alanı eklemek üzere HeaderPrimary üstbilgi türünü veya FooterPrimary altbilgi türünü ve InsertField yöntemini kullanın.

Aşağıdaki kod örneği, sağdaki altbilgiye sayfa numaralarının nasıl ekleneceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->MoveToHeaderFooter(HeaderFooterType::FooterPrimary);
builder->get_ParagraphFormat()->set_Alignment(ParagraphAlignment::Right);
builder->Write(u"Page ");
builder->InsertField(u"PAGE", u"");
builder->Write(u" of ");
builder->InsertField(u"NUMPAGES", u"");
doc->Save(ArtifactsDir + u"WorkingWithHeadersAndFooters.PageNumbers.docx");
view raw page-numbers.h hosted with ❤ by GitHub

Önceki Bölümde Tanımlanan Üstbilgileri veya Altbilgileri Kullanma

Üstbilgiyi veya altbilgiyi önceki bölümden kopyalamanız gerekiyorsa, bunu da yapabilirsiniz.

Aşağıdaki kod örneği, üstbilgi veya altbilginin önceki bölümden nasıl kopyalanacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
/// <summary>
/// Clones and copies headers/footers form the previous section to the specified section.
/// </summary>
void CopyHeadersFootersFromPreviousSection(SharedPtr<Section> section)
{
auto previousSection = System::ExplicitCast<Section>(section->get_PreviousSibling());
if (previousSection == nullptr)
{
return;
}
section->get_HeadersFooters()->Clear();
for (const auto& headerFooter : System::IterateOver<HeaderFooter>(previousSection->get_HeadersFooters()))
{
section->get_HeadersFooters()->Add((System::ExplicitCast<Node>(headerFooter))->Clone(true));
}
}

Farklı Sayfa Yönelimleri ve Sayfa Boyutu Kullanırken Üstbilgi veya Altbilgi görünümünü sağlayın

Aspose.Words farklı yönelimler ve sayfa boyutları kullanırken bir üstbilgi veya altbilgi görünümü sağlamanıza olanak tanır.

Aşağıdaki örnek, bunun nasıl yapılacağını gösterir:

Yalnızca Üstbilgileri veya Altbilgileri Kaldırma

Belgedeki her bölüm en fazla üç üstbilgiye ve en fazla üç altbilgiye sahip olabilir (ilk, çift ve tek sayfalar için). Bir belgedeki tüm üstbilgileri veya altbilgileri kaldırmak istiyorsanız, tüm bölümler arasında dolaşmanız ve karşılık gelen her üstbilgi düğümünü veya altbilgi düğümünü kaldırmanız gerekir.

Aşağıdaki kod örneği, tüm altbilgilerin tüm bölümlerden nasıl kaldırılacağını, ancak üstbilgilerin bozulmadan nasıl bırakılacağını gösterir. Yalnızca başlıkları benzer şekilde kaldırabilirsiniz:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
auto doc = MakeObject<Document>(MyDir + u"Header and footer types.docx");
for (const auto& section : System::IterateOver<Section>(doc))
{
// Up to three different footers are possible in a section (for first, even and odd pages)
// we check and delete all of them.
SharedPtr<HeaderFooter> footer = section->get_HeadersFooters()->idx_get(HeaderFooterType::FooterFirst);
if (footer != nullptr)
{
footer->Remove();
}
// Primary footer is the footer used for odd pages.
footer = section->get_HeadersFooters()->idx_get(HeaderFooterType::FooterPrimary);
if (footer != nullptr)
{
footer->Remove();
}
footer = section->get_HeadersFooters()->idx_get(HeaderFooterType::FooterEven);
if (footer != nullptr)
{
footer->Remove();
}
}
doc->Save(ArtifactsDir + u"RemoveContent.RemoveFooters.docx");