aspose-words中插入附件及遇到的问题

aspose-words版本:21.1

java:1.8

目标:

前端使用tinymce编辑一段内容,后端使用aspose-words将html转为word,并将html中的附件转换为word中的附件。

形如:

实现方案:

使用正则表达式找出需要替换的附件位置,然后再使用aspose-words替换为附件。

关键代码:

java 复制代码
    public void insertOleObjectAsIcon() throws Exception
    {
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
		// windows开发环境使用绝对路径,生产环境可以使用文件流进行传输
        builder.insertOleObjectAsIcon("D:/source.docx", "Word.Document.12",false,"D:/word.ico" ,"attachmentFile.docx");
        doc.save("D:/output.docx");
    }

遇到的问题:

  1. 使用insertOleObject方法会导致只显示图片icon,不显示文件名称。prepsentation参数不能为null,会报空指针.
  2. java.io.EOFException : End of file reached,源码被加扰,无法明确具体原因,替换为ico后缀的图片文件后,错误消失。
  3. java.lang.UnsupportedOperationException : Not implemented format is met. 源码被加扰,无法明确具体原因,猜测文件过大(6K)。具体阈值未知。
  4. java.lang.ArrayIndexOutBoundsException: 456 文件过小(1K)。具体阈值未知。

使用2.3K大小的ico,操作成功并正常显示。

参考:

相关推荐
绿草在线几秒前
03.JakartaEE11+Thymeleaf实现图书列表功能
java
逻辑驱动的ken2 分钟前
Java高频面试考点场景题15
java·开发语言·深度学习·面试·职场和发展·高效学习
juniperhan4 分钟前
Flink 系列第19篇:深入理解 Flink SQL 的时间语义与时区处理:从原理到实战
java·大数据·数据仓库·分布式·sql·flink
这是程序猿5 分钟前
MySQL 索引一篇讲透:原理、分类、优化与面试总结
java·前端·mysql
无籽西瓜a8 分钟前
MD5算法原理、适用场景
java·后端·算法·哈希算法·md5
帅次10 分钟前
Android 高级工程师面试速记版
android·java·面试·kotlin·binder·zygote·android runtime
独自归家的兔13 分钟前
OCPP 1.6 协议详解:ClearCache 清除缓存指令
java·后端·spring
sjsjsbbsbsn15 分钟前
OpenAI 接口协议 & 大模型Java调用 核心总结
java·开发语言
AI人工智能+电脑小能手16 分钟前
【大白话说Java面试题】【Java基础篇】第16题:HashMap中Key为null时,元素存放的位置
java·开发语言·面试·哈希算法·散列表
我登哥MVP17 分钟前
【SpringMVC笔记】 - 12 - 全注解开发
java·spring boot·笔记·spring·tomcat·intellij-idea