Java 添加Word页眉、页脚
程序员文章站
2022-06-28 21:58:11
本篇文章将介绍通过java程序来添加Word页眉页脚的方法。鉴于在不同文档中,对页眉页脚的操作要求不同,文章将分别从以下几种情况来阐述: 1.添加页眉页脚 添加图片到页眉 添加文本到页眉 添加页码 2.设置奇偶页不同的页眉页脚 3.设置首页页眉页脚不同 4.不连续设置页码(即对不同章节的内容设置不同 ......
本篇文章将介绍通过java程序来添加word页眉页脚的方法。鉴于在不同文档中,对页眉页脚的操作要求不同,文章将分别从以下几种情况来阐述:
1.添加页眉页脚
- 添加图片到页眉
- 添加文本到页眉
- 添加页码
2.设置奇偶页不同的页眉页脚
3.设置首页页眉页脚不同
4.不连续设置页码(即对不同章节的内容设置不同页码)
5.锁定页眉页脚(不可编辑页眉页脚)
6.删除页眉页脚
- 删除全部页眉页脚
- 删除首页页眉页脚
使用工具:free spire.doc for java
方法一:直接获取文件包里的jar文件,导入到程序(需要先下载文件包)。
方法二:通过maven导入到程序。
【示例1】添加页眉页脚(文本、图片、页码)
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 addheaderfooter { public static void main(string[]args){ //加载需要添加页眉页脚的文档 document doc= new document("test.docx"); section sec = doc.getsections().get(0); //调用方法添加页眉页脚 addheaderfooter(sec); //保存文档 doc.savetofile("addheaderfooter.docx"); } //自定义方法来添加图片、文字页眉及页码 private static void addheaderfooter(section sec){ //加载图片添加到页眉,并设置图片在段落中的对齐方式 headerfooter header = sec.getheadersfooters().getheader(); paragraph hpara= header.addparagraph(); docpicture pic =hpara.appendpicture("1.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); } }
页眉页脚添加效果:
【示例2】设置奇偶页页眉页脚不同
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("test.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("result.docx",fileformat.docx_2010); } }
奇偶数页眉页脚设置效果:
【示例3】设置首页页眉页脚不同
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("test.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("result2.docx",fileformat.docx_2010); } }
页眉页脚设置效果:
【示例4】不连续设置页码
import com.spire.doc.*; import com.spire.doc.documents.horizontalalignment; import com.spire.doc.documents.pagenumberstyle; import com.spire.doc.documents.paragraph; public class differentpagenumber { public static void main(string[]args){ //加载测试文档 document doc = new document("test.docx"); //添加页码到第一节 headerfooter footer= doc.getsections().get(0).getheadersfooters().getfooter(); paragraph footerpara = footer.addparagraph(); footerpara.appendfield("page number",fieldtype.field_page); footerpara.getformat().sethorizontalalignment(horizontalalignment.right); //设置第一节页码数字格式为罗马数字 doc.getsections().get(0).getpagesetup().setpagenumberstyle(pagenumberstyle.roman_lower); //设置第二节页码数字格式为阿拉伯数字 doc.getsections().get(1).getpagesetup().setpagenumberstyle(pagenumberstyle.arabic); //设置第二节页码从新开始编码,并设置起始页码数字 doc.getsections().get(1).getpagesetup().setrestartpagenumbering(true); doc.getsections().get(1).getpagesetup().setpagestartingnumber(1); //保存文档 doc.savetofile("restartnumbering.docx",fileformat.docx_2010); } }
页码设置效果:
【示例5】锁定页眉页脚
import com.spire.doc.*; public class lockheaderfooter { public static void main(string[]args){ //加载测试文档 document doc = new document("sample.docx"); //获取第一节 section sec = doc.getsections().get(0); //设置保护类型及密码 doc.protect(protectiontype.allow_only_form_fields,"123"); sec.setprotectform(false); //保存文档 doc.savetofile("lockheaderfooter.docx",fileformat.docx_2010); } }
锁定页眉页脚后,文档中除页眉页脚外其他内容可正常编辑。
【示例6】删除页眉页脚
-
删除所有页眉页脚
import com.spire.doc.*; public class deleteallheaderfooter { public static void main(string[]args){ //加载测试文档 document doc = new document("sample.docx"); //获取第一节 section sec = doc.getsections().get(0); //删除页眉 sec.getheadersfooters().getheader().getchildobjects().clear(); //删除页脚 sec.getheadersfooters().getfooter().getchildobjects().clear(); //保存文档 doc.savetofile("deleteallheaderfooter.docx"); } }
删除效果前后对比:
-
删除首页页眉页脚
import com.spire.doc.*; public class deleteheaderfooteroffirstpage { public static void main(string[]args){ //加载测试文档 document doc = new document("sample.docx"); //获取第一节 section sec = doc.getsections().get(0); //设置首页页眉页脚不同 sec.getpagesetup().setdifferentfirstpageheaderfooter(true); //删除首页页眉页脚 sec.getheadersfooters().getfirstpageheader().getchildobjects().clear(); sec.getheadersfooters().getfirstpagefooter().getchildobjects().clear(); //保存文档 doc.savetofile("deleteheaderfooteroffirstpage.docx",fileformat.docx_2010); } }
首页页眉页脚删除效果:
(本文完)
转载请注明出处!