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,找到 lib 文件夹下的 Spire.Doc.jar 并进行解压;然后在 IDEA 中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR 文件或路径”(JARs or Directories),找到解压后的 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);
}
}
复制代码
评论