Java对word进行操作框架---Aspose.words

Java对word进行操作框架—Aspose.words

当Java需要对word进行操作 : 可以使用aspose.word进行, 这个框架是收费框架
自己项目使用的是若依微服务框架

第一步 : 导入jar到项目, 因为该jar是收费的 , 阿里云私服没有, 需要自己推送到本地仓库

 <dependency>
     <groupId>com.aspose.words</groupId>
     <artifactId>aspose-words</artifactId>
     <version>19.1</version>
 </dependency>

执行mvn命令
mvn install:install-file -Dfile=D:\aspose-words-21.5.jar -DgroupId=com.aspose.words -DartifactId=aspose-words -Dversion=21.5 -Dpackaging=jar clean
Dfile是需要自己设置的 ,也就是下载到的jar路径

下面是我自己写的工具类, 大家可以作为参考

  1. 刷新目录
// 刷新文档的目录 , 如果使用poi-TL生成目录时 可以使用该方法
 public static void RefreshToc(String filePath, String reportName) {
        try {
            Document document = new Document(filePath + reportName);
            document.updateFields();
            document.save(filePath + reportName);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("生成目录失败!");
            throw new ServiceException("生成目录失败!");
        }
    }
  1. 合并文档
  public static void MergeDoc(String mainFilePath, List<Map> annex, String filePath, PaProject project) {
        List<String> tempFile = Lists.newArrayList();
        try {
            Configure configure = Configure.builder().build();
            // 主文档
            Document mFile = new Document(mainFilePath);

            final int[] index = {2};
            annex.forEach(i -> {
                try {
                        Document attHP = new Document(filePath + annexName);
                        mFile.appendDocument(attHP, ImportFormatMode.KEEP_SOURCE_FORMATTING);
                        // 合并附件信息
                        Document attDoc = new Document(filePath + i.get("attName"));
                        mFile.appendDocument(attDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
                        // 存储删除
                        tempFile.add(filePath + annexName);
                        tempFile.add(filePath + i.get("attName"));
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                index[0]++;
            });
            NodeCollection childNodes = mFile.getChildNodes(NodeType.COMMENT, true);  //获取批注
            childNodes.clear();
            mFile.acceptAllRevisions();   //  接受所有修订
            mFile.save(mainFilePath);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("合并附件失败!");
        } finally {
            tempFile.forEach(i -> {
                FileUtils.deleteFile(i);
            });
        }

    }
  1. wordTopdf
// linux中进行word转换pdf时会出现字体乱码,是因为linux没有字体,只需要将本地电脑的字体库导入即可
public static String WordToPdf(String mainFilePath, String filePath) {
        String pdfName = "pdf_temp" + System.currentTimeMillis() + ".pdf";
        String property = System.getProperty("os.name");
        // aspose不支持linux 增加字体即可
        FontSettings.getDefaultInstance().setFontsFolders(new String[]{"/usr/local/application/file/fonts"},
                true);

        FileOutputStream out = null;
        try {
            Document mFile = new Document(mainFilePath);
            out = new FileOutputStream(new File(filePath + pdfName));
            mFile.save(out, SaveFormat.PDF);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServiceException("生成PDF文件失败!");
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return pdfName;
    }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值