Java 添加Word页眉、页脚

在Word文档中,页眉位于文档中每个页面的顶部区域,而页脚则位于文档中每个页面的底部区域。它们都常用于显示文档的附加信息,例如时间、公司微标、文件名或作者姓名等。本文将通过使用Java程序来演示如何在Word文档中添加页眉和页脚。主要包括:添加文本、图片和页码至页眉、页脚;设置奇偶页页眉页脚不同;设置首页页眉页脚不同;锁定页眉页脚。

使用工具:Free Spire.Doc for Java(免费版)

Jar文件获取及导入:

方法1通过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Doc.jar文件导入Java程序。(如下图)


方法2通过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 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(Sectionsec){

//加载图片添加到页眉,并设置图片在段落中的对齐方式

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

    }

}

页眉、页脚添加效果:


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

    }

}

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


【示例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("D:\\Desktop\\Sample.docx");

    Section sec =doc.getSections().get(0);

//设置首页页眉页脚不同

        sec.getPageSetup().setDifferentFirstPageHeaderFooter(true);

//添加首页页眉页脚

        HeaderFooterfirstpageheader = 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);

//添加页眉页脚到其他页面

        Paragraphpara3 = 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);

    }

}

页眉页脚设置效果:


【示例4】锁定页眉页脚

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

    }

}

锁定页眉页脚后,文档除页眉页脚外其他内容依旧可进行编辑。

(本文完)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容

  • 页眉和页脚通常是显示文档的附加信息,常用来插入页码、时间、日期、个人信息、微标等。特别是其中插入的页码,通...
    Tina_Tang阅读 1,954评论 0 1
  • 表格作为一种可视化交流模式及组织整理数据的手段,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们...
    编程小世界阅读 1,413评论 0 0
  • Word 2003长篇文档排版技巧(一) 重点总结为两点: 1. 制作长文档前,先要规划好各种设置,尤其是样式设置...
    MrSunbeam阅读 1,986评论 0 12
  • 批注,是作者或审阅者给文档添加的注释或注解。通过查看批注,可以更加详细地了解某些文字的背景。除添加文本信息到...
    Tina_Tang阅读 1,825评论 0 2
  • 灯火寂寥,寒风抚耳,漫夜何晓?孤人遗影为伴,浓茶笔杆亦友。榻上辗转反侧,然咎由自取。然追问,事隔经年,仅留...
    无用的铯阅读 399评论 0 3