java world 转富文本_使用java将html导出word(带图片,带富文本编辑器CKEditor)

最近遇到html页面导出word的问题,网上查了很多资料,大抵都是选用的第三方控件来做的,比如poi什么的。自己也试了下,感觉对图片的支持总有问题,然而自己的html还带有富文本编辑器(CKEditor)。所以索性放弃了第三方控件,自己写了一个帮助类,支持在指定位置插入图片,支持CKEditor,经测试可用,本文为博主原创,转载请说明出处。

简单说下思路,一般使用第三方控件转word,都是先写一个html的模版,或者用字符串拼出一个html来进行转换,但是我这里没用第三方的控件,故是反其道而行。先用word写一个样式模版来,需要插入数据的地方用特定的占位符表示如${name},然后将word的模版另存为单个网页(.mht)格式,查出数据后,替换掉其中的占位符,至于图片则取到后转成base64字符串替换进去,最后利用io流写成.doc文件。

事实上,细心的人可能已经领会到了,这并非是真正的word,只是一个后缀为.doc的伪word罢了,其真正的编码格式事实是.mht文件的3Dus-ascii编码。但是其最后的成果和word相差不大,也就是说可以达到预期的效果,不多说了,还是来说步骤,及代码。

一、制作一个mht格式模版

首先,需要新建一个word文档,在里面编好你想要的样式,需要加入数据的地方用占位符表示,如${name},需要加入图片的地方随便插一张图片就行了,富文本编辑器的地方也用占位符表示,如${content}然后另存为单个网页(.mht)格式,这个时候别心急,再用word将.mht文件打开&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值