网页只能预览PDF,无法对 doc,xls 等 其他office 格式的文件预览。收费的在线预览倒是可以,但是1不安全,2收费。
So, 有免费的方案吗?
来自不能删评论的 V2EX 的问题 https://www.v2ex.com/t/792458#;
总结下,这些方案的鸡肋之处 如下 10点 👇
aliyun 沙雕账号
,还要实名制的手机号? 接口还收费,尼玛什么玩意。wps
或者 windows office
接口? 你以为你部署在自己的 windows 测试自己玩呢? 谁的 项目不是跑在线上的 linux
呀libreoffice
? 你让运维给你现场去装 这个 软件到 linux 服务器
吗? 运维问: 你谁啊你?kkFileView
的使用说明google doc
或者 微软 doc
在线接口的,我就问问了,你们的老大知道你把 文档远程传输到外网了吗?fr.opensagres.xdocreport.core
, 这个其实是需要 POI
的,并且不支持 word 中有表格的,会报错的。aspose-word
, 效果虽好,但是 收费,有水印。官网在线案例点我spire doc
,效果也不错,但是 收费,有水印 官网在线案例点我jOfficeConvert
:demo 看起来不错,但是收费,而且还看不到源码 。 官网只是说自己使用了 Microsoft Word Viewing Technology 实现的。但是 完全搜索不到相关信息在 微软的官网。所以,难道就是 windows seerver 服务器本地装了 office 进行转换的 ?openoffice
和 jodconverter
没试过,没有发言权。POI
和 jdk7
,来源:踏破铁鞋无秘书 —》 源网址 http://www.codebaoku.com/it-java/it-java-250846.html
// document.removePage(document.getNumberOfPages() - 1);
replaceText(page, "Ltd.", ""); // 这里的几行代码,要改成 跟你的看到的水印一毛一样的
。aspose不同的版本,水印文字也有差异。否则无法删除。removeImage(page, "X1"); // X1 可以改为 X2 X3 等等,数字代表 遍历到的图片序号
TODO
上传有人说 ,windows 本地测试是好的,放到linux 就不行,待测试。
如果不行的话,那只能手动 去除一下水印了
15.8.0
下载地址:https://blog.csdn.net/m0_49605579/article/details/121806823
打包部署到 springboot
注意事项 https://blog.csdn.net/cheng137666/article/details/111677549
PDF 去水印,定位问题导致难度很大。 因此,此方案可绕开
删除PDF水印
这一步,可谓省心。
使用aspose 先把 word和excel等转换为 html 格式,然后对 生成的html 进行js 操作 删除指定的水印div就好了
效果太棒了,而且 本身生成的 html 文件完全兼容 网页预览的格式。可以说是目前 最佳方案了。
word
转换为 Html
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aaspose-words</artifactId>
<version>20.1</version>
<classifier>jdk17</classifier>
</dependency>
@SneakyThrows
@SneakyThrows
public static void excel2Html(String filePath) {
Document doc = new Document(filePath);
final com.aspose.words.HtmlSaveOptions options = new HtmlSaveOptions(SaveFormat.HTML);
doc.save(filePath + ".html", options);
}
word
转换成 html
效果图
excel
转换为 Html
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>22.6</version>
</dependency>
@SneakyThrows
public static void excel2Html(String filePath) {
Workbook wbk = new Workbook(filePath);
final HtmlSaveOptions options = new HtmlSaveOptions(SaveFormat.HTML);
wbk.save(filePath + ".html", options);
// TODO java 手动去除 water mark ; 或者页面上 用 js 去除,都很方便
}
excel
转换成 html
效果图
国人2017年就开源的 kkFileView
,原理是调用 libreoffice
等,效果不错 https://github.com/kekingcn/kkFileView
ありがとうございます