POI学习系列(二)- WORD插入图片


POI学习系列


import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Demonstrates how to add pictures in a .docx document
 */
@SuppressWarnings({"java:S106", "java:S4823", "java:S1192"})
public final class SimpleImages {

    private SimpleImages() {
    }

    public static void main(String[] args) throws IOException, InvalidFormatException {

        String[] images = new String[]{
                "D:\\workspace\\webstorm\\vuejs\\images\\img_1.png"
        };

        try (XWPFDocument doc = new XWPFDocument()) {
            // 创建一个段落
            XWPFParagraph p = doc.createParagraph();

            XWPFRun r = p.createRun();

            for (String imgFile : images) {
                int format;

                if (imgFile.endsWith(".emf")) {
                    format = Document.PICTURE_TYPE_EMF;
                } else if (imgFile.endsWith(".wmf")) {
                    format = Document.PICTURE_TYPE_WMF;
                } else if (imgFile.endsWith(".pict")) {
                    format = Document.PICTURE_TYPE_PICT;
                } else if (imgFile.endsWith(".jpeg") || imgFile.endsWith(".jpg")) {
                    format = Document.PICTURE_TYPE_JPEG;
                } else if (imgFile.endsWith(".png")) {
                    format = Document.PICTURE_TYPE_PNG;
                } else if (imgFile.endsWith(".dib")) {
                    format = Document.PICTURE_TYPE_DIB;
                } else if (imgFile.endsWith(".gif")) {
                    format = Document.PICTURE_TYPE_GIF;
                } else if (imgFile.endsWith(".tiff")) {
                    format = Document.PICTURE_TYPE_TIFF;
                } else if (imgFile.endsWith(".eps")) {
                    format = Document.PICTURE_TYPE_EPS;
                } else if (imgFile.endsWith(".bmp")) {
                    format = Document.PICTURE_TYPE_BMP;
                } else if (imgFile.endsWith(".wpg")) {
                    format = Document.PICTURE_TYPE_WPG;
                } else {
                    System.err.println("Unsupported picture: " + imgFile +
                            ". Expected emf|wmf|pict|jpeg|png|dib|gif|tiff|eps|bmp|wpg");
                    continue;
                }
                // 设置标题
                r.setText(imgFile);
                // 换行
                r.addBreak();
                try (FileInputStream is = new FileInputStream(imgFile)) {
                    // 320x200 pixels
                    r.addPicture(is, format, imgFile, Units.toEMU(320), Units.toEMU(200));
                }
                // 换页 一张图片一页
                r.addBreak(BreakType.PAGE);
            }

            try (FileOutputStream out = new FileOutputStream("images.docx")) {
                doc.write(out);
            }
        }
    }
}

效果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lang20150928

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值