html 导出为word,Spire.Doc for Java实现

项目中的功能,大概是这样,

要在站内发送通知,表单大概是 通知标题,通知时间,发送单位等,最重要的就是一个通知正文,正文使用富文本实现(这个使用wangeditor实现),点击保存后这些信息保存在后台,用户登录进来后会展示发送给自己的通知,因为富文本保存的就是html,所以展示也很好做,直接显示在页面就可以。

后续的话加了一个导出的功能,导出的字段包括 通知标题,通知时间,发送单位,还有就是通知正文。除去通知正文的话,还是很好做的,直接定义一个模板,然后用easypoi向模板中填充信息就可以,唯独是这个富文本,由于是html内容,直接填充进模板中显示的也是html,然后开始着手解决这个问题,网上搜了很多资料,大概的意思都是把html 通过 POIFSFileSystem 写进文件中,这样虽然能实现功能,但是有很多地方不太好。

1.文件打开之后是web版式,看起来不太好

2.导出的其实还是一个html

上边这两点其实都还好,最难的是,如果你的富文本包含图片的话,那就比较难搞了。

因为导出的这个html本质上还是一个html,而html 中图片肯定是这样

<img src="http..."/>

如果电脑在不联网的情况下,或者图片不存在的情况下,word中的图片会显示不出来,这是最致命的。

然后继续搜索资料的时候就发现了Spire.Doc for Java(收费的,也有免费版),而且完美实现了我想要的功能

收费 Spire-Doc-JAVA 官网

免费版 Free Spire.Doc for Java | 100% 免费 Java Word 组件

我的功能就是按照模板生成文档,然后在生成的文档后插入正文内容,大概代码如下

HashMap<String, Object> resData = new HashMap<>();
//需要填充到模板的信息
resData.put("data",data);

//查询模板
File template = new File("模板");
//3.生成文档
 InputStream inputStream = new ByteArrayInputStream(template.getFileBytes());

Document doc = new Document();
        
doc1.loadFromStream(inputStream,FileFormat.Doc);


//定位到书签"SimpleBookmark"
 BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc);
 bookmarkNavigator.moveToBookmark("SimpleBookmark");

//使用文本替换原书签的内容, false表示不保留原来的格式
  bookmarkNavigator.replaceBookmarkContent("这是要替换的信息", true);

//在文档后 添加 html
Section lastSection = doc.getLastSection();
lastSection.addParagraph().appendHTML("");

//保存文档
doc.saveToFile("xxx.doc", FileFormat.Doc);

大概就是这样,word 生成完之后 导出就很容易了,这里不在写导出代码

文档导出后,大概是这样

 

当然,他能做的不止这些,还有好多功能,比如合并文档,添加也没页脚 等等等等,大家可以直接访问他的官网帮助文档

帮助文档

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
spire.doc for java 是一款专为Java平台设计的文档操作组件,它拥有无限制的功能和使用权限。 首先,spire.doc for java 支持多种常见的文档格式,如DOCDOCX、RTF、TXT等,用户可以使用它来创建、编辑、转换和打印这些文档。无论是简单的纯文本还是复杂的格式和样式,spire.doc for java 都能处理得非常好。 其次,spire.doc for java 提供了丰富的文档操作功能,比如插入文字、图片、表格、超链接等元素,设置格式、样式和布局,添加页眉页脚、目录、批注等。用户可以利用这些功能来定制自己想要的文档内容和格式。 此外,spire.doc for java 还支持文档的转换和打印。用户可以将文档转换为不同格式,比如将DOC转换为PDF,或将RTF转换为DOCX。同时,用户还可以使用spire.doc for java 打印文档,以便于将其输出到打印机或其他输出设备。 最重要的是,spire.doc for java 在使用上没有任何限制。用户可以在任何环境和平台上使用它,无论是个人使用还是商业使用,都没有任何限制。这意味着用户可以自由地使用spire.doc for java来满足自己的文档处理需求。 总之,spire.doc for java 是一款功能强大的文档操作组件,拥有无限制的功能和使用权限,用户可以灵活地使用它来处理各种文档,满足各种需求。无论是个人还是企业用户,都可以放心地使用spire.doc for java来完成文档相关的工作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值