首页 新闻 会员 周边

菜鸟级问题,poi3.7 向word插入图片,无法显示

0
悬赏园豆:30 [待解决问题]

现在遇到一个难题,我用poi3.7向word2007中插入一个图,结果word中什么都没有,但是根据文件大小确实这个图应该是已经插入了,而且文档对应word\media文件夹下已经看到了图片文件,并且word\_rels下的document.xml.rels下也已经有了对应的内容如下: 可是在word目录下的document.xml却找不到"rId2",下面是我的部分代码,实在是不知道那里错了,google了一天,只能问问了

public static void main(String[] args) throws Exception
{
   XWPFDocument doc = new XWPFDocument();
   InputStream fis = new FileInputStream ( "C:\\workspace\\bg.jpg");
   byte[] bytes = IOUtils.toByteArray(fis);
   doc.addPicture(bytes, XWPFDocument.PICTURE_TYPE_JPEG);
   FileOutputStream out = new FileOutputStream("c:\\workspace\\simple1.docx");           doc.write(out);
  out.close();
 fis.close();

}

请高人指点……

不满的主页 不满 | 初学一级 | 园豆:170
提问于:2011-03-17 19:41
< >
分享
所有回答(3)
1

你好,你的这个问题解决了?我也遇到了同样的问题,希望能得到你的帮助!

li.zhiliang | 园豆:205 (菜鸟二级) | 2011-05-12 17:17
0

这个问题我也搞了好久,这是我的部分代码,注意方法的最后两个参数,我的问题就出在这里,POI版本是最新的
XWPFRun r;
r.addPicture(new FileInputStream(path), Document.PICTURE_TYPE_JPEG, "", Units.toEMU(200), Units.toEMU(120));

火星子 | 园豆:202 (菜鸟二级) | 2015-06-05 19:54
0

XWPFParagraph p2 = doc.CreateParagraph(); //向新文档中添加段落
XWPFRun r2 = p2.CreateRun();

var widthEmus = (int)(880.0 * 9525);
var heightEmus = (int)(400.0 * 9525);
var guid = System.Guid.NewGuid().ToString();

using (FileStream picData = new FileStream(imagename, FileMode.Open, FileAccess.Read))
{

r2.AddPicture(picData, (int)PictureType.JPEG, "image1", widthEmus, heightEmus);
}
using (FileStream sw = File.Create("" + Server.MapPath("~/FusionImage") + "\\" + guid + ".doc"))
{
doc.Write(sw);
}

我也研究了一大半天,这段是网上的代码,用WPS可以打开,office就报错,后来才发现是npoi版本问题,用2.2就报错,换成2.1就ok了,什么鬼

忧虑的心 | 园豆:73 (初学一级) | 2016-09-26 16:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册