Praca z Headers i Footers

Aspose.Words pozwala użytkownikom pracować z nagłówkami i stopkami w dokumencie. Nagłówek to tekst umieszczony na górze strony, a stopka to tekst na dole strony. Zazwyczaj obszary te są wykorzystywane do umieszczania informacji, które powinny być powtórzone na wszystkich lub niektórych stronach dokumentu, takich jak numery stron, data utworzenia, informacje o firmie itp.

Tworzenie nagłówków lub znaczników przy użyciu DocumentBuilder

Jeśli chcesz dodać nagłówek dokumentu lub stopkę programowo, najprostszym sposobem jest użycie DocumentBuilder Na zajęcia.

Poniższy przykład kodu pokazuje jak dodać nagłówek i stopkę dla stron dokumentu:

Określ opcje nagłówka lub footera

Po dodaniu nagłówka lub stopki do dokumentu można ustawić pewne zaawansowane właściwości. Aspose.Words zapewnia użytkownikom HeaderFooter oraz HeaderFooterCollection zajęcia, jak również HeaderFooterType wyliczenie, które daje większą kontrolę nad procesem dostosowywania nagłówka i stopy.

Określić typ nagłówka lub footera

Dla jednego dokumentu można podać trzy różne typy nagłówków i trzy różne typy stóp:

  1. Nagłówek i / lub stopka dla pierwszej strony
  2. Nagłówek lub stopka dla parzystych stron
  3. Nagłówek lub stopka dla nieparzystych stron

Poniższy przykład kodu pokazuje jak dodać nagłówek dla stron nieparzystych dokumentów:

Określ, czy wyświetlić różne nagłówki lub znaczniki dla pierwszej strony

Jak wspomniano powyżej, możesz również ustawić inny nagłówek lub stopkę dla pierwszej strony. Aby to zrobić, musisz ustawić DifferentFirstPageHeaderFooter do true a następnie specyfikować HeaderFirst lub FooterFirst wartość.

Poniższy przykład kodu pokazuje jak ustawić nagłówek tylko dla pierwszej strony:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Specify that we want different headers and footers for first page.
builder.getPageSetup().setDifferentFirstPageHeaderFooter(true);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_FIRST);
builder.write("Header for the first page.");
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_FIRST);
builder.write("Footer for the first page.");
builder.moveToSection(0);
builder.writeln("Page 1");
builder.insertBreak(BreakType.PAGE_BREAK);
builder.writeln("Page 2");
doc.save(getArtifactsDir() + "WorkingWithHeadersAndFooters.DifferentFirstPage.docx");

Określa, czy wyświetlać różne nagłówki lub znaczniki dla stron nieparzystych lub parzystych

Następnie, będziesz chciał ustawić różne nagłówki lub stopki dla nieparzystych, a nawet stron w dokumencie. Aby to zrobić, musisz ustawić OddAndEvenPagesHeaderFooter do true a następnie określić wartości HeaderPrimary oraz HeaderEven, lub FooterPrimary oraz FooterEven.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Specify that we want different headers and footers for even and odd pages.
builder.getPageSetup().setOddAndEvenPagesHeaderFooter(true);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_EVEN);
builder.write("Header for even pages.");
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
builder.write("Header for odd pages.");
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_EVEN);
builder.write("Footer for even pages.");
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
builder.write("Footer for odd pages.");
builder.moveToSection(0);
builder.writeln("Page 1");
builder.insertBreak(BreakType.PAGE_BREAK);
builder.writeln("Page 2");
doc.save(getArtifactsDir() + "WorkingWithHeadersAndFooters.OddEvenPages.docx");

Wstaw bezwzględną pozycję Obraz w nagłówku

Aby umieścić obraz w nagłówku lub stopka, należy użyć HeaderPrimary typ nagłówka lub FooterPrimary typ stopy i InsertImage Metoda.

Poniższy przykład kodu pokazuje jak dodać obraz do nagłówka:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
builder.insertImage(getImagesDir() + "Logo.jpg", RelativeHorizontalPosition.RIGHT_MARGIN, 10,
RelativeVerticalPosition.PAGE, 10, 50, 50, WrapType.THROUGH);
doc.save(getArtifactsDir() + "WorkingWithHeadersAndFooters.InsertImage.docx");

Ustaw właściwości czcionki i paragrafu dla tekstu nagłówka lub footera

Z Aspose.Words możesz ustawić właściwości czcionki i paragrafu, użyj HeaderPrimary typ nagłówka lub FooterPrimary typ stopki, jak również metody i właściwości do pracy z czcionkami i paragrafami używanymi dla ciała dokumentu.

Poniższy przykład kodu pokazuje, jak ustawić tekst w nagłówku na Arial, pogrubiony, rozmiar 14 i osiowanie środka:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.getFont().setName("Arial");
builder.getFont().setBold(true);
builder.getFont().setSize(14);
builder.write("Header for page.");
doc.save(getArtifactsDir() + "WorkingWithHeadersAndFooters.HeaderFooterFontProps.docx");
view raw font-props.java hosted with ❤ by GitHub

Wstaw numery stron do nagłówka lub footera

W razie potrzeby można dodać numery stron do nagłówka lub stopki. Aby to zrobić, należy użyć HeaderPrimary typ nagłówka lub FooterPrimary typ stopy i InsertField metoda dodawania wymaganego pola.

Poniższy przykład kodu pokazuje jak dodać numery stron do stopki po prawej stronie:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);
builder.write("Page ");
builder.insertField("PAGE", "");
builder.write(" of ");
builder.insertField("NUMPAGES", "");
doc.save(getArtifactsDir() + "WorkingWithHeadersAndFooters.PageNumbers.docx");

Użyj nagłówków lub znaczników zdefiniowanych w poprzedniej sekcji

Jeśli musisz skopiować nagłówek lub stopkę z poprzedniej sekcji, możesz to zrobić także.

Poniższy przykład kodu pokazuje jak skopiować nagłówek lub stopkę z poprzedniej sekcji:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.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.getPreviousSibling();
if (previousSection == null)
return;
section.getHeadersFooters().clear();
for (HeaderFooter headerFooter : previousSection.getHeadersFooters())
section.getHeadersFooters().add(headerFooter.deepClone(true));
}

Zapewnienie wyglądu nagłówka lub footera podczas korzystania z różnych orientacji strony i rozmiar strony

Aspose.Words pozwala na uzyskanie wyglądu nagłówka lub stopki przy użyciu różnych kierunków i rozmiarów stron.

Poniższy przykład pokazuje jak to zrobić:

Jak usunąć tylko nagłówki lub tylko znaczniki

Każda sekcja dokumentu może mieć do trzech nagłówków i do trzech stóp (dla pierwszych, parzystych i dziwnych stron). Jeśli chcesz usunąć wszystkie nagłówki lub wszystkie stopy w dokumencie, musisz pętlę przez wszystkie sekcje i usunąć każdy odpowiedni węzeł nagłówka lub węzeł stopki.

Poniższy przykład kodu pokazuje, jak usunąć wszystkie stopy ze wszystkich sekcji, ale pozostawić nagłówki nienaruszone. Można usunąć tylko nagłówki w podobny sposób:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git.
Document doc = new Document(getMyDir() + "Header and footer types.docx");
for (Section section : doc.getSections())
{
// 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.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_FIRST);
footer.remove();
// Primary footer is the footer used for odd pages.
footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
footer.remove();
footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_EVEN);
footer.remove();
}
doc.save(getArtifactsDir() + "RemoveContent.RemoveFooters.docx");