我们使用的是永中的第三方服务、支持直接转换文档的线上地址,也可以直接把文档上传到官方服务器上

官方文档地址: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依赖

  1. <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
  2. <dependency>
  3. <groupId>commons-logging</groupId>
  4. <artifactId>commons-logging</artifactId>
  5. <version>1.2</version>
  6. </dependency>
  7.  
  8. <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
  9. <dependency>
  10. <groupId>org.apache.httpcomponents</groupId>
  11. <artifactId>httpclient</artifactId>
  12. <version>4.5.12</version>
  13. </dependency>
  14.  
  15. <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
  16. <dependency>
  17. <groupId>org.apache.httpcomponents</groupId>
  18. <artifactId>httpcore</artifactId>
  19. <version>4.4.13</version>
  20. </dependency>
  21.  
  22. <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
  23. <dependency>
  24. <groupId>org.apache.httpcomponents</groupId>
  25. <artifactId>httpmime</artifactId>
  26. <version>4.5.12</version>
  27. </dependency>

调用方法类

  1. package com.example.demo.controller;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.io.PrintWriter;
  7. import java.net.URL;
  8. import java.net.URLConnection;
  9.  
  10. import org.springframework.stereotype.Controller;
  11.  
  12. @Controller
  13. public class FileController {
  14.  
  15. /**
  16. * 向指定 URL 发送POST方法的请求
  17. * @param url 发送请求的 URL
  18. * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
  19. * @return 远程资源的响应结果
  20. */
  21. public static String sendPost(String url, String param) {
  22. PrintWriter out = null;
  23. BufferedReader in = null;
  24. String result = "";
  25. try {
  26. URL realUrl = new URL(url);
  27. // 打开和URL之间的连接
  28. URLConnection conn = realUrl.openConnection();
  29. conn.setRequestProperty("Accept-Charset", "UTF-8");
  30. // 设置通用的请求属性
  31. conn.setRequestProperty("accept", "*/*");
  32. conn.setRequestProperty("connection", "Keep-Alive");
  33. conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  34. // 发送POST请求必须设置如下两行
  35. conn.setDoOutput(true);
  36. conn.setDoInput(true);
  37. // 获取URLConnection对象对应的输出流
  38. out = new PrintWriter(conn.getOutputStream());
  39. // 发送请求参数
  40. out.print(param);
  41. // flush输出流的缓冲
  42. out.flush();
  43. // 定义BufferedReader输入流来读取URL的响应
  44. in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  45. String line;
  46. while ((line = in.readLine()) != null) {
  47. result += line;
  48. }
  49. } catch (Exception e) {
  50. System.out.println("发送 POST 请求出现异常!" + e);
  51. e.printStackTrace();
  52. }
  53. // 使用finally块来关闭输出流、输入流
  54. finally {
  55. try {
  56. if (out != null) {
  57. out.close();
  58. }
  59. if (in != null) {
  60. in.close();
  61. }
  62. } catch (IOException ex) {
  63. ex.printStackTrace();
  64. }
  65. }
  66. return result;
  67. }
  68.  
  69. //调用方式
  70. public static void main(String[] args) {
  71. /**
  72. * 网络地址转换
  73. * http://dcs.yozosoft.com:80/onlinefile 这是永中转换的固定地址
  74. * http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx 这是网上文档的绝对路径
  75. * convertType 这是转换类型参数(必须) 具体参数详解见下方
  76. */
  77.  
  78. String convertByUrl = sendPost("http://dcs.yozosoft.com:80/onlinefile", "downloadUrl=http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx&convertType=1");
  79. System.out.println(convertByUrl);
  80. //返回json数据:{"result":0,"data":["http://dcs.yozosoft.com/view/2020/06/15/MjAwNjE1MTU3MzQ4MjE0.html"],"message":"转换成功","type":1}
  81. }
  82.  
  83. }

转换成功后,直接浏览器打开 http://dcs.yozosoft.com/view/2020/06/15/MjAwNjE1MTU3MzQ4MjE0.html 这个链接即可(该链接时间长会失效,需要重新生成)

