-
html2word
html转成word应用场景举例:在word中插入一个粗体的标题,如果用poi我们一般是先生成一个字体对象,再给这个这个字体对象设置加粗,再把这字体对象关联到指定的文本。
anyline office的实现方式是:设置一段熟悉的html,如
<b>标题</b>
<span style="font-weight:700">标题</span>
//模板中这里的字号是30号,如果不指定的话默认原来的30号,原来的选颜色是黑色,如果指定了新选颜色将替换成新颜色
doc.replace("name","<span style='color:red;'>中国石油环境影响评价现状检测报告</span>");
//这里的字号支持word中的一号二号以及pt,px
doc.replace("customer","<span style='font-size:二号'>中国石油</span>"); -
关于网络文件下载
html转word过程中如果有在线图片,需要把文件下载下来压缩到word文件中,所以需要提供一下下载器如 WDocument doc = new WDocument(file); doc.setDownloader(new Downloader() { @Override public bool -
替换占位符
一些比较简单的模板可以直接在Wdocument上执行 WDocument doc = new WDocument(tmp_file); doc.replace("${name}", "张三"); doc.save(); 但有些情况需要遍历如 模板中设置了一行占位符 -
占位符内容换行
doc.replace("占位符","第一行<br/>第二行") -
关于行列合并
word中行列合并与html有所区别 列合并 与HTML类似,都是设置合并几列,右面被合并的列直接删除标签,如合并2列,右面的1列会被删除 html中通过属性colspan表示,如<td colspan='2'></td> word中通过 tcPr>gridS -
单元格合并(rowspan,colspan)
如果只是实现单元格合并的话,没什么好说明的就是正常按照正常的html标签即可,主要是cospan,rowspan属性。 主要说明一下对应的word标签(注意word中默认以w作为命名空间) html标签/属性 word标签/属性 table tbl -
表头在多页中重复显示
在word如果一个表格跨了多页,可以设置表头在每页中都显示。而在原生html中没有相应的属性,这里可以在tr中添加repeat-header:true的style,注意在浏览器是预览html没有效果。只有在生成word后才会生效,在最终生成的word标签中会添加标签tblHeader -
强制换页
在html打印时会用到换页标签<div style="page-break-after: always;">在生成word后会转换成 br和lastRenderedPageBreak <w:r> <w:br w:type="page"/> </w:r> <w:r> <w:lastRenderedP -
排版方向(横版、竖版)与页面边距
word中可以调整排版方向(横版、竖版),但在html中没有对应的标签和样式。可以通过page-size-orient的样式来设置 page-size-orient:landscape表示横版 page-size-orient:portrait表示竖版 也可以设置页面尺寸 page-size-w:页面宽 page-size-h:页面高 如果只设置一个方向,宽高会取默认值 放在内容之后,影响在此标签 -
斜线拆分单元格
斜线拆分单元格这在原html中是没有对应属性的,在word中tc上的属性有左上至右下(border-tl2br)和右上至左下(border-tr2bl)的边框。 为了实现word效果AnylineOffice添加了扩展样式。style="border-tl2br:1px solid red" -
多级自动序号
通过olli来生成自动序号 list-style-num:定义列表样式(先在模板中创建,再通过DocxUtil.checkListNumber(File docx, String key)查看创建的样式编号)