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