JAVA实现office文档(word、excel、ppt等)、压缩包在线预览,支持禁止下载功能、支持PC和手机
我们使用的是永中的第三方服务、支持直接转换文档的线上地址,也可以直接把文档上传到官方服务器上
官方文档地址:https://www.yozodcs.com/page/help.html#link152
引入jar包:
commons-logging-1.1.jar,httpclient-4.5.jar,httpcore-4.4.1.jar,httpmime-4.5.jar
或者引入maven依赖
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.12</version>
</dependency>
调用方法类
package com.example.demo.controller; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection; import org.springframework.stereotype.Controller; @Controller
public class FileController { /**
* 向指定 URL 发送POST方法的请求
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 远程资源的响应结果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("Accept-Charset", "UTF-8");
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
} //调用方式
public static void main(String[] args) {
/**
* 网络地址转换
* http://dcs.yozosoft.com:80/onlinefile 这是永中转换的固定地址
* http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx 这是网上文档的绝对路径
* convertType 这是转换类型参数(必须) 具体参数详解见下方
*/ String convertByUrl = sendPost("http://dcs.yozosoft.com:80/onlinefile", "downloadUrl=http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx&convertType=1");
System.out.println(convertByUrl);
//返回json数据:{"result":0,"data":["http://dcs.yozosoft.com/view/2020/06/15/MjAwNjE1MTU3MzQ4MjE0.html"],"message":"转换成功","type":1}
} }
转换成功后,直接浏览器打开 http://dcs.yozosoft.com/view/2020/06/15/MjAwNjE1MTU3MzQ4MjE0.html 这个链接即可(该链接时间长会失效,需要重新生成)
convertType参数取值说明
0-----文档格式到高清html的转换
1-----文档格式到html的转换
2-----文档格式到txt的转换
3-----文档格式到pdf的转换
4-----文档格式到gif的转换
5-----文档格式到png的转换
6-----文档格式到jpg的转换
7-----文档格式到tiff的转换
8-----文档格式到bmp的转换
9-----pdf文档格式到gif的转换
10----pdf文档格式到png的转换
11----pdf文档格式到jpg的转换
12----pdf文档格式到tiff的转换
13----pdf文档格式到bmp的转换
14----pdf文档格式到html的转换
15----html文档格式到微软文档格式的转换
16----文档转换多个SVG返回分页加载页面(模版)
17----tif文件转成html
18----文档转换多个SVG
19----压缩文件到html的转换(模版)
20----PDF文件到html的转换(模版)
21----ofd文件到html的转换(模版)
22----两个doc文档合并
23----图片到html的转换
24----pdf文档格式到txt的转换
25----文档按页转换(高清版)
26----文档按页转换(标准版)
27----获取文档页码(MS文档)
28----获取pdf页码(PDF文件)
29----文档到ofd的转换
30----文档到html(图片)的转换
31----多个pdf文档合并
32----图片到pdf的转换
33----文档到文档的转换
34----pdf到pdf的转换
35----tif到html的转换(模板)
返回参数说明:
result - 返回代码,0成功,其他失败
data - 请求需要返回的数据
message - 详细信息
成功状态下:{ "result":0,"data":"http://xxxx域名/文件地址","message":"转换成功" }
失败状态下: { "result":7, "":"上传失败" }
result - 返回状态码说明
0-----转换成功
1-----找不到指定文档
2-----无法打开指定文档
3-----转换失败
4-----转换的文档为加密文档,无法转换
5-----输出文档后缀错误
6-----授权文件过期
7-----转换超时,内容可能不完整
8-----无效参数
17-----上传失败
18-----下载文件失败
19-----文件过大
20-----下载成功
21-----删除失败
22-----获取文件信息失败
23-----URL编码失败
24-----生成文件名为空,有误或重名,请检查参数
25-----html转pdf转换失败
如果要对预览的文档加上防复制、水印等高级功能的话,可以购买永中DCS的私有化部署服务(适合对文档安全性要求比较高的企业),官网可以获取价格及测试包,也可以使用永中云转换的高级服务,使用非常简单便捷,如下:
浏览器打开:https://api.yozocloud.cn/index.html ,点击右上角的注册按钮进行注册,注册成功后,登录后台,再点击域名管理进行域名的绑定,绑定成功后,会生成一个域名key,这是后面调用接口的凭证

