在Word文档中,页眉位于文档中每一个页面的顶部区域,而页脚则位于文档中每一个页面的底部区域。它们都经常使用于显示文档的附加信息,例如时间、图形、公司微标或做者姓名等。本文将经过使用Java程序来演示如何在Word文档中添加页眉和页脚。主要包括:添加文本、图片和页码至页眉、页脚;设置奇偶页页眉页脚不一样;设置首页页眉页脚不一样;锁定页眉页脚。html
方法1:经过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Doc.jar文件导入Java程序。(以下图)java
方法2:经过maven仓库安装导入。具体安装详情参见此网页。app
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.DocPicture; import com.spire.doc.fields.TextRange; import java.awt.*; public class AddHeaderAndFooter { public static void main(String[] args) { //加载须要添加页眉页脚的文档 Document doc= new Document("D:\\Desktop\\Sample.docx"); Section sec = doc.getSections().get(0); //调用方法添加页眉页脚 AddHeaderFooter(sec); //保存文档 doc.saveToFile("output/AddHeaderFooter.docx"); } //自定义方法来添加图片、文字页眉及页码 private static void AddHeaderFooter(Section sec){ //加载图片添加到页眉,并设置图片在段落中的对齐方式 HeaderFooter header = sec.getHeadersFooters().getHeader(); Paragraph hpara= header.addParagraph(); DocPicture pic =hpara.appendPicture("D:\\Desktop\\Image.png"); pic.setHorizontalAlignment(ShapeHorizontalAlignment.Left); pic.setVerticalOrigin(VerticalOrigin.Top_Margin_Area); pic.setVerticalAlignment(ShapeVerticalAlignment.Center); //添加文字到页眉,并设置字体、字号、字体加粗、对齐方式 TextRange txt = hpara.appendText("中青在线"); txt.getCharacterFormat().setUnderlineStyle(UnderlineStyle.None); txt.getCharacterFormat().setTextColor(Color.GRAY); txt.getCharacterFormat().setFontName("仿宋"); txt.getCharacterFormat().setFontSize(12f); txt.getCharacterFormat().setBold(true); hpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Right); //设置图片的文本环绕方式、页眉底部边线(粗细、间距) pic.setTextWrappingStyle(TextWrappingStyle.Behind); hpara.getFormat().getBorders().getBottom().setBorderType(BorderStyle.Single); hpara.getFormat().getBorders().getBottom().setLineWidth(0.5f); hpara.getFormat().getBorders().setSpace(2f); //添加页码到页脚,并设置页脚对齐方式,顶部边线粗细、间距 HeaderFooter footer = sec.getHeadersFooters().getFooter(); Paragraph fpara= footer.addParagraph(); fpara.appendField("页码",FieldType.Field_Page); fpara.appendText("/"); fpara.appendField("总页数",FieldType.Field_Num_Pages); fpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Right); fpara.getFormat().getBorders().getTop().setBorderType(BorderStyle.Single); fpara.getFormat().getBorders().getTop().setLineWidth(1f); fpara.getFormat().getBorders().getTop().setSpace(2f); } }
页眉、页脚添加效果:maven
import com.spire.doc.*; import com.spire.doc.documents.HorizontalAlignment; import com.spire.doc.documents.Paragraph; import com.spire.doc.fields.TextRange; import java.awt.*; public class HeaderFooterForOddAndEvenPages { public static void main(String[] args) { //加载测试文档 Document doc = new Document("D:\\Desktop\\Sample.docx"); Section sec = doc.getSections().get(0); //设置奇偶页页眉页脚不一样 sec.getPageSetup().setDifferentOddAndEvenPagesHeaderFooter(true); //设置奇数页页眉页脚 HeaderFooter oddheader = sec.getHeadersFooters().getOddHeader(); Paragraph para1 = oddheader.addParagraph(); TextRange textRange1 = para1.appendText("奇数页页眉"); para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Left); textRange1.getCharacterFormat().setTextColor(Color.ORANGE); textRange1.getCharacterFormat().setBold(true); HeaderFooter oddfooter = sec.getHeadersFooters().getFooter(); Paragraph para2 = oddfooter.addParagraph(); TextRange textRange2 = para2.appendText("奇数页页脚"); para2.getFormat().setHorizontalAlignment(HorizontalAlignment.Left); textRange2.getCharacterFormat().setTextColor(Color.ORANGE); textRange2.getCharacterFormat().setBold(true); //设置偶数页页眉页脚 HeaderFooter evenheader = sec.getHeadersFooters().getEvenHeader(); Paragraph para3 = evenheader.addParagraph(); TextRange textRange3 = para3.appendText("偶数页页眉"); para3.getFormat().setHorizontalAlignment(HorizontalAlignment.Right); textRange3.getCharacterFormat().setTextColor(Color.BLUE); textRange3.getCharacterFormat().setBold(true); HeaderFooter evenfooter = sec.getHeadersFooters().getEvenFooter(); Paragraph para4 = evenfooter.addParagraph(); TextRange textRange4 = para4.appendText("偶数页页脚"); para4.getFormat().setHorizontalAlignment(HorizontalAlignment.Right); textRange4.getCharacterFormat().setTextColor(Color.BLUE); textRange4.getCharacterFormat().setBold(true); //保存文档 doc.saveToFile("output/result.docx",FileFormat.Docx_2010); } }
奇偶页页眉页脚设置效果:工具
import com.spire.doc.*; import com.spire.doc.documents.HorizontalAlignment; import com.spire.doc.documents.Paragraph; import com.spire.doc.fields.TextRange; import java.awt.*; public class HeaderFooterDifferentFromFirstPage { public static void main(String[] args) { //加载测试文的 Document doc = new Document("D:\\Desktop\\Sample.docx"); Section sec = doc.getSections().get(0); //设置首页页眉页脚不一样 sec.getPageSetup().setDifferentFirstPageHeaderFooter(true); //添加首页页眉页脚 HeaderFooter firstpageheader = sec.getHeadersFooters().getFirstPageHeader(); Paragraph para1 = firstpageheader.addParagraph(); TextRange textRange1 = para1.appendText("首页页眉"); para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); textRange1.getCharacterFormat().setBold(true); textRange1.getCharacterFormat().setTextColor(Color.GREEN); HeaderFooter firstpagefooter = sec.getHeadersFooters().getFirstPageFooter(); Paragraph para2 = firstpagefooter.addParagraph(); TextRange textRange2 = para2.appendText("首页页脚"); para2.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); textRange2.getCharacterFormat().setBold(true); textRange2.getCharacterFormat().setTextColor(Color.GREEN); //添加页眉页脚到其余页面 Paragraph para3 = sec.getHeadersFooters().getHeader().addParagraph(); para3.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); TextRange textRange3 = para3.appendText("非首页页眉"); textRange3.getCharacterFormat().setBold(true); Paragraph para4 = sec.getHeadersFooters().getFooter().addParagraph(); para4.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); TextRange textRange4 = para4.appendText("非首页页脚"); textRange4.getCharacterFormat().setBold(true); //保存文档 doc.saveToFile("output/result2.docx",FileFormat.Docx_2010); } }
页眉页脚设置效果:测试
import com.spire.doc.*; public class LockHeaderFooter { public static void main(String[] args) { //加载测试文档 Document doc = new Document("D:\\Desktop\\result2.docx"); //获取第一节 Section sec = doc.getSections().get(0); // 设置保护类型及密码 doc.protect(ProtectionType.Allow_Only_Form_Fields,"123"); sec.setProtectForm(false); //保存文档 doc.saveToFile("output/LockHeaderFooter.docx",FileFormat.Docx_2010); } }
锁定页眉页脚后,文档除页眉页脚外其余内容依旧可进行编辑。字体
(本文完)网站