【参考】https://www.cnblogs.com/Yesi/p/11010805.html

本篇文章将介绍通过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);}
}

首页页眉页脚删除效果:

(本文完)

转载请注明出处!

【Spire 4java】Java 添加Word页眉、页脚相关推荐

  1. Word控件Spire.Doc 【页眉页脚】教程(7): 添加不同的首页页眉和页脚

    Spire.DOC是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Microsoft Wor ...

  2. Word控件Spire.Doc 【页眉页脚】教程(1):用C#/VB.NET:在 Word 文档中添加页眉和页脚

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  3. docx4j生成Word添加页眉页脚水印 页眉页脚奇偶显示首页显示

    docx4j 单独添加页眉页脚.水印的代码一搜一大堆,但很少有人把页眉+水印.奇偶页眉页脚.首页页眉页脚全面实现,最近在做相关的内容,经过大量的查阅资料,总算完成了,分享记录一下. 先看效果: 水印在 ...

  4. Java操作poi添加页眉页脚:字体_颜色_大小

    Excel中的页眉或页脚仅在页面布局模式和打印预览模式才可见.我们可以在页眉页脚位置添加页码.工作表名.日期.文字.图片等信息.本文将通过Java代码示例来介绍页眉页脚的添加方法. 使用工具: Fre ...

  5. Word 注重页面细节才专业(添加页眉页脚,调整页边距,消灭孤行) | 职场人就应该这样用 Word

      本篇博文结合这两篇食用更佳(知识点遥相呼应,有共通之处,且大多结合使用,轻松举一反三) Excel 表格打印篇(批量添加标题,同页打印,打印logo与页码) Word 高效办公,三步搞定活动策划书 ...

  6. office/word 2010添加页眉页脚

    office/word 2010添加页眉页脚流程 页眉编辑 格式校验 页脚编辑 生成目录 老祖宗有句话讲得好 "学而不思则罔, 思而不学则殆", 学习后就要养成记录的好习惯 最近, ...

  7. C# 操作Word页眉页脚——奇偶页/首页不同、不连续设置页码、复制页眉页脚、锁定页眉页脚、删除页眉...

    序  本文是对Word页眉页脚的操作方法的进一步的阐述.在"C# 添加Word页眉页脚.页码"一文中,介绍了添加简单页眉页脚的方法,该文中的方法可满足于大多数的页眉页脚添加要求,但 ...

  8. [转]IText导出word之页眉页脚页码

    本文主要通过Itext jar包对已有数据进行封装并导出rtf文档.rtf也可以用office打开. 代码中包含了设置页眉页脚.添加table等 详细见源码:内含注释说明 /*** WordServe ...

  9. Java 处理PDF文档(一):页眉页脚、水印、背景、附件

    前言 本文将介绍通过Java编程来处理PDF文档的一些方法,因为一篇文档的处理可能包括很多内容,比如文档安全性设置(水印.加密/解密).文本/图片/图形操作.注释.附件.域.文档转换(其他文件格式转为 ...

最新文章

  1. 设计PSD分层素材模板|几何元素平面广告,在设计风格中占有一席之地
  2. 使用HP Vertica进行.NET编程
  3. mysql恢复备份快照_MySQL备份恢复:磁盘LVM快照
  4. 海康威视4G球机对接萤石云平台获取直播视频列表 ----- java
  5. 关于安卓设备更改和烧录IMEI的图文教程
  6. Tcl 语言 ——列表篇
  7. 高职院校汽车相关专业AEB测试套件及自动驾驶相关传感器介绍
  8. 计算机组装与维修第3版,计算机组装与维护(第3版)
  9. elementUI兼容ie浏览器问题(笔记)
  10. 项目管理的经验(4年项目管理经验)
  11. 【Oracle】建立关联三个表的视图
  12. 七夕,眼光长远点,聊点孩子的事?
  13. 反向代理服务器域名解析
  14. 电商平台订单号生成策略
  15. 《平衡掌控者 游戏数值战斗设计》学习笔记(四)技能与装备设计
  16. 【Java】使用lambda表达式获取list中所有对象的某个属性以及获取特定属性的某一个对象
  17. 一文读懂SpringBoot定时任务
  18. 鹏业云计价i20(四川)CJZ阅读模式功能
  19. 史上最全Git命令学习:从基础出发,Java中高级面试题总结(全面)
  20. 在CentOS7上安装RabbitMQ

热门文章

  1. 游戏推荐-我玩过的经典单机游戏
  2. OFDM子载波频率 知乎_基于软件无线电的无线设备指纹识别
  3. zookeeper使用
  4. 群晖-第1章-IPV6的DDNS
  5. python自建邮件服务器,9行自定义函数教你用Python发送电子邮件!
  6. 洛谷 [P1578] WC2002 奶牛浴场
  7. 饥荒steam服务器文档,Steam饥荒专用服务器搭建
  8. Rstudio常用操作
  9. 章鱼搜索网启用域名32.com上线 价格百万美元?
  10. 金山毒霸官博:谈新DLL挟持***故事,话新老DLL挟持之不同