머리글 및 바닥 글 작업

Aspose.Words사용자가 문서의 머리글 및 바닥글로 작업할 수 있습니다. 머리글은 페이지 맨 위에 있는 텍스트이고 바닥글은 페이지 맨 아래에 있는 텍스트입니다. 일반적으로 이러한 영역은 페이지 번호,작성 날짜,회사 정보 등과 같이 문서의 전체 또는 일부 페이지에 반복해야 하는 정보를 삽입하는 데 사용됩니다.

DocumentBuilder을 사용하여 머리글 또는 바닥글 만들기

프로그래밍 방식으로 문서 머리글 또는 바닥글을 추가하려면DocumentBuilder클래스를 사용하여 가장 쉬운 방법을 사용합니다.

다음 코드 예제에서는 문서 페이지에 머리글과 바닥글을 추가하는 방법을 보여 줍니다:

머리글 또는 바닥글 옵션 지정

문서에 머리글 또는 바닥글을 추가할 때 일부 고급 속성을 설정할 수 있습니다. Aspose.Words은 사용자에게HeaderFooterHeaderFooterCollection클래스와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-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");

홀수 또는 짝수 페이지에 대해 다른 머리글 또는 바닥글을 표시할지 여부를 지정합니다

다음으로 문서의 홀수 및 짝수 페이지에 대해 다른 머리글 또는 바닥글을 설정할 수 있습니다. 이렇게 하려면OddAndEvenPagesHeaderFooter플래그를true로 설정한 다음HeaderPrimaryHeaderEven또는FooterPrimaryFooterEven값을 지정해야 합니다.

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

헤더에 절대적으로 배치 된 이미지 삽입

머리글 또는 바닥글에 이미지를 배치하려면HeaderPrimary머리글 유형 또는FooterPrimary바닥글 유형 및InsertImage방법을 사용합니다.

다음 코드 예제에서는 헤더에 이미지를 추가하는 방법을 보여 줍니다:

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

머리글 또는 바닥글 텍스트의 글꼴 및 단락 속성 설정

Aspose.Words를 사용하면 글꼴 및 단락 속성을 설정하고HeaderPrimary머리글 유형 또는FooterPrimary바닥글 유형을 사용할 수 있으며 문서 본문에 사용하는 글꼴 및 단락 작업을 위한 메서드 및 속성을 사용할 수 있습니다.

다음 코드 예제에서는 머리글의 텍스트를 굵게,굵게,크기 14 및 가운데 맞춤으로 설정하는 방법을 보여 줍니다:

// 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

머리글 또는 바닥글에 페이지 번호 삽입

필요한 경우 머리글 또는 바닥 글에 페이지 번호를 추가 할 수 있습니다. 이렇게 하려면HeaderPrimary머리글 유형 또는FooterPrimary바닥글 유형 및InsertField메서드를 사용하여 필수 필드를 추가합니다.

다음 코드 예제에서는 오른쪽 바닥글에 페이지 번호를 추가하는 방법을 보여 줍니다:

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

이전 섹션에 정의된 머리글 또는 바닥글 사용

이전 섹션에서 머리글 또는 바닥 글을 복사해야하는 경우,당신도 그렇게 할 수 있습니다.

다음 코드 예제에서는 이전 섹션의 머리글 또는 바닥글을 복사하는 방법을 보여 줍니다:

// 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));
}

다른 페이지 방향 및 페이지 크기를 사용할 때 머리글 또는 바닥글 모양 확인

Aspose.Words다른 방향 및 페이지 크기를 사용할 때 머리글 또는 바닥글의 모양을 제공할 수 있습니다.

다음 예제에서는 이 작업을 수행하는 방법을 보여 줍니다:

머리글 만 제거하거나 바닥 글 만 제거하는 방법

문서의 각 섹션에는 최대 3 개의 머리글과 최대 3 개의 바닥글(첫 번째,짝수 및 홀수 페이지)이 있을 수 있습니다. 문서의 모든 머리글 또는 모든 바닥글을 제거하려면 모든 섹션을 반복하고 각 해당 머리글 노드 또는 바닥글 노드를 제거해야 합니다.

다음 코드 예제에서는 모든 섹션에서 모든 바닥글을 제거하고 머리글을 그대로 두는 방법을 보여 줍니다. 비슷한 방법으로 헤더 만 제거 할 수 있습니다:

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