永中格式转换服务基于永中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. kubernetes部署haproxy、keepalived为kube-apiserver做集群

    也可以用nginx.keepalived做负载均衡,看大家的需求. # yum -y install haproxy keepalived haproxy的配置文件(三台一样): cat > / ...

  2. 超好玩:使用 Erda 构建部署应用是什么体验?

    作者|郑成 来源|尔达 Erda 公众号 导读:最近在 Erda 上体验了一下构建并部署一个应用,深感其 DevOps 平台的强大与敏捷,不过为了大家能够快速上手,我尽量简化应用程序,用一个简单的返回 ...

  3. day08 文件属性

    day08 系统目录 今日内容 一.重要目录 1./usr 2./var 3./proc 二.文件的属性 1.文件属性的介绍 2.文件属性的详述 3.企业案例 /usr 安装第三方软件的目录: 1./ ...

  4. Learning Spark中文版--第三章--RDD编程(1)

       本章介绍了Spark用于数据处理的核心抽象概念,具有弹性的分布式数据集(RDD).一个RDD仅仅是一个分布式的元素集合.在Spark中,所有工作都表示为创建新的RDDs.转换现有的RDD,或者调 ...

  5. int是几位;short是几位;long是几位 负数怎么表示

    其实可以直接通过stm32的仿真看到结果:(这里是我用keil进行的测试,不知道这种方法是否准确) 从上面看, char是8位  short是4*4=16位  int是8*4=32位  long是8* ...

  6. git 日志技术

    1.git log, 在一个分支下, 以时间的倒序方式显示你制造的所有commit列表,包含创建人,时间,提交了什么等信息: 2. git reflog, 获取您在本地repo上还原commit所做工 ...

  7. Linux系统信息查看命令(ZZ)

    http://hi.baidu.com/thinkdifferent/blog/item/22f4a80161630e011d958384.html转自一个baidu师兄的博客,很好的一个总结,推荐下 ...

  8. oracle 存储过程及REF CURSOR的使用

    基本使用方法及示例 1.基本结构: CREATE OR REPLACE PROCEDURE 存储过程名字 (参数1 IN NUMBER,参数2 IN NUMBER) AS 变量1 INTEGER := ...

  9. spring boot springMVC扩展配置 。WebMvcConfigurer ,WebMvcConfigurerAdapter

    摘要: 在spring boot中 MVC这部分也有默认自动配置,也就是说我们不用做任何配置,那么也是OK的,这个配置类就是 WebMvcAutoConfiguration,但是也时候我们想设置自己的 ...

  10. 1.Java语言基础

    一:java语言介绍 (1). 1991年出现,1995年5月正式发布 出生地:SUN  创始人:James Gosling  2009年4月被Oracle收购 目前最新的版本2018年3月v10.0 ...