word插入html 转换为docx图片不显示问题

在使用mht格式结合FreeMarker插入动态图片并转换为docx时,遇到图片无法显示的问题。通过分析发现,aspose转换的docx在WPS中不显示图片可能与WPS不支持的vml标签有关。改为使用img标签,并找到图片的base64定义,成功解决docx图片显示问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景描述

使用mht格式利用freemark将网页上动态输入的图片搞到mht里面,转换为docx格式。其中图片是使用vshape标签展示(网上搜到的),将图片转换为base64写入到mht文件内(具体的操作可自行百度)。由于采用的是java语言,利用的是aspose这个工具转换为docx。结果转换出来的docx图片就不显示(其实不是不显示,是压根就没有图片的占位),但是使用office word打开mht文件图片是可见的。

头脑一热,用了wps打开mht文件,发现图片不显示了!利用office word打开又可以看到图片。所以猜测aspose转换后的docx无图片显示和wps是一个问题,导致转换出来docx的图片不显示。

问题分析

基本上定位肯定是图片展示使用的标签问题。网上搜索一番,发现vshape貌似只有office word支持,所以得换展示方式了。

怎么办?wps不支持vshape,那它单网页是如何展示图片的呢?

使用wps,新建一个word,插入图片,另存为单网页文件(mht)。然后利用notepad++打开,发现里面是使用img标签展示的。使用office word打开,图片可以展示。最后再去使用aspose工具转换一下,转换出来的docx图片已经成功展示。

问题解决!

总结一下: doc中图片的展示可能是使用vml的vshape标签进行图片的展示,但是vml仅有office才支持,所以使用wps等其他软件就看不了图片,工具转换格式也就出现了图片丢失的情况。

解决方案

使用img标签展示。

<img width=3D"554"  height=3D"396"  src=3D"~tmp{d2189b58-14f4-487b-a11a-94360551a999}9768886.files/~t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值