convertType参数取值说明

  1. 0-----文档格式到高清html的转换
  2. 1-----文档格式到html的转换
  3. 2-----文档格式到txt的转换
  4. 3-----文档格式到pdf的转换
  5. 4-----文档格式到gif的转换
  6. 5-----文档格式到png的转换
  7. 6-----文档格式到jpg的转换
  8. 7-----文档格式到tiff的转换
  9. 8-----文档格式到bmp的转换
  10. 9-----pdf文档格式到gif的转换
  11. 10----pdf文档格式到png的转换
  12. 11----pdf文档格式到jpg的转换
  13. 12----pdf文档格式到tiff的转换
  14. 13----pdf文档格式到bmp的转换
  15. 14----pdf文档格式到html的转换
  16. 15----html文档格式到微软文档格式的转换
  17. 16----文档转换多个SVG返回分页加载页面(模版)
  18. 17----tif文件转成html
  19. 18----文档转换多个SVG
  20. 19----压缩文件到html的转换(模版)
  21. 20----PDF文件到html的转换(模版)
  22. 21----ofd文件到html的转换(模版)
  23. 22----两个doc文档合并
  24. 23----图片到html的转换
  25. 24----pdf文档格式到txt的转换
  26. 25----文档按页转换(高清版)
  27. 26----文档按页转换(标准版)
  28. 27----获取文档页码(MS文档)
  29. 28----获取pdf页码(PDF文件)
  30. 29----文档到ofd的转换
  31. 30----文档到html(图片)的转换
  32. 31----多个pdf文档合并
  33. 32----图片到pdf的转换
  34. 33----文档到文档的转换
  35. 34----pdfpdf的转换
  36. 35----tifhtml的转换(模板)

返回参数说明:

result - 返回代码,0成功,其他失败
data - 请求需要返回的数据
message - 详细信息

  1. 成功状态下:{ "result":0,"data":"http://xxxx域名/文件地址","message":"转换成功" }
  2. 失败状态下: { "result":7, "":"上传失败" }

result - 返回状态码说明

  1. 0-----转换成功
  2. 1-----找不到指定文档
  3. 2-----无法打开指定文档
  4. 3-----转换失败
  5. 4-----转换的文档为加密文档,无法转换
  6. 5-----输出文档后缀错误
  7. 6-----授权文件过期
  8. 7-----转换超时,内容可能不完整
  9. 8-----无效参数
  10. 17-----上传失败
  11. 18-----下载文件失败
  12. 19-----文件过大
  13. 20-----下载成功
  14. 21-----删除失败
  15. 22-----获取文件信息失败
  16. 23-----URL编码失败
  17. 24-----生成文件名为空,有误或重名,请检查参数
  18. 25-----htmlpdf转换失败

如果要对预览的文档加上防复制、水印等高级功能的话,可以购买永中DCS的私有化部署服务(适合对文档安全性要求比较高的企业),官网可以获取价格及测试包,也可以使用永中云转换的高级服务,使用非常简单便捷,如下:

浏览器打开:https://api.yozocloud.cn/index.html ,点击右上角的注册按钮进行注册,注册成功后,登录后台,再点击域名管理进行域名的绑定,绑定成功后,会生成一个域名key,这是后面调用接口的凭证

调用方式

http://dcsapi.com/?k=域名key&url=要预览的文件地址
例如:http://dcsapi.com/?k=1744232&url=http://58.215.166.234/example/doc/doctest.docx
注:其中文件的地址要和绑定的域名一样。
 
也可以在后面可以拼接四个可选参数:
1、noCache:Boolean格式。是否强制重新转换(忽略缓存),true为强制重新转换,false为不强制重新转换。
2、watermark:String格式。针对单文档设置水印内容。
3、isCopy:Integer格式(0否1是,默认为0。针对单文档设置是否防复制)。
4、pageStart:Integer格式;pageEnd:Integer格式。试读功能(转换页数的起始页和转换页数的终止页,拥有对应权限的域名才能调用)。
调用方式:http://api网址/ getPreview?k=(域名对应的用户Key)&url=(在线文档地址) &isCopy=(是否防复制1是0否,可选)&watermaerk=(水印文字内容,可选)
 
