aspose.Word 在指定位置循环添加行插入图片

1.代码如下
package net.longjin.configCenter.caseConfig.controller;

import com.aspose.words.*;
import com.sun.javafx.collections.MappingChange;
import net.longjin.comm.utils.AsposeWordsUtils;
import net.longjin.comm.utils.PDFUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.InputStream;
import java.util.*;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aspose.words.Document;
import com.aspose.words.License;
import com.aspose.words.Node;
import com.aspose.words.NodeType;
import com.aspose.words.Range;
import com.aspose.words.Table;

/**
 * 描述:Test
 *
 * @author 何志鹏
 * @ClassName:Test
 * @create 2019-07-08 14:06
 * Version 1.0
 */

public class Test {
        private static final Logger LOGGER = LoggerFactory.getLogger(net.longjin.configCenter.caseConfig.controller.AsposeUtils.class);

        public static boolean getLicense() {
            boolean result = false;
            try {
                InputStream is = net.longjin.configCenter.caseConfig.controller.AsposeUtils.class.getClassLoader().getResourceAsStream("com.aspose.words.lic.xml");
                License aposeLic = new License();
                aposeLic.setLicense(is);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }

        /**
         * 保存doc path保存目录 doc原文档
         *
         * @param
         * @param
         * @throws Exception
         */
        public static void main(String[] agrs) throws Exception {
           if (!getLicense()) {// 验证License 若不验证则转化出的pdf文档会有水印产生
                return;
            }
            long old = System.currentTimeMillis();
            String path = "C:/Users/longjin/Desktop/证据照片(图片)登记表.docx";
            Document doc = new Document(path);
            // 获取word中的第一个表格,index指定表格位置
            Table table = (Table) doc.getChild(NodeType.TABLE, 0, true);
            DocumentBuilder builder = new DocumentBuilder(doc);
            String patch = "D:/aa.jpg";
            String patch2 = "D:/bb.jpg";
            String patch3 = "D:/cc.jpg";
            List<String>  list  = new ArrayList<>();
            list.add(patch);
            list.add(patch2);
            list.add(patch3);
            Range range = null;
           for (int i = 0;i<list.size();i++) { //复制行
                Node deepClone = table.getRows().get(4).deepClone(true);//复制第五行
                table.getRows().insert(4,deepClone);//将复制的行放在第五行后面
            }
            table.getRows().get(4).remove();
            for (int i = 0;i<list.size();i++) { // 循环插入指定表格的图片
                builder.moveToCell(0,4+i,0,0);
                builder.insertImage(list.get(i), RelativeHorizontalPosition.MARGIN, 200, RelativeVerticalPosition.MARGIN, 1, 100, 125, WrapType.SQUARE);
            }
            //移除最后一行
            table.getLastRow().remove();
            doc.save(path);
            long now = System.currentTimeMillis();
            System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时

        }




}

2.效果

发布了99 篇原创文章 · 获赞 26 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_39643007/article/details/96430120