-
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>");
-
单元格合并(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)查看创建的样式编号) -
color可以使用auto值
边框颜色、字体颜色color可以使用auto值 -
多级自动序号(包含正文内容)
<li>并不能用来包含div,t首able 需要把<ol>拆成两部分,并操持style="list-style-num:1"一致。 如: <ol style="list-style-num:5"> <li>山东 37</li> </ol> <div style="text-indent:30px;"> 山东简称 -
首行缩进
首行缩进在html和word中有对应的样式。html中通过样式text-indent:30px;标记 -
中西文不同字体
word中可以实现中英文不同字体显示,在html中并没有对应的属性,可以通过以下扩展属性来实现,如style="font-family-east:宋体;font-family-ascii:黑体",遇到中文以宋体显示,遇到英文以黑体显示 -
word片段合并(嵌入)
有些复杂的格式在html中完全没有对应的标签和属性,可以先在word中生成,再合并到最终的word中。 也可以通过书签标记只合并其中的一部分 <word bookmark="书签名">文件path</word> -
上标、下标用来表示指数、化学式等
在html中有对应的标签上标sup下标sub 如 水分子:H2O 10的2次方:102 -
签章等浮动图片插入
以右边距为参照 向左偏移150px 以书签所在行为参照 向上偏移100px 注意这里经常需要根据所在行为参照,当前行被其他内容挤下去的时候签章应该跟随