不过由于我们这个是免费版,所以不支持高级功能

具体可以打开https://www.yozodcs.com/page/yun.html 查看详情

 

JAVA实现office文档(word、excel、ppt等)、压缩包在线预览,支持禁止下载功能、支持PC和手机的更多相关文章

  1. Java版office文档在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

  2. Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  3. Aspose office (Excel,Word,PPT),PDF 在线预览

    前文: 做个备份,拿的是试用版的 Aspose,功能见标题 代码: /// <summary> /// Aspose office (Excel,Word,PPT),PDF 在线预览 // ...

  4. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

  5. OFFICE文档(DOC,XLS,PPT)打开报错的解决办法!

    一般情况下,打开OFFICE文档报错都是因为模板文件出错!! 至于为什么会出错这个问题不好说,可能是不正确关闭文档等等,重装OFFICE也不一定能解决问题! 出现这种情况一般是所有的Word文档或者E ...

  6. [Asp.net]常见word,excel,ppt,pdf在线预览方案,有图有真相,总有一款适合你!

    引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...

  7. [Asp.net]常见word,excel,ppt,pdf在线预览方案(转)

    引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...

  8. excel转html 实现在线预览

    首先说一下,本人发布的代码都是经过本人亲测,并且用在实际项目中.如果觉得可以,希望大家点个赞,谢谢大家. 有什么问题,大家评论出来,一起交流.好了,不废话了,下面来说一说这个东西怎么做. 网上也有许多 ...

  9. 转载: Asp.net常见word,excel,ppt,pdf在线预览方案

    参考链接: http://www.cnblogs.com/wolf-sun/p/3569960.html

随机推荐

  1. P5599【XR-4】文本编辑器

    题目传送门. 题意简述:给定长度为 \(n\) 的文本串 \(a\) 和有 \(m\) 个单词的字典 \(s_i\).\(q\) 次操作,每次求出字典内所有单词在 \(a[l,r]\) 的出现次数,或 ...

  2. 【基因组注释】GMAP安装使用问题

    homology策略预测基因结构,下载了公共mRNA/CDS序列,考虑用gmap比对.本来是个很简单的脚本,但总是不那么顺利. 无论是用conda安装,还是源码安装较新版本,都存在问题. gmap_b ...

  3. [R] 如何在Linux命令行进行参数传入?

    以前由于R命令行传参不友好,经常嵌套在其他程序语言(如Perl/Python)中来进行传参,但现在也陆续有一些方式来实现R的传参了,这里简单罗列下. 方法一 最传统的方法就是使用系统自带的comman ...

  4. mysql端口查看与修改-netstat命令使用

    linux上使用netstat察看mysql端口和连接 linux上使用netstat察看mysql端口和连接 近日发现写的一个java程序的数据库连接在大压力下工作不打正常,因此研究了一下dbcp, ...

  5. mysql-日期时间函数大全

    DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,--7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03');  ...

  6. APP工程师接入Telink Mesh流程 -3

    加密是为了使网络更加的安全.健壮,若由于login.加密等流程 严重影响了 开发进程,也可以通过 修改SDK 固件 将login.加密 环节取消 1.发送数据.接受数据加密,解密去掉 mesh_sec ...

  7. 日常Java 2021/11/15

    Applet类 每一个Applet都是java.applet Applet类的子类,基础的Applet类提供了供衍生类调用的方法,以此来得到浏览器上下文的信息和服务.这些方法做了如下事情: 得到App ...

  8. 零基础学习java------day9------多态,抽象类,接口

    1. 多态 1.1  概述: 某一个事务,在不同环境下表现出来的不同状态 如:中国人可以是人的类型,中国人 p = new  中国人():同时中国人也是人类的一份,也可以把中国人称为人类,人类  d  ...

  9. SpringBoot-RestTemplate测试Controller

    1.功能测试类 package com.imooc.controller; import java.io.IOException; import java.math.BigDecimal; impor ...

  10. IDEA 超实用使用技巧分享

    前言 工欲善其事 ​ 必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优 ...