使用JAVA向word中插入图片

使用java向word中插入图片


小编最近在学习Apache POI,所以这里,我们是使用的了Apache POI来对word进行操作。
因为在使用POI在wrod中插入图片时,我们会出现图片显示不出来的问题。在word中插入图片代码如下

public static void main(String[] args)throws Exception {
//        创建一个document对象,相当于新建一个word文档(后缀名为.docx)。
        XWPFDocument document=new XWPFDocument();
//        创建一个段落对象。
        XWPFParagraph paragraph=document.createParagraph();
//        创建一个run。run具体是什么,我也不知道。但是run是这里面的最小单元了。
        XWPFRun run=paragraph.createRun();
//        插入图片
        run.addPicture(new FileInputStream("E:/1.png"),
                XWPFDocument.PICTURE_TYPE_PNG,
                "1.png",
                400,
                200);
//        创建一个输出流 即是该文档的保存位置
        OutputStream outputStream=new FileOutputStream("E:/pic.docx");
        document.write(outputStream);
        outputStream.close();
    }

看下面的结果,发现图片并没有插入进来,根据小编的测试,发现其实是插入进来了,只是我们看不到,可是这个还是满足不了我们的需求……

经过小编在度娘上的搜索,发现了几种方法,但是经过小编的亲自测试,大多数都是封装一个类,但是这个类里面有句代码只支持poi的3.15及以下版本的,这个在网上一搜一大堆,这儿就不说了。我们还是回到今天的正题,解决我们代码的bug,虽然没有报错,运行也是正常,但是我们的代码是存在bug的,这是我在查错的时候看到了一个博主写的。
错误的原因就是,我们传的参数里 width 和 height两个值,不是一个整形,而是需要用一个Units工具类来转换一下类型的
在这里插入图片描述
需要使用 Units 的 toEMU 方法进行转换,修改后的代码如下:

 public static void main(String[] args)throws Exception {
//        创建一个document对象,相当于新建一个word文档(后缀名为.docx)。
        XWPFDocument document=new XWPFDocument();
//        创建一个段落对象。
        XWPFParagraph paragraph=document.createParagraph();
//        创建一个run。run具体是什么,我也不知道。但是run是这里面的最小单元了。
        XWPFRun run=paragraph.createRun();
//        插入图片
        run.addPicture(new FileInputStream("E:/1.png"),
                XWPFDocument.PICTURE_TYPE_PNG,
                "1.png",
                Units.toEMU(400),
                Units.toEMU(200));
//        创建一个输出流 即是该文档的保存位置
        OutputStream outputStream=new FileOutputStream("E:/pic.docx");
        document.write(outputStream);
        outputStream.close();
    }

启动后,成功向word中添加图片:
在这里插入图片描述
以上就是用Java向word中插入图片的操作了。。。。。

参考文档:添加链接描述

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值