Docx4j在页眉 同时加入图片和文字有两种实现方式,一种是用HTML写一个模板,通过模板一次加入,另一种是通过docx4j直接操作

一、Html方式 上代码

public class Docx4JSample {

public static void main(String []args) throws Exception{

Docx4JSample docx4jSample = new Docx4JSample();

WordprocessingMLPackage worMLPackage = docx4jSample.createWordpreocessMLPackage();

MainDocumentPart mpart = worMLPackage.getMainDocumentPart();

ObjectFactory factory = Context.getWmlObjectFactory();

Relationship relationship1 = docx4jSample.createHeaderPart(worMLPackage, mpart,

factory, true, "3");

docx4jSample.createHeaderReference(worMLPackage, mpart, factory, relationship1);

docx4jSample.saveWordPackage(worMLPackage, new File("./testpaper.docx"));

}

public void createHeaderReference(WordprocessingMLPackage wordprocessingMLPackage,MainDocumentPart t,

ObjectFactory factory, Relationship relationship) throws Exception{

List<SectionWrapper> sections = wordprocessingMLPackage.getDocumentModel().getSections();

SectPr sectPr =sections.get(sections.size()-1).getSectPr();

if (sectPr == null ){

sectPr = factory.createSectPr();

t.addObject(sectPr);

sections.get(sections.size()-1).setSectPr(sectPr);

}

HeaderReference headerReference = factory.createHeaderReference();

headerReference.setId(relationship.getId()); //这里关联RelationShip

headerReference.setType(HdrFtrRef.DEFAULT);

sectPr.getEGHdrFtrReferences().add(headerReference);

}

//创建页眉

public Relationship createHeaderPart(WordprocessingMLPackage wordprocessingMLPackage,

MainDocumentPart mpartDocumentPart , ObjectFactory factory , boolean isUnderLine ,

String underLineSize) throws Exception{

HeaderPart headerPart = new HeaderPart();

Relationship relationship = mpartDocumentPart.addTargetPart(headerPart);

String headerString="<html><body  width=\"90%\"><table width=\"100%\">    <tr width=\"20%\">    "

+ "<th align=\"left\"><img width=40 height=40 src=\"https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/"

+ "static/superman/img/logo/bd_logo1_31bdc765.png\"></th><th align=\"right\">"

+ "页眉右边的文字<br>这里还可以起一行</th>    </tr>    </table></body></html>";

headerPart.addAltChunk(AltChunkType.Xhtml, headerString.getBytes());

return relationship;

}

public void saveWordPackage(WordprocessingMLPackage wordPackage , File file) throws Exception{

wordPackage.save(file);

}

}

结果如下:

另一种方式 见下一篇文章

Docx4j 在页眉同时 添加logo图片和文字,logo图片显示在左边,文字显示在右边相关推荐

  1. Python |Python-word文档标题与页眉的添加

    本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 引言 在日常生活里,不管是办公.学习还是制作邀请函.请柬.简历等等,我们都会使用一个软件Microso ...

  2. 页眉怎么添加【节】,设置不同章节不同页眉

    文章目录 前言 添加[节],设置不同内容 总结 前言 大家写文档或者论文的时候可能会需要:不同章节页眉展示不同的内容 然而,在双击页眉进行编辑的时候却发现几个章节的页眉一起被修改了: 会出现文章与页眉 ...

  3. Java 利用poi给word添加页眉页脚,页眉左边为公司logo图片,右为公司全称,页脚左为公司地址,右为页码总页数

    参考链接: http://www.it1352.com/219785.html 1. 生成带公司logo的页眉 public void createHeader(XWPFDocument doc, S ...

  4. iText + Freemarker实现pdf的导出,支持页眉添加图片,及其他的基础功能

    本文为了记录自己的实现过程,具体的实现步骤是参考博文 https://www.cnblogs.com/youzhibing/p/7692366.html 来实现的,只是在他的基础上添加了页眉页脚及页眉 ...

  5. itext操作word,设置页眉页脚,html转word

    这两天学习了itext操作word生成可用的docx文档,以下是我翻阅网上资料最后的结果及相关记录,如下: 我的maven项目导入必要的itext依赖 <dependency><gr ...

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

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

  7. lsdyna如何设置set中的node_list_牛逼~新来的同事,100 页Word页眉页脚设置只需5秒!成功征服老板!...

    老板让你设置文档的页眉页脚或删除页眉页脚,结果你花了半天时间才搞定,而且稍微有修改就需要重新来过,而新来的同事,却可以轻松搞定,怎么回事呢?那是因为你不知道这2个高效操作技巧,下面跟着Word妹一同来 ...

  8. C# 复制Word(复制全部内容、部分内容、页眉页脚)

    本篇示例将介绍C# 复制Word文档的方法.根据不同的需要,我们将复制Word文档分三种情况来讲述,具体包括以下几点: 复制整个Word文档 复制文档中的部分内容 复制页眉或者页脚 工具使用 Free ...

  9. python-docx官方文档翻译--用户指南06--使用页眉和页脚

    使用页眉和页脚 Word 支持页眉和页脚.页眉是出现在每页顶部区域的文本,与正文分开,通常传达上下文信息,例如文档标题,作者,创建日期或页码.文档中的页眉在页面之间是相同的,只是内容上的差别很小,例如 ...

最新文章

  1. 用spss做多组两两相关性分析_两独立样本T检验及如何利用SPSS实现其操作
  2. 技术面试 vs 实际岗位 | 每日趣闻
  3. 用好VS2010扩展管理器
  4. wpf slider 控件模板
  5. wxWidgets与其他工具库的比较(下)
  6. python pandas读取csv_Python3 pandas怎么读取csv文件的第一行的
  7. non-member function ‘size_t capacity()’ cannot have cv-qualifier
  8. 使用SAP WebIDE进行一个典型的bug修复流程
  9. win10用一会就蓝屏重启_电脑出现蓝屏?教你如何解决
  10. mysql驱动连接不了mariadb_无法从振动应用程序连接到MySQL / MariaDB数据库
  11. pytorch Resnet
  12. HNOI2015 接水果
  13. 音视频开发系列(2)PCM音量控制(高级篇)
  14. P1347 排序(topo)
  15. STM32 学习笔记 expected a type specifier
  16. 宝塔设置A站点SSL,同服务器下其他未设SSL站点访问HTTPS默认会打开A站点
  17. jME发布java 3D游戏引擎:jMonkeyEngine version 2.0
  18. 自制VOC2007数据集——train、trainval、val、test文件的生成
  19. 基于多视图几何的三维重建
  20. 学习计算机的英语口语,最实用的英语口语学习技巧

热门文章

  1. 上海亚商投顾:护指放量下跌 煤炭电力逆市上涨
  2. 阿里集团CEO张勇:阿里培养领导者,看这2点
  3. LL库下STM32使用安信可VB离线语音识别
  4. vue全家桶+Echarts+百度地图,搭建数据可视化系统
  5. 系统安装报错:dracut-initqueue : Warning: dracut-initqueue timeout - starting timeout scripts
  6. Linux之 解决 Linux 性能瓶颈的黄金 60 秒
  7. 甲;乙;丙;丁四个人过桥,分别需要1,2,5,因为天黑,必须借助手电筒过桥可是总共只有一个手电筒,并且桥的载重能力有限,只能承受两个人的重量也就是说每次最多过两个人,怎样才能做到用
  8. 优信拍集团php面试题_【优信拍PHP面试】一次不错的面试体验,面试官根据实际出发提问。-看准网...
  9. WowLua学习笔记
  10. java 有10个硬盘有两个重要属性_2013年计算机一级B冲刺试题七及答案解析