永中格式转换服务基于永中DCS的文档转换能力,支持不同格式文件之间的高质量互转,可实现PDF文档与Word、Excel、PPT、图片的高质量互转,PDF文档转换完美保留原文档的版式,格式等,转换效果出色,转换速度快,提供高效的文件格式转换能力。

首先要先成为开发者并且申请应用。在永中云服务平台首页(https://open.yozocloud.cn)点击”申请加入“填写信息,然后提交就好了。之后点击页面右上角的”管理中心“,点击”申请添加新应用“按钮申请应用,然后就获得了下图的appId和appKey。

然后阅读格式转换开发文档。官网的开发文档里有对接服务时要用到的所有接口,也给出了返回示例供参考,还有在使用过程中的遇到的常见问题也是做了总结。

下面就是具体的接入步骤:

第一步:导入jar包生成签名。官网专门提供了几种流行编程语言的SDK,根据自己的开发语言下载对应的SDK及demo生成签名。这里使用的是JAVA SDK。

SDK下载地址:https://cms.yozocloud.cn/info/file/getResource/81

DEMO下载地址:https://cms.yozocloud.cn/info/file/getResource/82

public static String APPID = "XXXX";
public static String APPKEY = "XXXXXX";
public static String CONVERTTYPE = "7"; //excel转pdf /**
* 获取签名信息
*
* @param map 参数k-v
* @return 签名
* @throws Exception 异常
*/
String getSign(Map<String,String[]> map) throws Exception {
map.put("appId",new String[]{APPID});
AppAuthenticator authenticator=new UaaAppAuthenticator(UaaConstant.SIGN,null,UaaConstant.APPID);
String sign = authenticator.generateSign(APPKEY, map);
System.out.println("sign = " + sign);
return sign;
}

第二步:上传文件。这里我使用RestTemplate发送Post请求,要注意的是上传文件时文件类型一定要是multipartFile类型,否则会报错:message:服务器未知错误^_^。

/**
* 上传文件
*/
Map<String, String[]> params = new HashMap<>();
String sign = getSign(params);
String url = "http://dmc.yozocloud.cn/api/file/upload?appId={0}&sign={1}";
url = url.replace("{0}", APPID).replace("{1}", sign);
System.out.println("url:" + url);
//上传文件
String filePath = "C:";
String fileName = "11111.xlsx"; //设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("multipart/form-data"));//文件类型是multipartFile类型 //设置请求体,注意是LinkedMultiValueMap
FileSystemResource fileSystemResource = new FileSystemResource(filePath + "/" + fileName);
MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
form.add("file", fileSystemResource); RestTemplate restTemplate1 = new RestTemplate();
restTemplate1.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
ResponseEntity<String> response1 = restTemplate1.exchange(url, HttpMethod.POST, new HttpEntity<>(form, headers), String.class);//防止返回信息乱码
System.out.println("返回信息为: " + response1.getBody()); //获取返回的fileVersionId
JSONObject data = JSONObject.parseObject(response1.getBody()).getJSONObject("data");
String fileVersionId = data.getString("fileVersionId");

第三步:调用转换接口。每次调用接口时,用到了哪些参数就将这些参数去生成sign,multipartFile除外,用不到的参数也不要传null或者空字符串。

/**
* 调用转换接口
*/
Map<String, String[]> paramMap = new HashMap<>();
paramMap.put("fileVersionId", new String[]{fileVersionId});
paramMap.put("convertType", new String[]{CONVERTTYPE});
String s = getSign(paramMap);//生成签名
String converurl = "http://eic.yozocloud.cn/api/convert/file?appId={0}&sign={1}&fileVersionId={2}&convertType={3}";
converurl = converurl.replace("{0}", APPID).replace("{1}", s).replace("{2}",fileVersionId).replace("{3}",CONVERTTYPE); RestTemplate restTemplate2 = new RestTemplate();
restTemplate2.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
ResponseEntity<String> response2 = restTemplate2.postForEntity(converurl, null, String.class);
System.out.println("返回信息为: " + response2.getBody());

正常情况下,转换类型设置正确,文件上传正确,调用格式转换接口后的返回信息如下:

第四步:调用下载接口下载查看。调用转换接口并返回操作成功之后,在设置的回调地址除会收到转换之后的文件版本Id,如下:

使用收到的新的文件版本Id再次生成签名并调用下载接口(http://dmc.yozocloud.cn/api/file/download),该地址可直接放入浏览器地址栏下载查看。

源文件

格式转换后得到的文件

注意:

  1. 用户须在格式转换的开发信息中填写正确的数据回调地址来接收新的文件版本id,并且在数据回调URL下新增一个POST接口,接口名称设置为:/3rd/edit/callBack;

接口接收转换回调数据代码示例

  1. 格式转换convertType参数一定要对应正确,否则调用接口时会返回“文档格式与转换类型不匹配“。

使用Java对接永中格式转换的更多相关文章

  1. Java之格林威治时间格式转换成北京时间格式

    Java之格林威治时间格式转换成北京时间格式 package com.mtons.mblog; import java.text.ParseException; import java.text.Si ...

  2. Java时间日期字符串格式转换大全

    import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 ...

  3. Java之SimpleDateFormat日期格式转换(Date 和 String 类型之间的转换)

    SimpleDateFormat : 可以选择任何用户定义的日期-时间格式的模式    "yyyy-MM-dd HH:mm:ss:SSS"1.格式化:Date -->Stri ...

  4. Java实现时间日期格式转换示例

    package com.hanqi.util; import java.text.ParseException; import java.text.SimpleDateFormat; import j ...

  5. windows保存的文件传输到linux中格式转换

    直接从window传输到linux的脚本执行时,会出现以下错误. -bash: xxx: /bin/sh^M: bad interpreter: No such file or directory 解 ...

  6. java解析Excel日期格式转换问题

    Excel上传导入,Excel里面单元格是日期的会解析出来数字,比如2020-07-11会解析为44023解决方法一: Excel单元格格式设置为文本格式.解决方法二: 使用代码处理,把解析出来的44 ...

  7. JAVA 接口返回JSON格式转换类

    使用了Lombok插件 Result.java package com.utils; import com.jetsum.business.common.constant.Constant; impo ...

  8. Java ISO 8601时间格式转换

    common-lang包: String pattern = "YYYY-MM-dd'T'HH:mm:ssZZ"; System.out.println(DateFormatUti ...

  9. 永中DCS文档转换服务其它产品对比

    一.利用DCOM配置直接操作Office文件 作用:读取文件内容,导出Html文件 优势:免费 劣势:1.服务器上必须安装Office软件 2.配置麻烦,正如微软所说,读取Office不是这么干的. ...

随机推荐

  1. 解决CentOS7 docker容器映射端口只监听ipv6的问题

    问题现象 docker容器起来以后,查看9100端口监听情况,如下图: $ ss -lntp State Recv-Q Send-Q Local Address:Port Peer Address:P ...

  2. A Child's History of England.23

    King William, fearing he might lose his conquest, came back, and tried to pacify the London people b ...

  3. 「译」 .NET 6 中 gRPC 的新功能

    gRPC是一个现代的.跨平台的.高性能的 RPC 框架.gRPC for .NET 构建在 ASP.NET Core 之上,是我们推荐的在 .NET 中构建 RPC 服务的方法. .NET 6 进一步 ...

  4. 容器之分类与各种测试(四)——unordered_set和unordered_map

    关于set和map的区别前面已经说过,这里仅是用hashtable将其实现,所以不做过多说明,直接看程序 unordered_set #include<stdexcept> #includ ...

  5. Spring支持5种类型的增强

    Spring支持5种类型的增强:1.前置增强:org.springframework.aop.BeforeAdvice代表前置增强,因为Spring只支持方法级的增强,所以MethodBeforeAd ...

  6. 【编程思想】【设计模式】【结构模式Structural】适配器模式adapter

    Python版 https://github.com/faif/python-patterns/blob/master/structural/adapter.py #!/usr/bin/env pyt ...

  7. linux shell学习之shell流程控制

    在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧. linux控制流结构学习. 一,shell控制流结构 1.控制结构   ...

  8. angular过滤器在html和js中的使用

    在HTML中使用格式为:{{数据 | 过滤器名称:条件一:条件二--}}:过滤条件间使用:隔开 例如: 在代码中一般格式为:  变量 = $filter("过滤器名称")(被过滤数 ...

  9. 【Xcode】sh: pause: command not found

    system("pause"); 只适合于DOS和Windows系统,不适合Linux系统. 直接删掉就可以. 或者改为: #include <unistd.h> pa ...

  10. 数据恢复binlog2sql

    目录 一.原理及其使用 用途 闪回原理简析 binlog 有三种可选的格式: 来实例演习下来实例演习下 二.准备工作 一.原理及其使用 生产上误删数据.误改数据的现象也是时常发生的现象,作为运维这时候 ...