linux系统上使用poi+java实现html转word,无法转换图片

xjfsyw 2015-01-16 07:43:21
本人现在就被这样一个问题困扰,html转word保存时,在windows上好好的,到linux上后,图片无法转换,图片转换后变成红X,找了很多资料都解决不了,给出来大家一起研究研究,也希望能够解决问题,谢谢!
程序如下:
public static void convertHtmlToWord(String saveWordPath,String sourceHtml) throws Exception{
//String b=FileUtil.readFileByChars("d:/test.xml");
ByteArrayInputStream bais=null;
bais = new ByteArrayInputStream (sourceHtml.getBytes("utf-8"));
POIFSFileSystem poifs = new POIFSFileSystem ();
DirectoryEntry directory = poifs.getRoot ();
directory.createDocument ("WordDocument", bais);
FileOutputStream outStream = null;
outStream = new FileOutputStream(saveWordPath);
poifs.writeFilesystem (outStream);
outStream.close();
bais.close ();
}
补充一下sourceHtml,关键看图片路径/opt/workspace/test/webapps/test/test.jpg:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>组装html</title>
</head>
<body>
<DIV>
<DIV>
<DIV>
<DIV>
5<FONT color=#09f738 size=6>4</FONT><FONT color=#f70968>655</FONT>
<FONT size=6>5
<IMG border=0 src="/opt/workspace/test/webapps/test/test.jpg">
</FONT>
</DIV>
</DIV>
</DIV>
</DIV>
</body>
</html>
附件保存路径saveWordPath:/opt/workspace/test/webapps/test/test1.doc;
得出linux下word文档如下图,说明一下,在windows系统下是能够正常转换的的:
...全文
668 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1091662876 2017-02-10
  • 打赏
  • 举报
回复
可以以url的形式写入路径,如果是base64格式图片,把base64生成图片文件路径替换了即可,最好采用url路径,本地路径只在本机能显示,最蛋疼的是生成的poi居然还不能读取,谁有解决方案? 如果可以图片最好直接保存到word里而不是一个路径,有大神能做到不?
costtian 2016-06-13
  • 打赏
  • 举报
回复
想问下 我这个图片是base64图片,怎么处理
  • 打赏
  • 举报
回复
应该是路径问题吧,linux和window的路径分隔符不一样
海会圣贤 2016-04-19
  • 打赏
  • 举报
回复
应该是图片路径的问题
自愿来加班 2016-04-13
  • 打赏
  • 举报
回复
你好,你的这个问题解决了吗?怎么做的?我也遇到了这个问题,求指教。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