使用POI将Word转为HTML文件如何自定义图片的src?

KimiKudo 2019-04-15 02:14:26
想在项目中有一个将word文档转为html的操作,查了一下poi的操作大部分都是分为doc和docx的.
由于转为html后我还要将html的内容读取出来,按照以前项目中关于文件和图片的操作,都是讲图片上传到云服务器,然后将图片的路径变为一个图片的url地址.
现在doc的图片路径已经解决了.用的是这个方法,在这个函数中加了一个匿名函数,
wordToHtmlConverter.setPicturesManager((content, pictureType, name, width, height) -> {
Map<String, String> gatewayConfig = fileConfig.getGatewayConfig(fileConfig.getGateway());
String bucketName = gatewayConfig.get("bucketName");
String imgName=System.currentTimeMillis() + "_"+name;

try {
String hash = qiniuFileManager.uploadali(content,imgName, bucketName);//bucketName参数无用
} catch (IOException e) {
e.printStackTrace();
}
return gatewayConfig.get("alilink") + "/" + imgName;
});


但是对于docx没找到该怎么修改.
docx的用的是另一个方法:
XHTMLOptions options=XHTMLOptions.create().URIResolver(new FileURIResolver(imageFile));
options.setExtractor(new FileImageExtractor(imageFile));

其中包括FileURIResolver,FileImageExtractor这些类的参数基本都是File类型的,最后出来的路径也都是文件的那种路径,而不是url.
不知道有没有用过的大佬给讲解一下怎么像doc中的方法那样可以自定义src路径啊...
...全文
751 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimiKudo 2019-04-17
  • 打赏
  • 举报
回复
引用 7 楼 shao_qingzhang 的回复:
[quote=引用 6 楼 KimiKudo 的回复:] [quote=引用 5 楼 shao_qingzhang 的回复:] 重写这个方法可以实现 options.URIResolver(new IURIResolver() { // @Override 重写的方法 public String resolve(String uri) { return uri路径; } });
哇确实可以修改路径了!...虽然我路径还没完全写对!!!但是试了一下确实可以!..... 感谢!我研究再改一下应该能解决!!!![/quote] 你那文字编码怎么处理的?我这在window上用utf-8是乱码,改成gbk或者gb2312没问题,linux上没试过呢,并且预览的html最后总会多出一段与内容重复的文字,不知道你那里有没有这种问题[/quote] 我这边都没问题呀...
KimiKudo 2019-04-16
  • 打赏
  • 举报
回复
引用 5 楼 shao_qingzhang 的回复:
重写这个方法可以实现
options.URIResolver(new IURIResolver() {
// @Override 重写的方法
public String resolve(String uri) {
return uri路径;
}
});


哇确实可以修改路径了!...虽然我路径还没完全写对!!!但是试了一下确实可以!.....
感谢!我研究再改一下应该能解决!!!!
shao_qingzhang 2019-04-16
  • 打赏
  • 举报
回复
重写这个方法可以实现
options.URIResolver(new IURIResolver() {
// @Override 重写的方法
public String resolve(String uri) {
return uri路径;
}
});
Mr_sky2022 2021-09-15
  • 举报
回复
@shao_qingzhang 我也遇到了类似的问题,不过我要把docx中图片上传到文件服务器,不知道大佬有没有方法解决
Mr_sky2022 2021-09-16
  • 举报
回复
@Mr_sky2022 已解决
KimiKudo 2019-04-16
  • 打赏
  • 举报
回复
引用 2 楼 shao_qingzhang 的回复:
试一下重写这个方法吧,我也正在试
options.URIResolver(new IURIResolver() {
// @Override 重写的方法
public String resolve(String uri) {
return imageUrl + uri;
}
});


咦是这个么!我看一哈!
KimiKudo 2019-04-16
  • 打赏
  • 举报
回复
引用 1 楼 shao_qingzhang 的回复:
你遇到的问题跟我现在遇到的一样一样的,网上的例子都是可以放到项目外的图片路径,但是真正访问的时候都是url,不知道那些例子是怎么成功的,我用mvc:resources或重写addResourceHandlers的方法都没有成功指向外部路径,在这里帮你顶一下,同求解决方法


我上午看了一下...找到了ImageManager这个类,这是一个XHTMLOptions中对图片处理的一个类,我在想能不能自己写一个类继承ImageManager,然后重写里面关于获取path的方法什么的.....只是想法不知道能不能行....
而且网上的例子,不也只是规定一个路径名,在那个路径中存储word中的图片么..相对于服务端来说就是本地路径啊....
shao_qingzhang 2019-04-16
  • 打赏
  • 举报
回复
试一下重写这个方法吧,我也正在试
options.URIResolver(new IURIResolver() {
// @Override 重写的方法
public String resolve(String uri) {
return imageUrl + uri;
}
});
shao_qingzhang 2019-04-16
  • 打赏
  • 举报
回复
你遇到的问题跟我现在遇到的一样一样的,网上的例子都是可以放到项目外的图片路径,但是真正访问的时候都是url,不知道那些例子是怎么成功的,我用mvc:resources或重写addResourceHandlers的方法都没有成功指向外部路径,在这里帮你顶一下,同求解决方法
shao_qingzhang 2019-04-16
  • 打赏
  • 举报
回复
引用 6 楼 KimiKudo 的回复:
[quote=引用 5 楼 shao_qingzhang 的回复:]
重写这个方法可以实现
options.URIResolver(new IURIResolver() {
// @Override 重写的方法
public String resolve(String uri) {
return uri路径;
}
});


哇确实可以修改路径了!...虽然我路径还没完全写对!!!但是试了一下确实可以!.....
感谢!我研究再改一下应该能解决!!!![/quote]

你那文字编码怎么处理的?我这在window上用utf-8是乱码,改成gbk或者gb2312没问题,linux上没试过呢,并且预览的html最后总会多出一段与内容重复的文字,不知道你那里有没有这种问题

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