调用方式
具体可以打开https://www.yozodcs.com/page/yun.html 查看详情
JAVA实现office文档(word、excel、ppt等)、压缩包在线预览,支持禁止下载功能、支持PC和手机的更多相关文章
- Java版office文档在线预览
java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...
- Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- Aspose office (Excel,Word,PPT),PDF 在线预览
前文: 做个备份,拿的是试用版的 Aspose,功能见标题 代码: /// <summary> /// Aspose office (Excel,Word,PPT),PDF 在线预览 // ...
- java将office文档pdf文档转换成swf文件在线预览
第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...
- OFFICE文档(DOC,XLS,PPT)打开报错的解决办法!
一般情况下,打开OFFICE文档报错都是因为模板文件出错!! 至于为什么会出错这个问题不好说,可能是不正确关闭文档等等,重装OFFICE也不一定能解决问题! 出现这种情况一般是所有的Word文档或者E ...
- [Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你!
引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...
- [Asp.net]常见word,excel,ppt,pdf在线预览方案(转)
引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...
- excel转html 实现在线预览
首先说一下,本人发布的代码都是经过本人亲测,并且用在实际项目中.如果觉得可以,希望大家点个赞,谢谢大家. 有什么问题,大家评论出来,一起交流.好了,不废话了,下面来说一说这个东西怎么做. 网上也有许多 ...
- 转载: Asp.net常见word,excel,ppt,pdf在线预览方案
参考链接: http://www.cnblogs.com/wolf-sun/p/3569960.html
随机推荐
- Matlab指针数组
Matlab指针数组 前面博客Matlab指针中介绍了如何在Matlab中使用handle类型对象作为指针使用,本文则介绍一些使用这些类型指针的小技巧. 自定义类型的指针数组 在大部分编程语言中,我们 ...
- PPT——一个有情怀的免费PPT模板下载网站!“优品PPT”
http://www.ypppt.com/ PS:再推荐一款免费PPT下载网站 https://www.v5ppt.com/ppt-5-42-1.html
- 50. Plus One-Leetcode
Plus One My Submissions QuestionEditorial Solution Total Accepted: 98403 Total Submissions: 292594 D ...
- MySQL:事务常用语句
Mysql(版本是8)的事务隔离级别 默认是RR:REPEATABLE-READ:可重复读 查看 当前隔离级别 全局隔离级别 修改 -- 当前修改 -- 设置成可重复读 SET transactio ...
- 学习java的第二十六天
一.今日收获 1.java完全学习手册第三章算法的3.2排序,比较了跟c语言排序上的不同 2.观看哔哩哔哩上的教学视频 二.今日问题 1.快速排序法的运行调试多次 2.哔哩哔哩教学视频的一些术语不太理 ...
- 日常Java 2021/10/10
多态就是同一个行为具有多个不同表现形式的能力 多态就是同一个接口,使用不同的实例而执行不同操作 多态的优点 1.消除类型之间的耦合关系 2.可替换性 3.可扩充性 4.接口性 5.灵活性 6.简化性 ...
- go 函数进阶
目录 回调函数和闭包 高阶函数示例 回调函数(sort.SliceStable) 闭包 最佳闭包实例 回调函数和闭包 当函数具备以下两种特性的时候,就可以称之为高阶函数(high order func ...
- Spark(二十一)【SparkSQL读取Kudu,写入Kafka】
目录 SparkSQL读取Kudu,写出到Kafka 1. pom.xml 依赖 2.将KafkaProducer利用lazy val的方式进行包装, 创建KafkaSink 3.利用广播变量,将Ka ...
- 【leetcode】337. House Robber III
The thief has found himself a new place for his thievery again. There is only one entrance to this a ...
- Shell脚本字符串截取方法总结
Shell脚本8种字符串截取方法总结转自:https://www.cnblogs.com/ralphdc/p/8032335.html Linux 的字符串截取很有用.有八种方法.假设有变量 var= ...