欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

页眉页脚添加效果:

Java 添加Word页眉、页脚

 

【示例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);
    }

}
奇偶数页眉页脚设置效果:

Java 添加Word页眉、页脚

Java 添加Word页眉、页脚

 

【示例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);
    }
}

页眉页脚设置效果:

Java 添加Word页眉、页脚

Java 添加Word页眉、页脚

 

【示例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);
    }
}

页码设置效果:

Java 添加Word页眉、页脚

 

【示例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");
        }
    }

删除效果前后对比:

Java 添加Word页眉、页脚

Java 添加Word页眉、页脚

 

  • 删除首页页眉页脚

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

首页页眉页脚删除效果:

Java 添加Word页眉、页脚

 

(本文完)

转载请注明出处!