Java:在Word文档中添加或删除页眉页脚

Word 中的页眉和页脚通常用显示文档的附加信息,如主题、页码或文档的文案等。在这篇文章中,我将分别介绍如何使用Free Spire.Doc for Java为Word文档添加和删除页眉和页脚。

 

 

安装Spire.Doc.Jar

方法一:

如果您使用的是 maven,可以通过添加以下代码到项目的 pom.xml 文件中,将 JAR 文件导入到应用程序中。

<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.doc.free</artifactId>

        <version>5.2.0</version>

    </dependency>

</dependencies>

 

 

方法二:

如果您没有使用 maven则可以下载Free Spire.Doc for Java下载完成后,将下载包进行解压;然后IDEA中创建一个新项目,依次点击“文件”(File),“项目结Project Structure),“Modules),“依赖项”Dependencies),再点击右方绿+”下的第一个选项JAR文件或路径”(JARs or Directories),找到之前解压好的文件,并将其中的lib文件夹下的Spire.Doc.jar文件导入到项目中。

 

Word文档添加页眉和页脚

Free Spire.Doc for Java 支持将文本、图像和页码等添加到 Word 文档中作为页眉或页脚。

  • 使用 Document.loadFromFile() 方法创建一个Document 实例并加载一个Word示例文档。
  • 使用 Document.getSections().get() 方法获取第一节。
  • 使用 section.getHeadersFooters().getHeader() 方法获取页眉,并使用 section.getHeadersFooters().getFooter() 方法获取页脚。
  • 使用 header.addParagraph() 方法将段落添加到页眉。
  • 使用 headerParagraph.appendPicture() 方法将图像插入页眉,并设置图像的位置。
  • 使用 headerParagraph.appendText() 方法将文本插入页眉,并设置文本格式。
  • 使用 footer.addParagraph() 方法将段落添加到页脚。
  • 使用footerParagraph.appendField()方法将Field_Page域和Field_Num_Pages域添加到页脚段落中,并为其设置格式。
  • 使用 Document.saveToFile() 方法将文档保存到另一个文件。
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;


public class insertHeaderFooter {
    public static void main(String[] args) throws Exception {

        //创建一个 Document 实例
        Document document = new Document();

        //加载一个Word示例文档
        document.loadFromFile("Sample.docx");
        //获取第一节
        Section section = document.getSections().get(0);

        //通过insertHeaderAndFooter方法为节添加页眉页脚
        insertHeaderAndFooter(section);

        //将文档保存到另一个文件
        document.saveToFile("output/HeaderAndFooter.docx", FileFormat.Docx);
    }

    private static void insertHeaderAndFooter(Section section) {

        //从节中获取页眉页脚
        HeaderFooter header = section.getHeadersFooters().getHeader();
        HeaderFooter footer = section.getHeadersFooters().getFooter();

        //将段落添加到页眉
        Paragraph headerParagraph = header.addParagraph();

        //将图像插入页眉并设置图像的位置
        DocPicture headerPicture = headerParagraph.appendPicture("成都.jpg");
        headerPicture.setHorizontalAlignment(ShapeHorizontalAlignment.Left);
        headerPicture.setVerticalOrigin(VerticalOrigin.Top_Margin_Area);
        headerPicture.setVerticalAlignment(ShapeVerticalAlignment.Bottom);

        //将文本插入页眉
        TextRange text = headerParagraph.appendText("世界大学生运动会");
        text.getCharacterFormat().setFontName("Arial");
        text.getCharacterFormat().setFontSize(10);
        text.getCharacterFormat().setItalic(true);
        headerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);

        //设置文本环绕方式
        headerPicture.setTextWrappingStyle(TextWrappingStyle.Behind);

        //设置页眉段落的底部边框样式
        headerParagraph.getFormat().getBorders().getBottom().setBorderType(BorderStyle.Single);
        headerParagraph.getFormat().getBorders().getBottom().setLineWidth(1f);

        //调整页眉距离
        section.getPageSetup().setHeaderDistance(100);

        //将段落添加到页脚
        Paragraph footerParagraph = footer.addParagraph();

        //将Field_Page域和Field_Num_Pages域添加到页脚段落中
        footerParagraph.appendField("page number", FieldType.Field_Page);
        footerParagraph.appendText(" of ");
        footerParagraph.appendField("number of pages", FieldType.Field_Num_Pages);
        footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

        //设置页脚段落的顶部边框样式
        footerParagraph.getFormat().getBorders().getTop().setBorderType(BorderStyle.Single);
        footerParagraph.getFormat().getBorders().getTop().setLineWidth(1f);

        //调整页脚距离
        section.getPageSetup().setFooterDistance(70);
    }
}

Word文档删除页眉和页脚

Word 文档中有三种类型的页眉和页脚:位于第一页、奇数页或偶数页。在这里我将演示如何使用 Free Spire.Doc for Java 删除 Word 文档中第一页、奇数页和偶数页上的所有页眉和页脚。

  • 创建Document实例。
  • 使用 Document.loadFromFile() 方法加载Word示例文档。
  • 使用 Document.getSections().get() 方法获取第一节。
  • 按 section.getHeadersFooters().getByHeaderFooterType() 方法获取所有页眉和页脚。
  • 使用 HeaderFooter.getChildObjects().clear() 方法删除所有页眉和页脚。
  • 使用 Document.saveToFile() 方法将文档保存到另一个文件。

 

import com.spire.doc.*;
import com.spire.doc.documents.*;

public class RemoveHeaderFooter {
    public static void main(String[] args) throws Exception {

        //创建Document实例
        Document document = new Document();

        //加载Word示例文档
        document.loadFromFile("HeaderAndFooter.docx");

        //获取第一节
        Section section = document.getSections().get(0);

        //删除第一页的页眉
        HeaderFooter header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.Header_First_Page);
        if (header != null)
            header.getChildObjects().clear();

        //删除奇数页的页眉
        header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.Header_Odd);
        if (header != null)
            header.getChildObjects().clear();

        //删除偶数页的页眉
        header = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.Header_Even);
        if (header != null)
            header.getChildObjects().clear();


        //删除第一页的页脚
        HeaderFooter footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.Footer_First_Page);
        if (footer != null)
            footer.getChildObjects().clear();

        //删除奇数页的页脚
        footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.Footer_Odd);
        if (footer != null)
            footer.getChildObjects().clear();

        //删除偶数页的页脚
        footer = section.getHeadersFooters().getByHeaderFooterType(HeaderFooterType.Footer_Even);
        if (footer != null)
            footer.getChildObjects().clear();


        //保存结果文档
        document.saveToFile("output/RemoveHeaderfooter.docx", FileFormat.Docx_2013);

    }
}

posted @ 2022-08-19 16:34  Gia-  阅读(1842)  评论(0编辑  收藏  举报