java poipoi将doc docx转htmll,如何给docx中的图片重命名

相关文章推荐
import java.io.BufferedW
import java.io.F
import java.io.FileInputS
import java.io.F...
利用POI将word转换成html实现在线阅读
通过网上找资料,发现用java实现word在线阅读有以下的实现方式:
Word=>PDF(OpenOffi...
使用poi将word转换为html
使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式
演示地址: https://www.xiaoyun.stud...
下载POI工具并引用2.
读取整个doc文档,获得该文档的所有字符串。3.
从该字符串中得到标题,把该标题构成一个HTML格式的字符串,如测试文档。4.
从该文档...
java实现在线预览
- -之poi实现word、excel、ppt转html
Java实现在线预览功能是一个大家在工作中也许会遇到的需求,如果公司有钱,直接使用付费的第三方软件或者云在线...
使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式
1.导入Maven包
org.apache.poi
org.apache...
java实现在线预览- -之poi实现word、excel、ppt转html
最近转换的需求比较多,最近做了一个Word转Html的这个要导一个包和配置一个文件1.jacob.jar2.与jacob.jar相对应的jacob.dll(放在windows/sys32下或者放在jr...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)相关文章推荐
import java.io.BufferedW
import java.io.F
import java.io.FileInputS
import java.io.F...
* word07版本(.docx)转html
* poi:word07在线预览
public static void PoiWord07ToHtml (Http...
使用poi将word转换为html
使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式
演示地址: https://www.xiaoyun.stud...
下载POI工具并引用2.
读取整个doc文档,获得该文档的所有字符串。3.
从该字符串中得到标题,把该标题构成一个HTML格式的字符串,如测试文档。4.
从该文档...
java实现在线预览
- -之poi实现word、excel、ppt转html
Java实现在线预览功能是一个大家在工作中也许会遇到的需求,如果公司有钱,直接使用付费的第三方软件或者云在线...
使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式
1.导入Maven包
org.apache.poi
org.apache...
java实现在线预览- -之poi实现word、excel、ppt转html
最近转换的需求比较多,最近做了一个Word转Html的这个要导一个包和配置一个文件1.jacob.jar2.与jacob.jar相对应的jacob.dll(放在windows/sys32下或者放在jr...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)11:30 提问
java中如何使用poi3.10将docx文件转换成html文件预览
java中如何使用poi3.10将docx文件转换成html文件预览
按赞数排序
1.首先读写DOCX 文件中的内容。
2.将读取出来的内容在JSP输出即可。如果是存HTML 页面的话,就需要将上面读取的内容写入HTML中即可。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐一、起因  这几天在做电子签章问题,要通过替换docx文件中的占位符生成包含业务数据的合同数据,再转换成html文件,转换成pdf文件。遇到的问题是:通过apache poi转换docx到html时,原生的表格文件可以正常显示,但是我通过代码生成的表格只有数据,而不展示边框。
二、问题分析  google了一下发现有人碰到过类似问题,但是没有找到解决方法。现成的没有只能自己研究。
  贴上简单的填充表格内容的java代码
1 private void replaceTable(XWPFDocument xdoc, List&List&String&& lines, int pos) {
if (CollectionUtils.isEmpty(lines)) {
List&String& th = new ArrayList&String&();
th.add("姓名");
th.add("身份证");
th.add("金额");
lines.add(th);
XWPFTable replace = xdoc.createTable(lines.size(), lines.get(0).size());
<span style="color: #
CTTbl cttbl = replace.getCTTbl();
<span style="color: #
cttbl.addNewTblPr().addNewTblW().setW(BigInteger.valueOf(8800));
<span style="color: #
CTTblGrid cg = cttbl.addNewTblGrid();
<span style="color: #
cg.addNewGridCol().setW(BigInteger.valueOf(2500));
<span style="color: #
cg.addNewGridCol().setW(BigInteger.valueOf(3800));
<span style="color: #
cg.addNewGridCol().setW(BigInteger.valueOf(2500));
<span style="color: #
if (CollectionUtils.isNotEmpty(lines)) {
<span style="color: #
for (int i = 0; i & lines.size(); i++) {
<span style="color: #
List&String& line = lines.get(i);
<span style="color: #
for (int j = 0; j & line.size(); j++) {
<span style="color: #
XWPFTableCell cell = replace.getRow(i).getCell(j);
<span style="color: #
cell.setText(line.get(j));
<span style="color: #
cell.getCTTc().addNewTcPr().addNewTcBorders().addNewTop();
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
xdoc.setTable(pos, replace);
<span style="color: #
xdoc.removeBodyElement(xdoc.getPosOfTable(replace));
<span style="color: #
  逻辑很简单,通过生成一个新的表格来替换原来的表格。
  然后看一下可正常显示的表格的doc xml代码
1 &xml-fragment xmlns:wpc="/office/word/2010/wordprocessingCanvas" xmlns:mo="/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="/office/word/2010/wordml" xmlns:wpg="/office/word/2010/wordprocessingGroup" xmlns:wpi="/office/word/2010/wordprocessingInk" xmlns:wne="/office/word/2006/wordml" xmlns:wps="/office/word/2010/wordprocessingShape"&
&w:tblW w:w="0" w:type="auto"/&
&w:tblBorders&
&w:top w:val="single" w:sz="4" w:space="0" w:color="auto"/&
&w:left w:val="single" w:sz="4" w:space="0" w:color="auto"/&
&w:bottom w:val="single" w:sz="4" w:space="0" w:color="auto"/&
&w:right w:val="single" w:sz="4" w:space="0" w:color="auto"/&
&w:insideH w:val="single" w:sz="4" w:space="0" w:color="auto"/&
<span style="color: #
&w:insideV w:val="single" w:sz="4" w:space="0" w:color="auto"/&
<span style="color: #
&/w:tblBorders&
<span style="color: #
&w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/&
<span style="color: #
&/w:tblPr&
<span style="color: #
&w:tblGrid&
<span style="color: #
&w:gridCol w:w="1984"/&
<span style="color: #
&w:gridCol w:w="2694"/&
<span style="color: #
&w:gridCol w:w="2885"/&
<span style="color: #
&/w:tblGrid&
<span style="color: #
&w:tr w:rsidR="00D347DE" w:rsidRPr="00A709A0" w14:paraId="47BBA15B" w14:textId="" w:rsidTr="00146A0B"&
<span style="color: #
<span style="color: #
<span style="color: #
&w:tcW w:w="1984" w:type="dxa"/&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:jc w:val="center"/&
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&${表格匹配信息}&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:tcW w:w="2694" w:type="dxa"/&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:jc w:val="center"/&
<span style="color: #
<span style="color: #
<span style="color: #
&w:t xml:space="preserve"&&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:tcW w:w="2885" w:type="dxa"/&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:jc w:val="center"/&
<span style="color: #
<span style="color: #
<span style="color: #
&w:t xml:space="preserve"&&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # &/xml-fragment&
  然后看一下我们自己生成的替换表格
1 &xml-fragment xmlns:wpc="/office/word/2010/wordprocessingCanvas" xmlns:mo="/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="/office/word/2010/wordml" xmlns:wpg="/office/word/2010/wordprocessingGroup" xmlns:wpi="/office/word/2010/wordprocessingInk" xmlns:wne="/office/word/2006/wordml" xmlns:wps="/office/word/2010/wordprocessingShape"&
&w:tblGrid&
&w:gridCol w:w="2500"/&
&w:gridCol w:w="3800"/&
&w:gridCol w:w="2500"/&
&/w:tblGrid&
<span style="color: #
<span style="color: #
&w:t&姓名&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&身份证&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&金额&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&小七&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&12345&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&合计笔数:1&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
&w:t&合计:&/w:t&
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # &/xml-fragment&
  可以很明显的看出,我们自己生成的表格在属性和元素数量上都比正常表格少了很多。
三、解决方法
  好在apache的代码设计结构清晰,十分优美,弥补了资料较少的不足。刚开始我是想参考正常表格手动补全缺少的内容,后来发现这样的工作量大不说,补出来的东西多多少少还是和正常结构有差,还是没法正常显示,后来发现了XMLObject这个类有一个set方法,可以通过这个方法直接复制正常表格的内容。
  最终的代码就是这样
private void replaceTable(XWPFDocument xdoc, List&List&String&& lines, int pos, XWPFTable table) throws XmlException {
if (CollectionUtils.isEmpty(lines)) {
List&String& th = new ArrayList&String&();
th.add("姓名");
th.add("身份证");
th.add("金额");
if (lines == null) {
lines = new ArrayList&List&String&&();
<span style="color: #
lines.add(th);
<span style="color: #
<span style="color: #
XWPFTable replace = xdoc.createTable(lines.size(), lines.get(0).size());
<span style="color: #
CTTbl cttbl = replace.getCTTbl();
<span style="color: #
<span style="color: #
cttbl.getTblPr().set(table.getCTTbl().getTblPr());
<span style="color: #
<span style="color: #
CTTblGrid cg = cttbl.addNewTblGrid();
<span style="color: #
cg.addNewGridCol().setW(BigInteger.valueOf(2500));
<span style="color: #
cg.addNewGridCol().setW(BigInteger.valueOf(3800));
<span style="color: #
cg.addNewGridCol().setW(BigInteger.valueOf(2500));
<span style="color: #
<span style="color: #
CTRow originalRow = table.getCTTbl().getTrArray(0);
<span style="color: #
if (CollectionUtils.isNotEmpty(lines)) {
<span style="color: #
for (int i = 0; i & lines.size(); i++) {
<span style="color: #
List&String& line = lines.get(i);
<span style="color: #
CTRow ctRow = cttbl.getTrArray(i);
<span style="color: #
ctRow.set(originalRow);
<span style="color: #
for (int j = 0; j & line.size(); j++) {
<span style="color: #
CTTc ctTc = ctRow.getTcArray(j);
<span style="color: #
ctTc.removeP(0);
<span style="color: #
CTText text = ctTc.addNewP().addNewR().addNewT();
<span style="color: #
text.setStringValue(line.get(j));
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
xdoc.setTable(pos, replace);
<span style="color: #
xdoc.removeBodyElement(xdoc.getPosOfTable(replace));
<span style="color: #
阅读(...) 评论()java调用POI实现word转HTML_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
java调用POI实现word转HTML
&&用java将word转化为html页面
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 java poi word转html 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信