java实现word(docx)在线编辑(word转html,html转word)——代码实现⼀、具体实现思路
1、docx转html
使⽤docx4j获取dcox⽂档的xml⽂件内容,然后使⽤dom4j进⾏解析,对于不同的内容,新建pojo类,将解析的内容封装进去,然后统⼀转换为html;
由于pojo类过多,所以这⾥就不展⽰⼀个个展⽰,最后会提供下载地址,
其中word中某些样式提供⾃定义的属性,如编号、项⽬符号、标题等
2、html转docx
根据之前⾃定义的属性,使⽤jsoup将html内容进⾏解析,然后⽣成docx⽂档;
⼆、资源说明
Word⽂档在线编辑功能说明
⼀、⽀持的⽂件类型:docx类型⽂档(即word2007)
⼆、Word转为html格式后的html页⾯结构
除表格外、所有的内容都需要在p标签内(包括图⽚),如图:
三、⽀持转换的内容
1.标题,如图
现在⽀持标题1-标题7,转换为HTML后,如图:
所有的标题转换后都会在p标签上带有”data-class”属性,该属性的值为标题级别,在web页⾯进⾏编辑,设置新的标题时也应该带有此属性;
2.普通段落内容
普通的段落内容,可转换的样式包括:背景颜⾊、字体颜⾊、字体⼤⼩、部分字体、段落左间距、段落对齐⽅式(左对齐,居中对齐,右对齐,两端对齐)、⾏⾼、粗体、斜体、下划线、删除线;
以上对应的样式分别对应如下html:background-color(英⽂名称颜⾊)、color(#00000)、font-size(单位px)、font-family、margin-left、text-align、line-height、font-weight:bold、font-style:italic、text-decoration:underline、text-decoration:line-through;
在web页⾯进⾏设置新的段落样式时,需要⼀⼀对应,不然解析不了。
3.图⽚
图⽚内容仍然是包裹在p标签内,其中图⽚具备的样式及属性如下:
样式:图⽚的左间距主要体现在其⽗标签p上,如图:
属性:具备width,height,不带任何单位,如上图;src(已⾃动转换为通过接⼝获取图⽚的地址)
4.表格
表格转为html后,其table标签与p标签为同⼀级别,所有table标签必须要有data-class=”table”及table-widths=”12-11-22”(代表每⼀列表格的宽度,以”-”分隔),表格以及td(单元格)的边框线宽、颜⾊,如下表。
border-top-color 上边框颜⾊
html表格内外边框颜border-top-width 上边框宽度
border-right-color 右边框颜⾊
border-right-width 右边框宽度
border-bottom-color 下边框颜⾊
border-bottom-width 下边框宽度
border-left-color 左边框颜⾊
border-left-width 左边框宽度
如图:
所有边框宽度均以8/125px作为单位
表格分为普通表格和单元格合并后的表格:
普通表格(未进⾏单元格合并):
⽬前默认表格边框为有,具体样式见⽰例。普通表格的单元格内会镶嵌⼀个p标签,作为td单元格的内容,这个p标签与上述普通段落相同。单元格合并:
⾏单元格合并⽆需新增任何属性,只需colspan属性即可,如图:
列单元格和并除了要在合并的起始单元格新增rowspan外,还需新增row-属性,如图
并且被合并的单元格(除起始单元格外)不需要删除,只需要将他们hidden,同时添加属性row-style=“continue”,如图:
5.编号
编号⽬前仅⽀持7种格式的转换,如图:
编号是以段落p为单位,在web页⾯添加编号时,只需在该段落p标签添加属性num-class,值为上图对应的值,编号的内容(如1.2.3.)则放在1.标签中,如图:
其中num-class值8-1中的8代表编号的样式,1是⼀个随机数,⽤来辨别哪些编号属于同⼀个序列(⼀组),在前台进⾏编辑时,选择编号时,也需要在p上添加num-class。
6.项⽬符号
项⽬符号仅仅⽀持2种,也是html中li标签的两种type,如图:
⽀持下图的前两种项⽬符号,与其他段落不同,直接以li标签代替p标签,同样有num-class,两种项⽬符号对应的num-class值为4和5

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。